备注
在 Azure Active Directory B2C 中,自定义策略 主要用于解决复杂场景。 对于大多数场景,我们建议您使用内置的用户流。 如果未这样做,请通过 Active Directory B2C 中的自定义策略入门来了解自定义策略初学者包。
重要
自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息。
Azure Active Directory B2C(Azure AD B2C)支持验证自助密码重置的电子邮件地址(SSPR)。 使用 Microsoft Entra ID SSPR 技术配置文件生成代码并将其发送到电子邮件地址,然后验证代码。 Microsoft Entra ID SSPR 技术配置文件也可能返回错误消息。 验证技术配置文件在用户旅程继续之前验证用户提供的数据。 使用验证技术配置文件,在自断言页面上显示一条错误消息。
此技术配置文件:
- 不提供与用户交互的界面。 而是从 自断言 技术配置文件或 显示控件 作为 验证技术配置文件调用用户界面。
- 使用 Microsoft Entra SSPR 服务生成代码并将其发送到电子邮件地址,然后验证代码。
- 通过验证码验证电子邮件地址。
“Protocol”元素的“Name”属性必须设置为 。 处理程序属性必须包含 Azure AD B2C 使用的协议处理程序程序集的完全限定名称:
Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
以下示例显示了一个Microsoft Entra ID SSPR 技术配置文件:
<TechnicalProfile Id="AadSspr-SendCode">
<DisplayName>Send Code</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
...
此技术配置文件的第一种模式是生成代码并将其发送。 可以为该模式配置以下选项。
InputClaims 元素包含要发送到 Microsoft Entra SSPR 的声明列表。 还可以将声明的名称映射到 SSPR 技术配置文件中定义的名称。
ClaimReferenceId | 必选 | DESCRIPTION |
---|---|---|
电子邮件地址 | 是的 | 拥有电子邮件地址的用户的标识符。 输入 PartnerClaimType 声明的属性必须设置为 emailAddress 。 |
InputClaimsTransformations 元素可能包含 InputClaimsTransformation 元素的集合,这些元素用于修改输入声明或生成新元素,然后再发送到 Microsoft Entra SSPR 服务。
Microsoft Entra SSPR 协议提供程序不返回任何 OutputClaims,因此无需指定输出声明。 但是,只要设置了属性,就可以包含Microsoft Entra SSPR 协议提供程序未返回的 DefaultValue
声明。
OutputClaimsTransformations 元素可能包含用于修改输出声明或生成新输出声明的 OutputClaimsTransformation 元素集合。
特征 | 必选 | DESCRIPTION |
---|---|---|
操作 | 是的 | 必须是 SendCode。 |
以下元数据可用于配置发送短信失败时显示的错误消息。 应在 自断言 技术配置文件中配置元数据。 可以将错误消息本地化。
特征 | 必选 | DESCRIPTION |
---|---|---|
UserMessageIfInternalError | 否 | 如果服务器遇到内部错误,则用户错误消息。 |
UserMessageIfThrottled | 否 | 如果请求受到限制,则用户错误消息。 |
以下示例演示用于通过电子邮件发送代码的 Microsoft Entra ID SSPR 技术配置文件。
<TechnicalProfile Id="AadSspr-SendCode">
<DisplayName>Send Code</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">SendCode</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" PartnerClaimType="emailAddress"/>
</InputClaims>
</TechnicalProfile>
此技术配置文件的第二种模式是验证代码。 可以为该模式配置以下选项。
InputClaims 元素包含要发送到 Microsoft Entra SSPR 的声明列表。 还可以将声明的名称映射到 SSPR 技术配置文件中定义的名称。
ClaimReferenceId | 必选 | DESCRIPTION |
---|---|---|
电子邮件地址 | 是的 | 与以前用于发送代码的电子邮件地址相同。 它还用于查找电子邮件验证会话。 输入 PartnerClaimType 声明的属性必须设置为 emailAddress 。 |
verificationCode | 是的 | 要验证的用户提供的验证码。 输入 PartnerClaimType 声明的属性必须设置为 verificationCode 。 |
InputClaimsTransformations 元素可能包含 InputClaimsTransformation 元素的集合,这些元素用于在调用 Microsoft Entra SSPR 服务之前修改输入声明或生成新声明。
Microsoft Entra SSPR 协议提供程序不返回任何 OutputClaims,因此无需指定输出声明。 但是,只要设置了属性,就可以包含Microsoft Entra SSPR 协议提供程序未返回的 DefaultValue
声明。
OutputClaimsTransformations 元素可能包含用于修改输出声明或生成新输出声明的 OutputClaimsTransformation 元素集合。
特征 | 必选 | DESCRIPTION |
---|---|---|
操作 | 是的 | 必须是 VerifyCode |
以下元数据可用于配置代码验证失败时显示的错误消息。 应在 自断言 技术配置文件中配置元数据。 可以将错误消息本地化。
特征 | 必选 | DESCRIPTION |
---|---|---|
UserMessageIfChallengeExpired | 如果代码验证会话已过期,则向用户显示的消息。 代码已过期,或者从未为给定标识符生成代码。 | |
UserMessageIfInternalError | 如果服务器遇到内部错误,则用户错误消息。 | |
UserMessageIfThrottled | 如果请求受到限制,则用户错误消息。 | |
UserMessageIfVerificationFailedNoRetry | 如果用户提供了无效代码,则向用户显示的消息,并且不允许用户提供正确的代码。 | |
UserMessageIfVerificationFailedRetryAllowed | 如果用户提供了无效代码,并且允许用户提供正确的代码,则向用户显示的消息。 |
以下示例演示用于验证代码的 Microsoft Entra ID SSPR 技术配置文件。
<TechnicalProfile Id="AadSspr-VerifyCode">
<DisplayName>Verify Code</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AadSsprProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">VerifyCode</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="verificationCode" PartnerClaimType="verificationCode" />
<InputClaim ClaimTypeReferenceId="email" PartnerClaimType="emailAddress"/>
</InputClaims>
</TechnicalProfile>