在 Azure Active Directory B2C 自定义策略中定义电话因素技术配置文件
注意
在 Azure Active Directory B2C 中,自定义策略主要用于解决复杂的情况。 在大多数情况下,建议你使用内置用户流。 如果尚未这样做,请从 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 元素必须包含以下声明。 还可将声明名称映射到电话因素技术配置文件中定义的名称。
数据类型 | 必选 | 说明 |
---|---|---|
字符串 | 是 | 用户的唯一标识符。 声明名称或 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
Attribute | 必须 | 说明 |
---|---|---|
ContentDefinitionReferenceId | 是 | 与此技术配置文件关联的内容定义的标识符。 |
ManualPhoneNumberEntryAllowed | 否 | 指定是否允许用户手动输入电话号码。 可能的值:true 或 false (默认值)。 |
setting.authenticationMode | 否 | 用于验证电话号码的方法。 可能的值:sms 、phone 或 mixed (默认值)。 |
setting.autodial | 否 | 指定技术配置文件是否应自动拨号或自动发送短信。 可能的值:true 或 false (默认值)。 自动拨号要求将 setting.authenticationMode 元数据设置为 sms 或 phone 。 输入声明集合必须包含单个电话号码。 |
setting.autosubmit | 否 | 指定技术配置文件是否应自动提交一次性密码输入表单。 可能的值为 true (默认)或 false 。 当自动提交关闭时,用户需要选择按钮来推进历程。 |
UI 元素
可以本地化电话因素身份验证页的用户界面元素。
后续步骤
- 查看使用 MFA 的社交和本地帐户初学者包。