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

Azure AD B2C自定义策略拆分OrchestrationSteps实现注册分步验证流程

Azure AD B2C自定义策略拆分注册编排步骤实现分步验证方案

核心思路

把原本单步完成的注册流程拆分为2个独立的编排步骤(OrchestrationStep),第一步仅处理邮箱收集和验证码校验,验证通过后把合法邮箱写入声明上下文临时存储,第二步再加载剩余注册字段供用户填写,最后统一完成账号创建。

具体实现步骤

  • 第一步:配置仅包含邮箱验证的页面和编排逻辑
    • 声明类型新增邮箱类型的signInName字段,配置验证控件关联Azure AD B2C自带的邮箱验证技术配置
    • 新增内容定义ContentDefinitionId="api.signup.emailonly",页面仅展示邮箱输入框、发送验证码按钮、验证码输入框三个控件
    • 对应编排步骤类型设为ClaimsExchange,关联的自断言技术配置文件仅输出验证通过的signInName声明,第一步验证通过的邮箱默认会存在于声明上下文里,不需要额外做持久化存储,只要技术配置文件正确输出声明即可
    • 记得在该自断言技术配置文件的<ValidationTechnicalProfiles>节加入自带的邮箱验证技术配置,确保验证码正确性校验生效
  • 第二步:配置剩余注册信息收集的页面和编排逻辑
    • 新增内容定义ContentDefinitionId="api.signup.userinfo",包含姓名、密码、手机号等你需要的剩余注册字段,其中邮箱字段建议设为只读,禁止用户修改已经验证通过的邮箱
    • 编排步骤同样为ClaimsExchange,关联的自断言技术配置文件需要先从上下文中读取第一步输出的signInName声明作为输入声明
    • 信息收集完成后调用AAD-UserWriteUsingLogonEmail技术配置文件完成用户账号写入
  • 编排步骤顺序配置示例
    把原本的单步注册替换为如下顺序即可:
    <OrchestrationStep Order="1" Type="ClaimsExchange">
      <ClaimsExchanges>
        <ClaimsExchange Id="EmailVerificationExchange" TechnicalProfileReferenceId="SelfAsserted-EmailVerificationOnly" />
      </ClaimsExchanges>
    </OrchestrationStep>
    <OrchestrationStep Order="2" Type="ClaimsExchange">
      <ClaimsExchanges>
        <ClaimsExchange Id="UserInfoCollectionExchange" TechnicalProfileReferenceId="SelfAsserted-CollectUserInfo" />
      </ClaimsExchanges>
    </OrchestrationStep>
    <OrchestrationStep Order="3" Type="ClaimsExchange">
      <ClaimsExchanges>
        <ClaimsExchange Id="AADUserWriteExchange" TechnicalProfileReferenceId="AAD-UserWriteUsingLogonEmail" />
      </ClaimsExchanges>
    </OrchestrationStep>
    <!-- 后续保持原有生成令牌的标准步骤即可 -->
    

注意事项

  • 第一步的自断言技术配置文件需要设置AllowGenerationOfClaimsWithNullValues为false,确保只有验证码验证通过、邮箱声明合法存在的情况下才能进入下一步
  • 如果需要支持用户返回上一步修改邮箱,可以给第二步的自断言页面加上返回按钮的配置,回到第一步后用户需要重新验证邮箱
  • 不要在第一步就执行账号写入操作,避免出现用户验证完邮箱但没完成后续注册,生成无效账号的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 10:36:00