Azure Portal新手:如何用Client Credentials流生成令牌读取应用与租户用户
解决方案
一、读取Azure AD应用(应用注册/企业应用)
你需要调用Microsoft Graph API的应用相关端点,Client Credentials流下需配置对应应用权限:
可用API端点
- 读取所有应用注册:
GET https://graph.microsoft.com/v1.0/applications - 读取租户内的企业应用(服务主体):
GET https://graph.microsoft.com/v1.0/servicePrincipals
必要配置
- 在Azure Portal的应用注册中,添加应用权限:
- 选择Microsoft Graph -> 应用权限 -> 添加
Application.Read.All(只读)或Application.ReadWrite.All(读写)
- 选择Microsoft Graph -> 应用权限 -> 添加
- 点击「授予[你的租户名]管理员同意」,确保权限生效
Postman调用步骤
- 获取Client Credentials令牌:
- 请求方法:POST
- 请求URL:
https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/token - Body(x-www-form-urlencoded):
client_id: 你的应用注册客户端IDclient_secret: 你的应用注册客户端密钥grant_type:client_credentialsscope:https://graph.microsoft.com/.default
- 调用应用查询API:
- 请求方法:GET
- 请求URL:
https://graph.microsoft.com/v1.0/applications - 请求头:
Authorization: Bearer {获取到的令牌}
二、读取租户关联的用户
同样使用Microsoft Graph API的用户端点,需配置用户相关应用权限:
可用API端点
- 读取所有租户用户:
GET https://graph.microsoft.com/v1.0/users - 读取单个用户:
GET https://graph.microsoft.com/v1.0/users/{用户ID/用户UPN}
必要配置
- 在应用注册中添加应用权限:
- 选择Microsoft Graph -> 应用权限 -> 添加
User.Read.All(只读)或User.ReadWrite.All(读写)
- 选择Microsoft Graph -> 应用权限 -> 添加
- 同样需要授予管理员同意
Postman调用步骤
- 令牌获取方式和上面一致(同一个应用注册的话,直接用之前的令牌即可,因为
/.default会包含所有已授予的应用权限) - 调用用户查询API:
- 请求方法:GET
- 请求URL:
https://graph.microsoft.com/v1.0/users - 请求头:
Authorization: Bearer {获取到的令牌}
常见问题排查
- 检查令牌的
aud(受众)字段是否为https://graph.microsoft.com,否则API会拒绝请求 - 查看令牌的
roles声明,确认包含你配置的应用权限(如Application.Read.All、User.Read.All) - 确保应用注册的客户端密钥未过期,租户ID填写正确
内容的提问来源于stack exchange,提问作者Sangita
相关产品推荐
相关产品推荐

