Пользовательская политика Azure B2C - шаг оркестровки - PullRequest
0 голосов
/ 28 марта 2019

Я хотел знать, как мы можем написать политику, чтобы показать пользователю кнопку «Зарегистрироваться», которая может направить его на другой экран, чтобы зарегистрироваться, используя адрес электронной почты. Я написал собственную политику, которая работает с пользователем с учетной записью в Active Directory. Для этого первый шаг оркестрации позволяет пользователю войти в систему с помощью электронной почты. Шаг возвращается с сообщением, если пользователь не найден.

После этого я пытаюсь написать второй шаг оркестрации, который должен быть выполнен, только если пользователь не был найден на предыдущем шаге оркестровки.

<OrchestrationStep Order="2" Type="ClaimsExchange">
          <Preconditions>
            <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
              <Value>objectId</Value>
              <Action>SkipThisOrchestrationStep</Action>
            </Precondition>
          </Preconditions>
          <ClaimsExchanges>
                <ClaimsExchange Id="SignUpWithLogonEmailExchange" TechnicalProfileReferenceId="LocalAccountSignUpWithLogonEmail" />
          </ClaimsExchanges>
        </OrchestrationStep>

Шаг не выполняется даже после получения сообщения о том, что пользователь не найден. Как я могу заставить это работать. Я бы предпочел, чтобы пользователю показывали кнопку регистрации на том же экране.

Есть идеи?

Обновление : У меня такое чувство, что альтернативный поток невозможности найти пользователя должен обрабатываться в TechnicalProfile, а не на этапе оркестровки.

1 Ответ

0 голосов
/ 01 апреля 2019

Вы пытаетесь показать экран входа, на котором есть ссылка «Регистрация», позволяющая пользователю зарегистрироваться с помощью SerlfAssertedAttributeProvider? Если это так, то как это делается в начальном пакете LocalAccounts (скопировано из TrustFrameworkBase.xml):

    <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
      <ClaimsProviderSelections>
        <ClaimsProviderSelection ValidationClaimsExchangeId="LocalAccountSigninEmailExchange" />
      </ClaimsProviderSelections>
      <ClaimsExchanges>
        <ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
      </ClaimsExchanges>
    </OrchestrationStep>

    <OrchestrationStep Order="2" Type="ClaimsExchange">
      <Preconditions>
        <Precondition Type="ClaimsExist" ExecuteActionsIf="true">
          <Value>objectId</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
      </Preconditions>
      <ClaimsExchanges>
        <ClaimsExchange Id="SignUpWithLogonEmailExchange" TechnicalProfileReferenceId="LocalAccountSignUpWithLogonEmail" />
      </ClaimsExchanges>
    </OrchestrationStep>
...