Logo

Microsoft Graph (2) API Call

photo

2024年12月25日

  《Windows Azure Platform 系列文章目录

  

  调用Microsoft Graph API,分为四个主要步骤:

  一.注册应用 (App Registrations)

  二.登陆并获得Token

  三.授权

  四.Call API

  

  一.注册应用 (App Registrations)

  我们可以手动注册应用,然后获得:

  - Application (Client) ID

  - Directory (Tenant) ID

  - Client secrets

  有关这部分的详细内容,请参考:Windows Azure AD (7) 创建配置应用程序和服务主体 (Application and Service Principal)

 

  二.登陆并获得Token

  Microsoft Graph登陆分为两种方式:

  1.代表用户获取访问权限

  https://docs.microsoft.com/zh-cn/graph/auth-v2-user?context=graph%2Fapi%2F1.0&view=graph-rest-1.0 

  这种场景比较适合应用程序注册访问。比如我们开发的第三方APP应用程序,当进行登陆的时候,会通过Web页面进行登陆确认:

  

  2.无用户访问

  https://docs.microsoft.com/en-us/graph/auth-v2-service?context=graph%2Fapi%2F1.0&view=graph-rest-1.0

  这种场景比较适合于后台服务进行调用,不存在用户登陆。比如我们自己开发的一个Windows Service程序,24*7的一直在运行。

  本文主要介绍的是无用户访问

 

  我们打开Postman,设置环境变量名称为:AzureChinaGraphConfig

  设置三个环境变量和参数值

  -tenant_id

  -app_id

  -app_secret

  

 

  然后在Postman中,Add New Request,设置一下内容:

  -名称设置为Get Graph Token

  -方法为POST,URL为:https://login.chinacloudapi.cn/{{tenant_id}}/oauth2/v2.0/token

  -设置body

参数条件说明
tenant必须我们在第一章注册应用中,设置的租户id,我们这里设置读取环境变量{{tenant_id}}
client_id必须我们在第一章注册应用中,设置的client_id,我们这里设置读取环境变量{{app_id}}
scope必须设置为:https://microsoftgraph.chinacloudapi.cn/.default
client_secret必须我们在第一章注册应用中,设置的client_secret,我们这里设置读取环境变量{{app_secret}}
grant_type必须设置为:client_credentials

 

  

 

  点击上图的Send后,获得的JWT如下图:

  

 

  我们把上图的access_token拿到后,可以在网站:https://jwt.ms/ 进行验证:

  

 

 

  三.授权Permission

  我们在访问Graph API的时候,还需要对API CALL进行授权。

  比如我们访问User API,https://docs.microsoft.com/en-us/graph/api/user-get?view=graph-rest-1.0&tabs=http

  里面需要对API设置Permissions (授权),授权内容如下:

Permission typePermissions (from least to most privileged)
Delegated (work or school account)User.Read, User.ReadWrite, User.ReadBasic.All, User.Read.All, User.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All, Directory.AccessAsUser.All
Delegated (personal Microsoft account)User.Read, User.ReadWrite
ApplicationUser.Read.All, User.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All

  

  那如何进行授权呢?我们登陆到Azure China Porta:https://portal.azure.cn/

  点击下图,我们在步骤1中创建的application。

  

 

  在API Permissions里面,设置Add a Permission。如下图:

  

 

  先点击Microsoft Graph

  

 

  在弹出的窗口中,根据API需要的permission,设置Delegated Permission和Application Permissions

  

  

  设置完毕后,我们还要点击Grant admin consent for XXX

  

 

 

  四.Call API

  当设置完第三步的授权Permission后,我们就可以call API了

  例如我们要Get user:https://docs.microsoft.com/en-us/graph/api/user-get?view=graph-rest-1.0&tabs=http

  需要call的URL是:https://microsoftgraph.chinacloudapi.cn/v1.0/users/

  HTTP Request: Get

 

  Request Headers

HeaderValue说明
AuthorizationBearer {token}我们在步骤2中获得的Token
Content-Typeapplication/json 

  CALL API后的结果:

  

 

橙子主题打折出售

其实我不卖,主要是这里是放广告的,所以就放了一个
毕竟主题都没做完,卖了也是坑.

购买它
所有附件
该文章没有附件.
本文为原创文章,请注意保留出处!
C#修改AD账号及密码 2024年12月19日

在使用AD域环境搭建的账号系统修改密码的时候比较麻烦一般需要管理员在域环境去进行对用户的密码进行修改...C#修改AD账号及密码

热门文章

WordPress 后台编辑器样式实现直接预览 在WordPress3.0以后,有一个新的实用功能:你可以更改默认后台编辑器(TinyMCE)的样...WordPress后台编辑器样式实现直接预览 作者:Pastore Antonio
1531 浏览量
【干货】Chrome插件(扩展)开发全攻略 写在前面我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo,写博客的辛苦大家懂的...【干货】Chrome插件(扩展)开发全攻略 作者:Pastore Antonio
1486 浏览量
memcached 处理 多端口:https://blog.csdn.net/Erica_1230/article/deta...memcached处理 作者:Pastore Antonio
1480 浏览量
使用Nginx+WordPress搭建个人网站 背景很多研究技术的朋友喜欢写博客。如果希望搭建一个完全属于自己的网站,也并不困难。这里简要分享一下...使用Nginx+WordPress搭建个人网站 作者:Pastore Antonio
1452 浏览量
C#图片处理 通常对一幅图片的处理包括:格式变换,缩放(Scale),翻转(Rotate),截取(Clip),滤镜...C#图片处理 作者:Pastore Antonio
1443 浏览量