你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
重要
自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息。
Azure Active Directory B2C(Azure AD B2C)支持使用验证码或验证基于时间的一次性密码(TOTP)代码来验证电话号码。
协议
“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 。 |
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>
TOTP 模式
在此模式下,用户需要在拥有的设备上安装支持基于时间的一次性密码(TOTP)验证的任何验证器应用,例如 Microsoft Authenticator 应用。
在第一次注册或登录期间,用户扫描 QR 码、打开深层链接,或使用验证器应用手动输入代码。 若要验证 TOTP 代码,请使用 “开始验证 OTP ”,然后 验证 TOTP 验证技术配置文件。
对于后续登录,请使用 “获取可用设备” 方法检查用户是否已注册其设备。 如果可用设备数大于零,则表示用户之前已注册。 在这种情况下,用户需要键入在验证器应用中显示的 TOTP 代码。
技术配置文件:
以下屏幕截图显示了 TOTP 注册和验证流。 它首先检查可用设备的数量。 如果可用设备数为零,则用户将经历注册业务流程步骤。 否则,用户将经历验证业务流程步骤。
获取可用设备
获取可用的设备模式检查用户可用的设备数。 如果可用设备数为零,则表示用户尚未注册。
输入声明
InputClaims 元素包含要发送到 Microsoft Entra 多重身份验证的声明列表。 还可以将声明的名称映射到 MFA 技术配置文件中定义的名称。
ClaimReferenceId | 必选 | DESCRIPTION |
---|---|---|
userPrincipalName |
是的 | 用户主体名称。 |
输出声明
输出声明元素包含从 Microsoft entra 多重身份验证返回的声明列表。 还可以将声明的名称映射到 MFA 技术配置文件中定义的名称。
ClaimReferenceId | 必选 | DESCRIPTION |
---|---|---|
numberOfAvailableDevices |
是的 | 用户可用的设备数。 |
元数据
Metadata 元素包含以下属性。
特征 | 必选 | DESCRIPTION |
---|---|---|
Operation |
是的 | 必须是 GetAvailableDevices 。 |
示例:获取可用设备
以下示例演示用于获取可用设备数的 Microsoft Entra ID 多重身份验证技术配置文件。
<TechnicalProfile Id="AzureMfa-GetAvailableDevices">
<DisplayName>Get Available Devices</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">GetAvailableDevices</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="userPrincipalName" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="numberOfAvailableDevices" />
</OutputClaims>
</TechnicalProfile>
开始验证 TOTP
开始验证 TOTP 将启动验证过程。 此验证技术配置文件是从提供和验证 TOTP 代码的自断言技术配置文件调用的。 必须调用 验证 TOTP 验证技术配置文件来验证此验证技术配置文件。
输入声明
InputClaims 元素包含要发送到 Microsoft Entra 多重身份验证的声明列表。 还可以将声明的名称映射到 MFA 技术配置文件中定义的名称。
ClaimReferenceId | 必选 | DESCRIPTION |
---|---|---|
userPrincipalName |
是的 | 用户主体名称。 |
objectId |
是的 | 用户对象 ID。 |
secretKey |
是的 | 用户的密钥。 此密钥存储在 Azure AD B2C 目录中的用户配置文件中,并与验证器应用共享。 验证器应用使用机密生成 TOTP 代码。 此技术配置文件使用机密来验证 TOTP 代码。 |
输出声明
Microsoft Entra 多重身份验证协议提供程序不返回任何输出声明,因此无需指定输出声明。
元数据
Metadata 元素包含以下属性。
特征 | 必选 | DESCRIPTION |
---|---|---|
Operation |
是的 | 必须是 BeginVerifyOTP 。 |
示例:开始验证 TOTP
以下示例演示用于开始 TOTP 验证过程的Microsoft Entra ID 多重身份验证技术配置文件。
<TechnicalProfile Id="AzureMfa-BeginVerifyOTP">
<DisplayName>Begin verify TOTP"</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">BeginVerifyOTP</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="secretKey" />
<InputClaim ClaimTypeReferenceId="objectId" />
<InputClaim ClaimTypeReferenceId="userPrincipalName" />
</InputClaims>
</TechnicalProfile>
验证 TOTP
验证 TOTP 方法验证 TOTP 代码。 此验证技术配置文件是从提供和验证 TOTP 代码的自断言技术配置文件调用的。 此验证技术配置文件必须在调用 “开始”验证 TOTP 验证技术配置文件之前。
输入声明
InputClaims 元素包含要发送到 Microsoft Entra 多重身份验证的声明列表。 还可以将声明的名称映射到 MFA 技术配置文件中定义的名称。
ClaimReferenceId | 必选 | DESCRIPTION |
---|---|---|
otpCode |
是的 | 用户提供的 TOTP 代码。 |
输出声明
Microsoft Entra 多重身份验证协议提供程序不返回任何输出声明,因此无需指定输出声明。
元数据
Metadata 元素包含以下属性。
特征 | 必选 | DESCRIPTION |
---|---|---|
Operation |
是的 | 必须是 VerifyOTP 。 |
示例:验证 TOTP
以下示例演示用于验证 TOTP 代码的 Microsoft Entra ID 多重身份验证技术配置文件。
<TechnicalProfile Id="AzureMfa-VerifyOTP">
<DisplayName>Verify OTP</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureMfaProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">VerifyOTP</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="otpCode" />
</InputClaims>
</TechnicalProfile>