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

Azure B2C自定义策略JIT v2迁移场景下未迁移用户密码重置后认证失败

问题根因定位与修复方案

你遇到的AADB2C90037错误本质是未迁移用户完成密码重置+迁移流程后,B2C用户旅程没有将令牌签发所需的必填声明传递到信赖方,导致返回给站点的OIDC响应不符合协议规范。已迁移用户在密码重置第一步就通过AAD-UserReadUsingEmailAddress拿到了所有必填声明,所以流程正常。

具体修复步骤

  • 1. 补全AAD-MigrateUserUsingLogonEmail技术配置的输出声明
    你当前的迁移技术配置在创建完B2C新用户后,没有把新生成的用户核心标识字段回写到声明袋中。需要为该技术配置增加以下输出声明,确保创建用户后同步拿到必填字段:
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="objectId" />
      <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
      <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" />
      <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" PartnerClaimType="email" />
    </OutputClaims>
    
  • 2. 补全PasswordResetSecondPage技术配置的输出声明
    你当前的密码重置第二页只声明了newPassword、reenterPassword两个输出字段,迁移完成后生成的objectId等核心声明没有被透出到后续流程。需要在该技术配置的OutputClaims节点下补充:
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
    <OutputClaim ClaimTypeReferenceId="authenticationSource" />
    <OutputClaim ClaimTypeReferenceId="email" />
    
  • 3. 校验信赖方策略的输出声明
    确认密码重置对应的信赖方策略的输出声明列表,包含objectId、sub、email、userPrincipalName等OIDC协议必填字段,没有遗漏。
  • 4. 对齐登录迁移流程的声明逻辑
    你提到未迁移用户登录场景流程正常,可以直接对比登录迁移链路的技术配置输出声明,确保密码重置迁移链路输出的声明集合和登录链路完全一致,避免OWIN中间件校验时缺少期望字段。

你可以通过Azure B2C的Application Insights日志查看用户旅程的声明流转过程,确认走完迁移步骤后是否确实生成了必填的用户标识字段,进一步验证修复效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:39:00