我们在 Azure AD B2C 中有一个登录自定义策略设置,客户使用它来登录我们的应用程序。在标准 B2C 策略中,用户会被记住,并提供一个菜单,其中包含从特定机器登录的电子邮件地址列表(以及忘记它们的选项),如下面的屏幕截图所示:
我们的自定义登录策略有效,但用户每次都必须从他们的机器上重新输入他们的电子邮件地址。我们如何使用自定义策略实现相同的行为?
以下是技术简介:
<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
<DisplayName>Local Account Signin</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="SignUpTarget">SignUpWithLogonEmailExchange</Item>
<Item Key="setting.operatingMode">Email</Item>
<Item Key="setting.showSignupLink">False</Item>
<Item Key="setting.showContinueButton">True</Item>
<Item Key="setting.showCancelButton">True</Item>
<Item Key="EnforceEmailVerification">False</Item>
<Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
</Metadata>
<IncludeInSso>false</IncludeInSso>
<InputClaims>
<InputClaim ClaimTypeReferenceId="signInName" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="signInName" Required="true" />
<OutputClaim ClaimTypeReferenceId="password" Required="true" />
<OutputClaim ClaimTypeReferenceId="objectId" />
<OutputClaim ClaimTypeReferenceId="authenticationSource" />
</OutputClaims>
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="login-NonInteractive" />
</ValidationTechnicalProfiles>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>
编辑:
在试用了当前在 Azure AD B2C 中处于预览阶段的新“用户流程”之后,似乎提供了两种不同版本的登录用户旅程:
- 登录:不允许 UI 自定义(除了“公司品牌”功能),并且与我在上面的屏幕截图中报告的行为一致。
- 登录 v2:允许使用自定义 cshtml 页面进行 UI 自定义,并且与我在使用自定义策略时观察到的行为一致。目前,从现有的内置策略中看不到或无法访问这种类型的登录用户流程。
因此, Sign in v2似乎是在自定义策略中用于登录用户旅程的版本,因为它是允许 UI 自定义的版本。