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

Azure AD返回无效访问令牌,移动端调用ASP.NET Core API报401错误

问题根源

  • 核心触发原因:移动端请求访问令牌时,将OIDC标准 scope(openid、email)与自定义API的scope放在同一请求中,这种混合请求会触发Azure AD B2C回退发行v1版本访问令牌。你的API已配置accessTokenAcceptedVersion: 2仅接受v2令牌,签名校验逻辑不匹配导致返回401 Unauthorized。
  • 可选排查点:若修改scope后仍返回v1令牌,可检查B2C用户流B2C_1_SignupSignin的「令牌配置」设置,确认访问令牌的发行版本已选择v2。

修复方案

  1. 修改移动端令牌请求的scope列表,请求API访问令牌时仅传入自定义API的scope即可:
var scopes = new string[]
{
    "https://testorganisation.onmicrosoft.com/api/access_as_user"
};
  1. 若需要获取用户邮箱、身份信息,可直接从MSAL返回的Account对象的Claims属性中读取,或在首次调用AcquireTokenInteractive触发登录时,单独请求openid、email scope获取ID令牌解析即可,不要和API访问令牌的scope混同请求。
  2. 验证方法:修改后获取的新令牌可通过JWT解析工具查看,确认ver声明值为2.0、aud声明匹配你的API标识符URI或客户端ID即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:24:08