You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft Graph API从Azure AD获取用户时权限不足问题排查

问题

我尝试通过Microsoft Graph API获取Azure AD中的用户列表,已成功生成如下格式的Bearer令牌:

{
    "token_type": "Bearer",
    "expires_in": "3599",
    "ext_expires_in": "3599",
    "expires_on": "1689943771",
    "not_before": "1689939871",
    "resource": "https://graph.microsoft.com",
    "access_token": "<My token>"
}

调用API接口 https://graph.microsoft.com/v1.0/users 后,收到如下错误响应:

{
    "error": {
        "code": "Authorization_RequestDenied",
        "message": "Insufficient privileges to complete the operation.",
        "innerError": {
            "date": "2023-07-21T11:49:44",
            "request-id": "f6ba2d19-e8ec-4698-97cc-ad62c60931fa",
            "client-request-id": "f6ba2d19-e8ec-4698-97cc-ad62c60931fa"
        }
    }
}

我已添加对应权限(见权限截图),请问还缺少什么配置?

可能的缺失配置

  • 确认权限是否完成管理员同意:如果添加的是应用权限或者需要管理员同意的委托权限,必须由Azure AD全局管理员或对应权限的管理员完成「授予管理员同意」操作,仅添加权限不做同意,令牌里不会包含该权限。
  • 检查权限类型是否匹配调用场景:
    • 要是后台服务/守护程序调用(无用户上下文),必须加应用权限(比如User.Read.All应用权限),不能用委托权限;
    • 要是有用户登录的场景,得确保添加的委托权限(比如User.ReadBasic.All或User.Read.All)已被用户或管理员同意,且调用时的用户有足够权限查看对应用户列表。
  • 验证令牌中的权限范围:用JWT解析工具(本地离线工具即可)查看access_token的scp(委托权限)或roles(应用权限)字段,确认是否包含所需的权限(比如User.Read.All)。如果令牌里没有对应权限,说明权限没配置或同意到位。
  • 确认权限范围是否足够:比如要读取所有用户,得用User.Read.All权限,User.Read只能读当前用户信息,权限范围不够就会报错。
  • 清除令牌缓存重新获取:如果之前获取过令牌,新添加的权限可能没同步,清缓存后重新生成令牌,确保新令牌包含最新配置的权限。

内容的提问来源于stack exchange,提问作者sai chandan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 18:32:42