在 Azure Active Directory B2C 自定义策略中定义电话因素技术配置文件

备注

在 Azure Active Directory B2C 中,自定义策略主要用于解决复杂的情况。 在大多数情况下,建议你使用内置用户流

Azure Active Directory B2C (Azure AD B2C) 支持注册和验证电话号码。 此技术配置文件:

  • 提供一个用户界面,用于与用户进行交互以验证或注册电话号码。
  • 支持使用电话呼叫和短信来验证电话号码。
  • 支持多个电话号码。 用户可以选择一个要验证的电话号码。
  • 返回一个声明,指示用户是否提供了新电话号码。 可以使用此声明来确定是否要将电话号码保存在 Azure AD B2C 用户配置文件中。
  • 使用内容定义来控制外观。

协议

“Protocol”元素的“Name”属性必须设置为 Proprietary。 handler 属性必须包含 Azure AD B2C 对电话因素使用的协议处理程序程序集的完全限定名称:Web.TPEngine.Providers.PhoneFactorProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

以下示例演示了用于注册和验证的电话因素技术配置文件:

<TechnicalProfile Id="PhoneFactor-InputOrVerify">
  <DisplayName>PhoneFactor</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.PhoneFactorProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</TechnicalProfile>

输入声明转换

InputClaimsTransformations 元素可以包含一组输入声明转换,这些转换用于修改输入声明或生成新的输入声明。 以下输入声明转换将生成一个 UserId 声明,稍后在输入声明集合中将使用该声明。

<InputClaimsTransformations>
  <InputClaimsTransformation ReferenceId="CreateUserIdForMFA" />
</InputClaimsTransformations>

输入声明

InputClaims 元素必须包含以下声明。 还可将声明名称映射到电话因素技术配置文件中定义的名称。

数据类型 必须 说明
string 用户的唯一标识符。 声明名称或 PartnerClaimType 必须设置为 UserId。 此声明不应包含个人身份信息。
string 声明类型的列表。 每个声明都包含一个电话号码。 如果有任何输入声明不包含电话号码,则会要求用户注册并验证新的电话号码。 已验证的电话号码将作为输出声明返回。 如果其中一个输入声明包含电话号码,则要求用户对其进行验证。 如果有多个输入声明包含电话号码,则会要求用户选择并验证其中一个电话号码。

以下示例演示如何使用多个电话号码。 有关详细信息,请参阅示例策略

<InputClaims>
  <InputClaim ClaimTypeReferenceId="userIdForMFA" PartnerClaimType="UserId" />
  <InputClaim ClaimTypeReferenceId="strongAuthenticationPhoneNumber" />
  <InputClaim ClaimTypeReferenceId="secondaryStrongAuthenticationPhoneNumber" />
</InputClaims>

输出声明

OutputClaims 元素包含电话因素技术配置文件返回的声明列表。

数据类型 必须 说明
boolean 指明用户是否已输入新的电话号码。 声明名称或 PartnerClaimType 必须设置为 newPhoneNumberEntered
string 已验证的电话号码。 声明名称或 PartnerClaimType 必须设置为 Verified.OfficePhone

OutputClaimsTransformations 元素可以包含用于修改输出声明或生成新输出声明的 OutputClaimsTransformation 元素集合。

加密密钥

不使用“CryptographicKeys”元素。

Metadata

属性 必须 说明
ContentDefinitionReferenceId 与此技术配置文件关联的内容定义的标识符。
ManualPhoneNumberEntryAllowed 指定是否允许用户手动输入电话号码。 可能的值:truefalse(默认值)。
setting.authenticationMode 用于验证电话号码的方法。 可能的值:smsphonemixed(默认值)。
setting.autodial 指定技术配置文件是否应自动拨号或自动发送短信。 可能的值:truefalse(默认值)。 自动拨号要求将 setting.authenticationMode 元数据设置为 smsphone。 输入声明集合必须包含单个电话号码。

UI 元素

可以本地化电话因素身份验证页的用户界面元素。

后续步骤