如果声明不起作用,请跳过自我声明的编排步骤

时间:2019-08-14 21:08:53

标签: azure-ad-b2c

这是关于自定义策略注册用户旅程的参考。 我有一个自我声明的编排步骤,该步骤会在组合的signupsignin编排步骤之前收集用户的电子邮件地址。 如果用户声称已经存在,我想跳过此步骤

这在收集刷新令牌时是必需的。
这是编排步骤的编码方式。

<OrchestrationStep Order="1" Type="ClaimsExchange" ContentDefinitionReferenceId="api.selfasserted.email">
  <Preconditions>
     <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
          <Value>objectId</Value>
          <Action>SkipThisOrchestrationStep</Action>
    </Precondition>
  </Preconditions>
  <ClaimsExchanges>
    <ClaimsExchange Id="SelfAssertedEmailExchange" TechnicalProfileReferenceId="SelfAsserted-CollectEmailAddress-NoError" />
  </ClaimsExchanges>
</OrchestrationStep>

1 个答案:

答案 0 :(得分:1)

我相信这可能是由于 SelfAsserted-CollectEmailAddress-NoError 技术资料未“参与” SSO会话而发生的;因此,它会再次提示同一会话中的同一用户输入电子邮件地址。

要使 SelfAsserted-CollectEmailAddress-NoError 技术资料参与SSO会话,请确保该技术资料包含<UseTechnicalProfileForSessionManagement />元素,如下所示:

<TechnicalProfile Id="SelfAsserted-CollectEmailAddress-NoError">
  ...
  <ValidationTechnicalProfiles>
    <ValidationTechnicalProfile ReferenceId="AAD-UserReadUsingEmailAddress-NoError" />
  </ValidationTechnicalProfiles>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>