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

ADB2C自定义策略写入联合用户时用户配置文件UPN设置错误

问题根源

你当前的配置存在两处问题导致UPN未按预期设置:

  1. 多租户Azure AD登录技术配置文件AADCommon-OpenIdConnect中使用了默认的CreateUserPrincipalName声明转换,这个转换会自动生成cpim_<随机GUID>@你的B2C租户域名格式的userPrincipalName声明,不会用到你从联邦身份源拿到的federated_upn值。
  2. 后续将用户写入B2C目录的技术配置文件AAD-UserWriteUsingAlternativeSecurityId中,直接持久化了上述自动生成的userPrincipalName值,没有替换为你期望的federated_upn。

修复方案

可任选以下一种方式修改配置:

方案一:修改用户写入配置(操作最简单)

直接修改AAD-UserWriteUsingAlternativeSecurityId技术配置文件的持久化声明部分,调整userPrincipalName的取值来源:

<!-- 替换原有配置行 <PersistedClaim ClaimTypeReferenceId="userPrincipalName" /> 为以下内容 -->
<PersistedClaim ClaimTypeReferenceId="federated_upn" PartnerClaimType="userPrincipalName" />

方案二:修改联邦登录配置

在AADCommon-OpenIdConnect技术配置文件中做两处调整:

  1. 移除输出声明转换列表中的CreateUserPrincipalName规则
  2. 在输出声明中新增映射,直接将身份源返回的upn赋值给userPrincipalName:
<OutputClaim ClaimTypeReferenceId="userPrincipalName" PartnerClaimType="upn"/>

注意事项

如果federated_upn的后缀不属于你的B2C租户已验证的域名,直接写入userPrincipalName属性会触发报错。这种情况建议保留系统自动生成的userPrincipalName,将federated_upn存储到signInNames.emailAddress等其他属性即可,不会影响正常登录逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:24:03