重要
自 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 多重身份验证服务生成代码并将其发送到电话号码,然后验证代码。
- 通过短信验证电话号码。
技术配置文件提供通过短信 发送验证码 的方法,并 验证代码。 以下屏幕截图显示了电话验证程序流。
若要验证电话,第一步将生成代码并将其发送到电话号码。 可以为此步骤配置以下选项。
InputClaims 元素包含要发送到 Microsoft Entra 多重身份验证的声明列表。 还可以将声明的名称映射到 MFA 技术配置文件中定义的名称。
ClaimReferenceId | 必选 | DESCRIPTION |
---|---|---|
userPrincipalName |
是的 | 拥有电话号码的用户的标识符。 |
phoneNumber |
是的 | 要向其发送短信代码的电话号码。 |
companyName |
否 | SMS 中的公司名称。 如果未提供,则使用应用程序的名称。 |
locale |
否 | 短信的区域设置。 如果未提供,则使用用户的浏览器区域设置。 |
Microsoft Entra 多重身份验证协议提供程序不返回任何输出声明,因此无需指定输出声明。
Metadata 元素包含以下属性。
特征 | 必选 | DESCRIPTION |
---|---|---|
Operation |
是的 | 必须是 OneWaySMS 。 |
以下元数据可用于配置发送短信失败时显示的错误消息。 应在 自断言 技术配置文件中配置元数据。 可以将错误消息本地化。
特征 | 必选 | 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 。 |
以下元数据可用于配置代码验证失败时显示的错误消息。 应在 自断言 技术配置文件中配置元数据。 可以将错误消息本地化。
特征 | 必选 | 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>