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

如何在Azure AD B2C中实现注册表单完成后邮箱验证的用户流?

调整Azure AD B2C注册流程:先填表单后验证邮箱

默认的Azure AD B2C用户流无法直接修改邮箱验证的顺序,要实现先完成注册表单再发送验证邮件的逻辑,必须通过**自定义策略(Custom Policies)**来配置,具体步骤如下:

1. 准备自定义策略基础模板

  • 从Azure AD B2C官方提供的自定义策略Starter Pack中,下载适配场景的模板(比如SocialAndLocalAccounts模板,支持本地账号和社交账号注册)。
  • 将模板中的XML文件上传到Azure AD B2C门户的「标识体验框架」→「策略文件」中,完成基础自定义策略的部署(注意替换模板中的租户ID、应用ID等占位符)。

2. 调整注册用户旅程的步骤顺序

在自定义策略的XML文件中,找到注册相关的用户旅程(默认是SignUpOrSignIn),修改编排步骤的顺序:

  • 先执行收集用户属性的步骤:调用SelfAssertedAttributeProvider技术配置,显示完整的注册表单,收集姓名、密码等必填信息。
  • 再执行邮箱验证的步骤:调用EmailVerification技术配置,触发发送含确认链接的验证邮件。

示例XML片段(调整后的核心编排步骤):

<UserJourney Id="SignUpOrSignIn">
  <OrchestrationSteps>
    <!-- 步骤1:初始化登录/注册入口 -->
    <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
      <ClaimsProviderSelections>
        <ClaimsProviderSelection TargetClaimsExchangeId="LocalAccountSigninEmailExchange" />
      </ClaimsProviderSelections>
      <ClaimsExchanges>
        <ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
      </ClaimsExchanges>
    </OrchestrationStep>
    <!-- 步骤2:收集注册表单信息 -->
    <OrchestrationStep Order="2" Type="ClaimsExchange">
      <Preconditions>
        <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
          <Value>objectId</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
      </Preconditions>
      <ClaimsExchanges>
        <ClaimsExchange Id="SignUpWithLogonEmailExchange" TechnicalProfileReferenceId="LocalAccountSignUpWithLogonEmail" />
      </ClaimsExchanges>
    </OrchestrationStep>
    <!-- 步骤3:发送邮箱验证邮件 -->
    <OrchestrationStep Order="3" Type="ClaimsExchange">
      <Preconditions>
        <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
          <Value>objectId</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
      </Preconditions>
      <ClaimsExchanges>
        <ClaimsExchange Id="EmailVerificationExchange" TechnicalProfileReferenceId="EmailVerification" />
      </ClaimsExchanges>
    </OrchestrationStep>
    <!-- 后续步骤:创建用户、颁发令牌等 -->
  </OrchestrationSteps>
</UserJourney>

3. 配置技术配置文件细节

  • 确保LocalAccountSignUpWithLogonEmail技术配置文件(属于SelfAssertedAttributeProvider类型)中,仅收集用户属性,不提前触发邮箱验证。
  • 配置EmailVerification技术配置文件,设置邮件模板、验证链接有效期等参数,确保用户提交表单后才发送验证邮件。

4. 测试自定义策略

  • 在Azure AD B2C门户中创建测试应用,关联该自定义策略。
  • 启动注册流程,验证是否先显示完整的注册表单,提交后收到邮箱验证链接,点击链接完成注册。

内容的提问来源于stack exchange,提问作者me.at.coding

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:32:52