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

Azure AD IEF自定义策略登录报AADB2C90240 id_token解析错误

AADB2C90240 id_token格式解析错误排查与修复方案

这个错误的核心触发逻辑是Azure AD B2C在和作为IdP的Azure AD交互完成授权后,拿到的返回内容不符合标准id_token的JWT格式,无法完成解析,常见成因和对应修复方式如下:

  • 响应类型、作用域配置错误
    这是最高发的配置错误,检查自定义策略中Azure AD身份提供程序对应的OAuth2技术配置文件:
    • response_type必须配置为id_token,新手常误配为授权码流的code或者混合流多参数组合,导致Azure AD返回的不是纯id_token内容
    • scope必须包含openid,缺失该作用域时Azure AD不会返回标准格式的id_token
      正确配置片段参考:
    <Item Key="response_type">id_token</Item>
    <Item Key="scope">openid profile</Item>
    <Item Key="response_mode">form_post</Item>
    
  • 元数据端点配置不匹配
    检查IdP配置中的元数据地址:
    • 地址必须和实际使用的Azure AD租户匹配,不能错填租户ID,也不要混用v1/v2版本端点
    • 正确的v2版本元数据格式为https://login.microsoftonline.com/<替换为你的Azure AD租户ID>/v2.0/.well-known/openid-configuration
      元数据地址错误会导致B2C拉取到错误的公钥、令牌签发规则,拿到id_token后无法匹配解析规则直接报错。
  • id_token签名算法配置不一致
    对齐两边的签名算法配置:
    • 自定义策略中IdTokenSignatureAlgorithm配置项要和Azure AD应用注册里的id_token签名算法完全一致,常用配置为RS256,不要出现一侧用RS256、另一侧用PS256这类不匹配的情况
      对应配置片段参考:
    <Item Key="IdTokenSignatureAlgorithm">RS256</Item>
    
  • 自定义声明破坏JWT结构
    如果在Azure AD应用注册中配置了自定义声明:
    • 不要使用iss/aud/exp/nbf这类JWT标准保留字段作为自定义声明名,这类字段会直接破坏JWT的三段式标准结构,导致解析失败
    • 排查时可以先临时关闭所有自定义声明,仅保留默认声明测试登录,流程跑通后再逐个加回声明定位冲突项
  • 条件访问拦截返回非令牌内容
    检查Azure AD租户侧针对该IdP应用配置的条件访问策略:如果测试账号触发了MFA、设备合规拦截、位置限制等规则,Azure AD不会直接返回id_token,而是返回交互干预的响应内容,B2C将该内容当做id_token解析时就会触发格式错误。测试阶段可以先给测试账号关闭条件访问,验证基础流程正常后再逐步调整策略。

快速排查技巧:抓包获取Azure AD返回给B2C的原始id_token内容,用本地JWT解析工具验证:如果工具也无法解析出头部、载荷、签名三段结构,优先排查前面提到的响应类型、作用域、条件访问问题;如果工具可以正常解析,再排查元数据、签名算法、声明冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:45:35