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

Microsoft Graph新增User.ReadBasic.All后令牌缺失权限报错排查

问题根因

新增Microsoft Graph权限后令牌无对应权限、调用报Insufficient privileges to complete the operation错误,90%以上是权限配置流程漏步、权限类型不匹配或令牌请求参数错误导致,和SDK、接口本身无关。

相关配置参考截图:
配置截图1
配置截图2

排查解决步骤(按优先级从高到低操作)
  • 核对权限类型匹配性
    User.ReadBasic.All分为两类权限,和你使用的授权流必须对应:
    • 无用户上下文的服务/守护进程场景(使用client_credentials客户端凭据流拿令牌):必须添加**应用程序(Application)**类型的User.ReadBasic.All,添加委托(Delegated)类型的权限不会出现在客户端凭据流的令牌中
    • 有用户登录的场景(使用授权码、隐式流、ROPC等拿令牌):必须添加**委托(Delegated)**类型的User.ReadBasic.All,添加应用程序类型的权限不会出现在用户上下文的令牌中
  • 完成管理员授权操作
    所有应用程序类型的Graph权限,以及需要管理员同意的委托权限,添加后不能直接生效,必须在应用注册的「API权限」页面顶部,点击为[你的租户名称]授予管理员同意按钮,按弹窗提示完成确认。该操作需要账号持有租户全局管理员、特权角色管理员或应用管理员角色,普通用户操作无效。
  • 修正令牌请求参数
    • 客户端凭据流请求令牌时,请求体的scope参数必须固定为https://graph.microsoft.com/.default,不要自定义拼接权限字符串,否则只会返回之前已经授权过的权限集合
    • 委托流请求令牌时,确认请求的scope参数中包含User.ReadBasic.All权限项
  • 清理旧令牌缓存重新获取
    新增权限前签发的访问令牌不会自动更新权限声明,先清空代码、分布式缓存、本地存储中留存的旧访问令牌,再重新发起令牌请求获取新令牌
  • 校验令牌内容
    拿到新令牌后本地解析JWT内容:应用权限会出现在roles声明字段中,委托权限会出现在scp声明字段中,确认对应字段包含User.ReadBasic.All值后,再调用目标接口即可。

常见踩坑点:不要把个人账号给应用授权的操作和租户级管理员同意混淆,应用权限是租户级生效的,不存在普通用户同意应用权限的路径;权限配置完成后一般1分钟内即可生效,不需要等几小时,长时间不生效优先检查前面的配置步骤是否漏做。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:06:25