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账号及密码

热门文章

无法握住的故土 在我们心灵最温暖的角落,总有一寸土地是属于故乡的。虽然我们看似已远离故土,可骨子里对故乡的依恋却是从未冷却过。我们无论漂泊他乡,还是在繁华都市平步青云,可故乡的悠悠情思总会潜入梦乡与你缠绵。是儿时那一缕缕茉莉的清香萦绕在梦境,也是邻家那已锈迹斑斑的铁壶里,开出艳丽的花儿在梦的边缘摇曳。故土就这样根深蒂固地在我们的灵魂深处烙下深深的印记。 作者:Pastore Antonio
1596 浏览量
EWS(Exchange Service)基本使用(获取个人会议,会议室会议内容,会议室列表,发送会议,修改会议,删除会议) 最近公司要求和exchange服务对接,所以稍微研究了一下官方文档,做出以下总结,欢迎大家补充。先...EWS(ExchangeService)基本使用(获取个人会议,会议室会议内容,会议室列表,发送会议,修改会议,删除会议) 作者:Pastore Antonio
1585 浏览量
Sql Server 部署SSIS包完成远程数据传输 本篇介绍如何使用SSIS和作业完成自动更新目标数据任务。**温馨提示:如需转载本文,请注明...SqlServer部署SSIS包完成远程数据传输 作者:Pastore Antonio
1578 浏览量
SQL Server AG集群启动不起来的临时自救大招 背景前晚一朋友遇到AG集群发生来回切换不稳定的情况,情急之下,朋友在命令行使用命令重启WSFC集群...SQLServerAG集群启动不起来的临时自救大招 作者:Pastore Antonio
1571 浏览量
windows 下安装 memcahce 官网上并未提供Memcached的Windows平台安装包,我们可以使用以下链接来下载,你需...windows下安装memcahce 作者:Pastore Antonio
1566 浏览量