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

Flutter通过aad_oauth调用MS Graph API User.Read接口遇权限不足错误

解决Microsoft Graph API权限不足问题

排查与修复步骤:

  • 匹配权限类型与认证流程
    你在Azure AD添加的权限如果是应用权限(Application permissions),但当前用的是用户登录的委托流程(Delegated permissions),权限会直接失效。请确认添加的是委托权限,且权限对应你要调用的API(比如获取用户基础数据用User.Read)。

  • 检查管理员同意状态
    若添加的权限旁标注“需要管理员同意”,必须在Azure AD管理中心点击「授予管理员同意」按钮——普通用户登录后无法自动获取这类权限的访问凭证,必须完成管理员同意操作。

  • 修正Token请求的Scope参数
    获取access token时,必须指定Graph API的具体权限scope,不能只使用openid/profile这类基础OIDC scope:

    • 调用获取当前用户信息的API,scope需包含https://graph.microsoft.com/User.Read
      检查你的aad_oauth配置,确保scope参数包含所需的Graph权限。
  • 验证Token的权限内容
    用本地JWT解析工具(比如jwt.ms,可离线使用)解析获取到的access token,查看scp字段是否包含目标权限(如User.Read)。如果scp字段无对应权限,说明token请求时的scope配置错误,或权限未完成同意流程。

  • 核对HTTP请求头格式
    确保请求的Authorization头格式完全正确:

    Authorization: Bearer {你的access token}
    

    注意Bearer后必须有一个空格,token不能包含多余换行或空格。

示例修正参考:

如果你的aad_oauth原scope配置是['openid', 'profile'],修改为:

final config = AadOAuthConfig(
  // 其他配置项...
  scope: 'openid profile https://graph.microsoft.com/User.Read',
);

修改后重新登录获取token,再调用https://graph.microsoft.com/v1.0/me端点测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 18:15:42