如何在用户旅程中添加多个CombinedSignInAndSignUp步骤?

时间:2019-04-08 11:40:36

标签: azure-ad-b2c

我想为用户介绍“即时密码迁移”用例。

我已经创建了一个自定义B2C属性,该标志告诉密码是否已经从旧版系统迁移。如果设置了此迁移标志,则我想对本地帐户执行常规的“ CombinedSignInAndSignUp”步骤。如果未设置该标志,我想调用REST API进行迁移。

我可以轻松地在单独的用户旅程中实现这两个步骤,但是当两个步骤在同一用户旅程中时,我无法使其起作用。如果我的用户旅程包含一个以上的CombinedSignInAndSignUp步骤,即使为这些步骤设置了前提条件,也会收到验证错误或执行过程中的错误。

如何将类型为CombinedSignInAndSignUp的两个步骤添加到一个用户旅程中? 还是有其他方法可以实现我想要的目标? 我尚未找到该用例的任何示例。

1 个答案:

答案 0 :(得分:1)

这可以使用 SelfAsserted-LocalAccountSignin-Email 技术资料中的前提条件来实现。

假设 AAD-UserReadUsingEmailAddress 技术配置文件输出了自定义属性,则此自定义属性可以确定 login-NonInteractive REST-ValidateCredential >会调用验证技术资料。

<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
  <ValidationTechnicalProfiles>
    <!-- Get the migration flag of the signing-in user. -->
    <ValidationTechnicalProfile ReferenceId="AAD-UserReadUsingEmailAddress" />
    <!-- If the migration flag is set, then authenticate against the local directory. -->
    <ValidationTechnicalProfile ReferenceId="login-NonInteractive">
      <Preconditions>
        <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
          <Value>extension_AccountMigrated</Value>
          <Action>SkipThisValidationTechnicalProfile</Action>
        </Precondition>
        <Precondition Type="ClaimEquals" ExecuteActionsIf="false">
          <Value>extension_AccountMigrated</Value>
          <Value>True</Value>
          <Action>SkipThisValidationTechnicalProfile</Action>
        </Precondition>
      </Preconditions>
    </ValidationTechnicalProfile>
    <!-- If the migration flag isn't set, then authenticate against the remote directory. -->
    <ValidationTechnicalProfile ReferenceId="REST-ValidateCredential">
      <Preconditions>
        <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
          <Value>extension_AccountMigrated</Value>
          <Action>SkipThisValidationTechnicalProfile</Action>
        </Precondition>
        <Precondition Type="ClaimEquals" ExecuteActionsIf="true">
          <Value>extension_AccountMigrated</Value>
          <Value>True</Value>
          <Action>SkipThisValidationTechnicalProfile</Action>
        </Precondition>
      </Preconditions>
    </ValidationTechnicalProfile>
  </ValidationTechnicalProfiles>
</TechnicalProfile>