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

Azure AD B2C身份验证时转换用户输入用户名的实现方案问询

解决方案

针对你在Azure AD B2C中需要预转换用户名的需求,可通过以下两种原生能力实现,无需额外依赖第三方服务:

1. 内置用户流实现方案

如果你使用B2C内置的标准用户流,可通过客户端JS预处理完成转换:

  • 首先进入对应用户流的「属性」配置页,开启启用 JavaScript 客户端代码选项
  • 在「页面布局」设置中自定义登录/注册页的HTML源码,添加表单提交监听事件,在用户点击提交后,先获取用户输入的用户名,拼接对应账号编号后再将值回填到用户名字段,最后提交表单到B2C服务端

2. 自定义策略(IEF)实现方案

如果你使用灵活性更高的自定义策略,可直接在服务端通过声明转换完成逻辑,避免客户端篡改风险:

  • 在你的策略扩展文件中新增用户名拼接的声明转换规则,示例如下:
<ClaimsTransformation Id="ConcatUsernameWithAccountId" TransformationMethod="StringJoin">
  <InputClaims>
    <!-- 用户输入的原始用户名 -->
    <InputClaim ClaimTypeReferenceId="inputUserName" TransformationClaimType="inputParameter1" />
    <!-- 你需要追加的账号编号,可从配置或上游接口获取 -->
    <InputClaim ClaimTypeReferenceId="userAccountNumber" TransformationClaimType="inputParameter2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="delimiter" DataType="string" Value="" />
  </InputParameters>
  <OutputClaims>
    <!-- 拼接完成的最终用户名,用于后续身份验证逻辑 -->
    <OutputClaim ClaimTypeReferenceId="signInName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • 在登录/注册对应的SelfAssertedTechnicalProfile的<InputClaimsTransformations>节点中引用上述声明转换ID即可,系统会在执行身份验证逻辑前自动完成用户名转换
  • 如果你需要根据用户输入的用户名先查询对应的账号编号,可在声明转换前新增RestfulTechnicalProfile调用你自有业务服务的查询接口获取编号即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:36:03