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

如何在Azure AD B2C中启用邮箱验证?自定义策略场景求助

在Azure AD B2C自定义策略中启用邮箱验证的正确步骤

我懂你之前尝试反向工程内置策略来搞定邮箱验证的思路,但大概率是配置细节没踩对——毕竟自定义策略的坑不少。下面给你梳理一套能成功启用邮箱验证的正确步骤:

  • 定位目标自断言技术配置文件
    首先找到你自定义策略里负责用户输入(比如注册流程的SelfAsserted-LocalAccountSignUp,或者你自定义的类似ID)的自断言技术配置文件,这是我们要修改的核心节点。

  • 添加/启用邮箱验证元数据
    你之前测试的是禁用邮箱验证的配置(EnforceEmailVerification="False"),要启用的话,得把这个元数据项的值改成True,放到目标TP的<Metadata>节点里:

    <TechnicalProfile Id="SelfAsserted-LocalAccountSignUp">
      <Metadata>
        <!-- 保留你原有的其他元数据项 -->
        <Item Key="EnforceEmailVerification">True</Item>
      </Metadata>
      <!-- 其他InputClaims、OutputClaims等配置保持不变 -->
    </TechnicalProfile>
    
  • 确保邮箱声明配置正确
    别忽略声明的基础配置,要保证你的策略里有正确的email声明定义,并且在自断言TP里引用了它:

    1. 声明定义(通常在<BuildingBlocks>的<ClaimsSchema>里):
      <ClaimType Id="email">
        <DisplayName>Email Address</DisplayName>
        <DataType>string</DataType>
        <UserHelpText>Enter your email address</UserHelpText>
        <UserInputType>TextBox</UserInputType>
        <Restriction>
          <Pattern RegularExpression="^[a-zA-Z0-9.!#$%&amp;'^_`{}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" HelpText="Please enter a valid email address." />
        </Restriction>
      </ClaimType>
      
    2. 在自断言TP的<InputClaims>里引用这个声明:
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="email" />
      </InputClaims>
      
  • 检查依赖的后端技术配置文件
    自断言TP通常会依赖一个负责写入用户数据的后端TP(比如AAD-UserWriteUsingLogonEmail),确保这个TP的<PersistedClaims>里包含了email声明,并且没有覆盖邮箱验证的逻辑:

    <TechnicalProfile Id="AAD-UserWriteUsingLogonEmail">
      <PersistedClaims>
        <PersistedClaim ClaimTypeReferenceId="email" />
        <!-- 其他要保存的声明 -->
      </PersistedClaims>
    </TechnicalProfile>
    
  • 测试策略
    保存修改后的自定义策略,上传到Azure AD B2C租户,然后测试对应的流程(比如注册)。此时用户输入邮箱后,应该会收到验证邮件,必须点击验证链接完成验证,才能继续后续流程。

如果是在密码重置等其他流程里启用邮箱验证,逻辑完全一致——找到对应流程的自断言TP,添加EnforceEmailVerification="True"的元数据即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:14:26