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

切换AAD B2C登录至工作账户时遇AADB2C90238错误求助

问题描述

在配置Azure AD B2C自定义策略的OpenIdConnect登录时,尝试从Microsoft个人账户(login.live.com)切换到工作/学校账户(login.microsoftonline.com),原个人账户登录功能正常。仅修改ProviderName和Metadata地址后,使用工作账户登录时触发错误:

AADB2C90238 provided token does not contain valid issuer

原正常运行的Microsoft个人账户策略片段:
原Microsoft个人账户自定义策略片段

修改后的工作账户策略片段:
修改后的工作账户自定义策略片段

已替换ProviderName和Metadata地址为login.microsoftonline.com,但问题仍未解决。

解决方案

这个错误源于Azure AD B2C无法验证工作账户Token的发行方(Issuer),仅修改Metadata地址和ProviderName不足以解决问题,需完成以下配置:

  • 修正Metadata地址格式
    工作账户的Metadata地址必须指定租户范围,格式应为:

    https://login.microsoftonline.com/{你的租户ID}/v2.0/.well-known/openid-configuration
    

    若允许所有工作/学校账户登录,可使用https://login.microsoftonline.com/organizations/v2.0/.well-known/openid-configuration,不能仅使用login.microsoftonline.com根地址。

  • 配置发行方验证规则
    在自定义策略的<ClaimsProvider>下的<TechnicalProfile>节点中,添加Metadata配置指定合法发行方:

    <Metadata>
      <!-- 保留已有元数据 -->
      <Item Key="ValidIssuer">https://login.microsoftonline.com/{你的租户ID}/v2.0</Item>
      <!-- 若支持多租户,改用匹配规则 -->
      <!-- <Item Key="IssuerPattern">^https://login.microsoftonline.com/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/v2.0$</Item> -->
    </Metadata>
    
  • 同步声明映射配置
    工作账户ID Token返回的声明与个人账户存在差异,检查<OutputClaims>中映射的email、given_name等声明是否存在,同时确认<OutputClaimsTransformations>未依赖个人账户特有的声明字段。

  • 检查工作租户应用注册
    在工作账户对应的Azure AD租户应用注册中,确认已配置正确的重定向URI(指向B2C端点),并授予openid、profile、email等必要API权限。

  • 验证Metadata返回的Issuer值
    直接访问配置的Metadata地址,查看issuer字段的完整值,确保与策略中ValidIssuer或IssuerPattern的配置完全匹配(大小写、路径均不能出错)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 14:34:58