Azure AD B2C 自定义策略 - MFA - 更新手机号码

时间:2021-06-10 07:27:24

标签: azure multi-factor-authentication azure-ad-b2c-custom-policy

我们最近使用 Azure AD B2C 自定义策略为我们的网站配置了 MFA。

该网站允许用户选择加入(或退出)MFA,以及更新他们的手机详细信息。

遗憾的是,当之前选择退出 MFA 的用户登录网站并选择加入 MFA 时,他们必须提供两次手机号码。一次验证他们的号码,一次进行身份验证。

这是一个尴尬的工作流程。理想情况下,我们希望用户只输入一次他们的号码。

当此更新发生时,我们已将问题缩小到运行 2 个连续 UserJourneys 的站点。第一个 UserJourney 验证号码(这是我想要的),但第二个 UserJourney 请求用户使用该号码进行身份验证。很遗憾,我们无法更改站点以仅运行第一个 UserJourney。

我已在第二个 UserJourney 中配置了有问题的 OrchestrationStep,以便在存在“isActiveMFASession”声明时应跳过它(见下文)。

    <OrchestrationStep Order="7" Type="ClaimsExchange">
      <Preconditions>
        <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
          <Value>extension_mfaFlag</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
        <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
          <Value>extension_mfaFlag</Value>
          <Value>No</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
        <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
          <Value>isActiveMFASession</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
      </Preconditions>
      <ClaimsExchanges>
        <ClaimsExchange Id="PhoneFactor-Verify" TechnicalProfileReferenceId="PhoneFactor-InputOrVerify" />
      </ClaimsExchanges>
    </OrchestrationStep>

但是,不会跳过此 OrchestrationStep,大概是因为“isActiveMFASession”声明不存在。

我正在尝试使用以下配置在第一个 UserJourney 中设置“isActiveMFASession”声明

    <TechnicalProfile Id="SM-Noop">
      <DisplayName>Noop Session Management Provider</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.NoopSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="isActiveMFASession" DefaultValue="true"/>
      </OutputClaims>
    </TechnicalProfile>

我是否缺少创建声明以便跳过第二个 UserJourney 中的 OrchestrationStep 的内容?

0 个答案:

没有答案
相关问题