在 Azure AD B2C 自定义策略中定义Microsoft Entra ID 多重身份验证技术配置文件

重要

自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息

Azure Active Directory B2C (Azure AD B2C) 支持使用验证码验证电话号码。

协议

“Protocol”元素的“Name”属性必须设置为 处理程序属性必须包含 Azure AD B2C 使用的协议处理程序程序集的完全限定名称:

Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

以下示例演示Microsoft Entra ID 多重身份验证技术配置文件:

<TechnicalProfile Id="AzureMfa-SendSms">
    <DisplayName>Send Sms</DisplayName>
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    ...

验证手机模式

在验证电话模式下,技术配置文件生成代码并将其发送到电话号码,然后验证代码。 Microsoft Entra ID 多重身份验证技术配置文件也可能返回错误消息。 验证技术配置文件在用户旅程继续之前验证用户提供的数据。 使用验证技术配置文件,在自断言页面上显示一条错误消息。 技术配置文件:

  • 不提供与用户交互的界面。 而是从 自断言 技术配置文件或 显示控件 作为 验证技术配置文件调用用户界面。
  • 使用 Microsoft Entra 多重身份验证服务生成代码并将其发送到电话号码,然后验证代码。
  • 通过短信验证电话号码。

技术配置文件提供通过短信 发送验证码 的方法,并 验证代码。 以下屏幕截图显示了电话验证程序流。

显示 TOTP 流的屏幕截图

发送短信

若要验证电话,第一步将生成代码并将其发送到电话号码。 可以为此步骤配置以下选项。

输入声明

InputClaims 元素包含要发送到 Microsoft Entra 多重身份验证的声明列表。 还可以将声明的名称映射到 MFA 技术配置文件中定义的名称。

ClaimReferenceId 必选 DESCRIPTION
userPrincipalName 是的 拥有电话号码的用户的标识符。
phoneNumber 是的 要向其发送短信代码的电话号码。
companyName SMS 中的公司名称。 如果未提供,则使用应用程序的名称。
locale 短信的区域设置。 如果未提供,则使用用户的浏览器区域设置。

输出声明

Microsoft Entra 多重身份验证协议提供程序不返回任何输出声明,因此无需指定输出声明。

元数据

Metadata 元素包含以下属性。

特征 必选 DESCRIPTION
Operation 是的 必须是 OneWaySMS
UI 元素

以下元数据可用于配置发送短信失败时显示的错误消息。 应在 自断言 技术配置文件中配置元数据。 可以将错误消息本地化

特征 必选 DESCRIPTION
UserMessageIfCouldntSendSms 如果提供的电话号码不接受短信,则用户错误消息。
UserMessageIfInvalidFormat 如果提供的电话号码不是有效的电话号码,则用户错误消息。
UserMessageIfServerError 如果服务器遇到内部错误,则用户错误消息。
UserMessageIfThrottled 如果请求受到限制,则用户错误消息。

示例:发送短信

以下示例演示用于通过短信发送代码的 Microsoft Entra ID 多重身份验证技术配置文件。

<TechnicalProfile Id="AzureMfa-SendSms">
  <DisplayName>Send Sms</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  <Metadata>
    <Item Key="Operation">OneWaySMS</Item>
  </Metadata>
  <InputClaimsTransformations>
    <InputClaimsTransformation ReferenceId="CombinePhoneAndCountryCode" />
    <InputClaimsTransformation ReferenceId="ConvertStringToPhoneNumber" />
  </InputClaimsTransformations>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="userPrincipalName" />
    <InputClaim ClaimTypeReferenceId="fullPhoneNumber" PartnerClaimType="phoneNumber" />
  </InputClaims>
</TechnicalProfile>

验证验证码

验证代码步骤验证发送给用户的代码。 可以为此步骤配置以下选项。

输入声明

InputClaims 元素包含要发送到 Microsoft Entra 多重身份验证的声明列表。 还可以将声明的名称映射到 MFA 技术配置文件中定义的名称。

ClaimReferenceId 必选 DESCRIPTION
phoneNumber 是的 与以前用于发送代码的电话号码相同。 它还用于查找电话验证会话。
verificationCode 是的 要验证的用户提供的验证码

输出声明

Microsoft Entra 多重身份验证协议提供程序不返回任何输出声明,因此无需指定输出声明。

元数据

Metadata 元素包含以下属性。

特征 必选 DESCRIPTION
Operation 是的 必须是 Verify
UI 元素

以下元数据可用于配置代码验证失败时显示的错误消息。 应在 自断言 技术配置文件中配置元数据。 可以将错误消息本地化

特征 必选 DESCRIPTION
UserMessageIfMaxAllowedCodeRetryReached 如果用户尝试验证码的次数过多,则用户错误消息。
UserMessageIfServerError 如果服务器遇到内部错误,则用户错误消息。
UserMessageIfThrottled 如果请求受到限制,则用户错误消息。
UserMessageIfWrongCodeEntered 输入用于验证的代码出错时,用户错误消息。

示例:验证代码

以下示例演示用于验证代码的 Microsoft Entra ID 多重身份验证技术配置文件。

<TechnicalProfile Id="AzureMfa-VerifySms">
    <DisplayName>Verify Sms</DisplayName>
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    <Metadata>
        <Item Key="Operation">Verify</Item>
    </Metadata>
    <InputClaims>
        <InputClaim ClaimTypeReferenceId="phoneNumber" PartnerClaimType="phoneNumber" />
        <InputClaim ClaimTypeReferenceId="verificationCode" />
    </InputClaims>
</TechnicalProfile>

后续步骤