【Azure Developer】使用 Microsoft Graph API 获取 AAD User 操作示例

简介: 【Azure Developer】使用 Microsoft Graph API 获取 AAD User 操作示例

问题描述

查看官方文档“ Get a user ” , 产生了一个操作示例的想法,在中国区Azure环境中,演示如何获取AAD User信息。

 

问题解答

使用Microsoft Graph API,演示如何获取AAD User信息,因参考文档是针对Global Azure,所以文档种的URL为:

// Global Azure Microsoft Graph API Host
GET https://graph.microsoft.com/v1.0/me

需要修改为

// 中国区Azure的Microsoft Graph API Host

GET https://microsoftgraph.chinacloudapi.cn/v1.0//me

 

第一步:使用 https://microsoftgraph.chinacloudapi.cn/v1.0/me 来查询自己的用户信息,失败!提示需要Access Token

那么:如何来获取Access Token呢?

 

第二步:使用az login 和az account access-token命令来获取正确的Authentication (Bearer .....)

1) 设置登录环境为中国区 Azure

2) az login 登录,在弹出框种输入Azure用户名及密码

3) 使用 az account access-token 生成 Access Token

##设置Azure 环境为 Azure China Cloud
az cloud set --name AzureChinaCloud
##登录
az login
## 生成 Access Token
az account get-access-token

当使用以上指令生成的 Access Token 放入 https://microsoftgraph.chinacloudapi.cn/v1.0/me 请求,继续错误。错误消息提示 Audience不对 [Access token validation failure. Invalid audience.]

jwt.ms 上去解析Access Token后,发现aud使用的是 "https://management.core.chinacloudapi.cn/", 而我们请求的URL 是 https://microsoftgraph.chinacloudapi.cn/

所以,需要在生成Access Token时,指定 aud, 正确命令为: az account get-access-token --resource 'https://microsoftgraph.chinacloudapi.cn/'

## 设置Azure 环境为 Azure China Cloud
az cloud set --name AzureChinaCloud
## 登录
az login
#### 生成 Access Token, 使用默认resource (https://management.core.chinacloudapi.cn/) 作为 aud,
##az account get-access-token
## 修改resource为microsoft graph api
az account get-access-token --resource 'https://microsoftgraph.chinacloudapi.cn/'

 

第三步:生成正确的Access Token,访问 Microsoft Graph API 获取me信息,成功

 

第四步:接下来,通过User ID或者UserPrincipalName获取其他用户的信息,一个失误引发的400 Bad Request错误

思考中。。。 。。。

明明只是修改请求中的me为User ID,而且这个User ID就是一个真实用户的ID啊!

400 Bad Request, 是URL 不对吗?

仔细,仔细查看Get User接口文档,原来真是没有注意细节啊。

通过UserID或者User Principal Name的API URL是 https://microsoftgraph.chinacloudapi.cn/v1.0/users/<user id | user principal name>,  因为粗心,丢失了/users。

# 正确的
https://microsoftgraph.chinacloudapi.cn/v1.0/users/68b844af-***************************
VS
# 错误的
https://microsoftgraph.chinacloudapi.cn/v1.0/68b844af-***************************

终于,大功告成。

 

附录:其他Graph API获取用户信息示例

1:获取全部用户信息

GET https://microsoftgraph.chinacloudapi.cn/v1.0/users

2:根据mail查找用户

GET https://microsoftgraph.chinacloudapi.cn/v1.0/users?count=true&count=true&count=true&filter=startswith(mail,'yourmailaddress')

 

 

参考资料

Microsoft Graph API Get a User :https://learn.microsoft.com/en-us/graph/api/user-get?view=graph-rest-1.0&tabs=http

az account get-access-token : https://learn.microsoft.com/en-us/cli/azure/account?view=azure-cli-latest

JWT 解析: https://jwt.ms/

Check endpoints in Azure : https://learn.microsoft.com/en-us/azure/china/resources-developer-guide#check-endpoints-in-azuredevelop

 

相关文章
|
12天前
|
JSON API 数据格式
Amazon商品详情API,json数据格式示例参考
亚马逊商品详情API接口返回的JSON数据格式通常包含丰富的商品信息,以下是一个简化的JSON数据格式示例参考
|
21天前
|
JSON API 数据格式
店铺所有商品列表接口json数据格式示例(API接口)
当然,以下是一个示例的JSON数据格式,用于表示一个店铺所有商品列表的API接口响应
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
揭秘深度学习中的微调难题:如何运用弹性权重巩固(EWC)策略巧妙应对灾难性遗忘,附带实战代码详解助你轻松掌握技巧
【10月更文挑战第1天】深度学习中,模型微调虽能提升性能,但常导致“灾难性遗忘”,即模型在新任务上训练后遗忘旧知识。本文介绍弹性权重巩固(EWC)方法,通过在损失函数中加入正则项来惩罚对重要参数的更改,从而缓解此问题。提供了一个基于PyTorch的实现示例,展示如何在训练过程中引入EWC损失,适用于终身学习和在线学习等场景。
70 4
揭秘深度学习中的微调难题:如何运用弹性权重巩固(EWC)策略巧妙应对灾难性遗忘,附带实战代码详解助你轻松掌握技巧
|
7天前
|
JSON API 数据格式
携程API接口系列,酒店景点详情请求示例参考
携程API接口系列涵盖了酒店预订、机票预订、旅游度假产品预订、景点门票预订等多个领域,其中酒店和景点详情请求是较为常用的功能。以下提供酒店和景点详情请求的示例参考
|
1月前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索json数据格式示例(API接口)
拍立淘按图搜索API接口为电商平台和购物应用提供了强大的图像搜索功能,能够显著提升用户的购物体验和搜索效率。开发者可以根据自己的需求调用此接口,并处理返回的JSON格式数据来展示推荐商品
|
11天前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释
|
1月前
|
JSON API 数据格式
商品详情数据JSON格式示例参考(api接口)
JSON数据格式的商品详情数据通常包含商品的多个层级信息,以下是一个综合多个来源信息的JSON数据格式的商品详情数据示例参考:
|
1月前
|
存储 前端开发 API
Restful API 设计示例
Restful API 设计示例
32 0
|
1月前
|
安全 数据挖掘 API
解锁数据宝藏:Microsoft Graph API的统一数据革命
解锁数据宝藏:Microsoft Graph API的统一数据革命
30 0
|
8天前
|
JSON API 数据格式
淘宝 / 天猫官方商品 / 订单订单 API 接口丨商品上传接口对接步骤
要对接淘宝/天猫官方商品或订单API,需先注册淘宝开放平台账号,创建应用获取App Key和App Secret。之后,详细阅读API文档,了解接口功能及权限要求,编写认证、构建请求、发送请求和处理响应的代码。最后,在沙箱环境中测试与调试,确保API调用的正确性和稳定性。