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

使用Microsoft.Graph获取AD组成员时出现Authorization授权错误

Microsoft Graph 授权错误解决步骤

错误原因

你收到的Authorization_RequestDenied错误是典型的权限不足问题,根源是当前应用申请的权限范围不包含读取AD组成员的相关权限。

  • 第一步:调整本地权限范围配置
    你当前appSettings中配置的ida:AppScopes仅包含User.Read.All、Calendars.Read两个权限,缺少读取组成员的权限,按需补充对应权限:
    • 委托权限(当前代码使用用户登录上下文场景适用,优先选最小权限):添加GroupMember.Read.All(仅读取组成员)或Group.Read.All(读取所有组相关信息)
    • 应用权限(后台无用户登录的服务场景适用):添加GroupMember.Read.All或Group.Read.All
      调整后的配置示例:
<appSettings>
    <add key="ida:AppID" value=[App Id] />
    <add key="ida:AppSecret" value=[App Secret] />
    <add key="ida:RedirectUri" value="https://localhost:44359/" />
    <add key="ida:AppScopes" value="User.Read.All Calendars.Read GroupMember.Read.All" />
</appSettings>
  • 第二步:完成Azure门户侧权限授权
    仅修改本地配置不会生效,需要在Azure AD应用注册页完成权限同意:

    1. 登录Azure Portal,进入「Azure Active Directory」→「应用注册」,找到你当前使用的应用
    2. 左侧菜单选择「API权限」,点击「添加权限」,选择「Microsoft Graph」
    3. 按照你的认证场景选择「委托权限」/「应用权限」,搜索并勾选刚才补充的GroupMember.Read.All权限
    4. 点击「授予<你的租户名称>管理员同意」,完成授权(该操作需要租户全局管理员、应用管理员或云应用管理员权限)
  • 可选排查步骤
    如果完成上述操作仍然报错,可以将代码中获取到的result.AccessToken复制到JWT解析工具中,检查scp(委托权限场景)或roles(应用权限场景)声明中是否存在GroupMember.Read.All,确认权限是否正确发放。

注意:如果你使用的是应用权限场景,当前的认证代码需要调整,不能使用AcquireTokenSilent走用户上下文获取令牌,要改用AcquireTokenForClient方法获取客户端凭据令牌。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:15:03