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

调用Graph API获取PhoneMethods授权失败及委托权限相关咨询

问题解决思路

所需的委托权限

要操作用户的2FA电话方法,你需要用到Microsoft Graph的这两个委托权限:

  • 查看电话方法:UserAuthenticationMethod.Read
  • 更新电话方法:UserAuthenticationMethod.ReadWrite

两种调用场景的错误分析

1. 后端调用GraphClient.Users[id].Authentication.PhoneMethods.GetAsync()报错“授权失败”

普通用户的令牌没有权限通过Users[id]端点访问资源,哪怕是自己的用户ID也不行——你应该改用Me端点来代表当前用户操作。另外,后端如果是替用户调用Graph API,必须通过On-Behalf-Of(OBO)流程获取代表用户的令牌,同时要确保后端应用已添加上述委托权限,且由管理员完成了权限同意。

2. SPA直接调用GraphClient.Me.Authentication.PhoneMethods.GetAsync()报错“jwt范围不正确”

这是因为你获取令牌时没请求正确的权限范围。在SPA的登录请求里,必须加上https://graph.microsoft.com/UserAuthenticationMethod.Read(或ReadWrite)的范围,同时要在Azure AD B2C的SPA应用注册里提前添加这些Microsoft Graph的委托权限。

权限同意的方式

这些权限只需要全局管理员一次性同意即可,不需要每个用户登录时都手动授权。你可以在Azure AD B2C的应用注册里找到已添加的Graph权限,点击“授予管理员同意”按钮完成配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:57:11