Udostępnij za pośrednictwem


Podróże podrzędne

Podrzędne podróże mogą służyć do organizowania i upraszczania przepływu kroków aranżacji w ramach podróży użytkownika. Podróże użytkownika określają jawne ścieżki, za pośrednictwem których zasady umożliwiają aplikacji jednostki zależnej uzyskanie żądanych oświadczeń dla użytkownika. Użytkownik jest prowadzony przez te ścieżki w celu pobrania oświadczeń, które mają być prezentowane jednostce zależnej. Innymi słowy, podróże użytkowników definiują logikę biznesową tego, co użytkownik końcowy przechodzi, gdy Azure AD B2C Identity Experience Framework przetwarza żądanie. Podróż użytkownika jest reprezentowana jako sekwencja aranżacji, którą należy wykonać w celu pomyślnej transakcji. Element ClaimsExchange kroku aranżacji jest powiązany z pojedynczym profilem technicznym , który jest wykonywany.

Podrzędna podróż to grupowanie kroków aranżacji, które można wywołać w dowolnym momencie podróży użytkownika. Możesz użyć podrzędnych podróży, aby utworzyć sekwencje kroków wielokrotnego użytku lub zaimplementować rozgałęzianie, aby lepiej reprezentować logikę biznesową.

Rozgałęzianie podróży użytkownika

Podróże podrzędne zachowują się jak podróże użytkowników, ponieważ obie są reprezentowane jako sekwencja aranżacji, która musi być obserwowana w celu pomyślnej transakcji. Podróże użytkowników mogą być wywoływane samodzielnie i wymagają wykonania kroku SendClaims. Podrzędne podróże to składniki podróży użytkownika i nie mogą być wywoływane niezależnie i są zawsze wywoływane z podróży użytkownika.

Kluczowym składnikiem rozgałęziania jest umożliwienie lepszego przetwarzania logiki biznesowej w podróży użytkownika. Typowe kroki orkiestracji są pogrupowane w poszczególne elementy, które mają być wywoływane oddzielnie. Podróż podrzędna może uprościć podróż, w której wiele kroków aranżacji jest połączonych ze sobą (z tymi samymi warunkami wstępnymi). Podróż podrzędna jest wywoływana tylko z podróży użytkownika, nie powinna wywoływać innej podróży podrzędnej.

Istnieją dwa typy podróży podrzędnych:

  • Wywołanie — zwraca kontrolkę do elementu wywołującego. Podrzędna podróż jest wykonywana, a następnie kontrolka jest zwracana do kroku aranżacji, który jest obecnie wykonywany w ramach podróży użytkownika.
  • Transfer — przenosi kontrolkę do podróży podrzędnej (nieodwracalne rozgałęzianie). Podróż podrzędna musi mieć krok SendClaims, aby zwrócić oświadczenia z powrotem do aplikacji jednostki uzależnionej.

Przykładowe scenariusze

Podróż podrzędna połączenia

Podróż podrzędna wywołania jest przydatna w następujących scenariuszach:

  • Age Gating: w przypadku starzenia się istnieje wiele składników udostępnionych w podróżach użytkownika. Rozgałęzianie umożliwia skompilowanie typowych elementów do składników z możliwością udostępniania.
  • Zgoda rodzicielska: Rozgałęzianie pozwala na wygodę w projekcie zgody rodzicielskiej, umożliwiając nam dostęp do roszczeń od użytkownika podróży drobnej, a także możliwość rozgałęziania się w drodze użytkownika zgody rodzicielskiej po znalezieniu użytkownika wymaga zgody.
  • Zarejestruj się, aby się zalogować: rozważ scenariusz, w którym użytkownik już istnieje w katalogu, ale mógł nie pamiętać, że w rzeczywistości utworzył konto. Może być pożądane w takim przypadku, że zamiast mówić użytkownikowi, że wprowadzone poświadczenia już istnieją i zmuszając użytkownika do ponownego uruchomienia podróży, że zasady mogą przełączyć się z przepływu rejestracji do przepływu logowania dla tego użytkownika.

Przenoszenie podrzędnej podróży

Podróż podrzędna transferu jest przydatna w następujących scenariuszach:

  • Wyświetlanie strony bloku.
  • Testowanie A/B przez kierowanie żądania do podrzędnej podróży w celu wykonania i wystawienia tokenu.

Dodawanie elementu SubJourneys

Poniżej przedstawiono przykład SubJourney elementu typu Call, który zwraca kontrolę z powrotem do podróży użytkownika.

<SubJourneys>
  <SubJourney Id="ConditionalAccess_Evaluation" Type="Call">
    <OrchestrationSteps>
      <OrchestrationStep Order="1" Type="ClaimsExchange">
       <ClaimsExchanges>
        <ClaimsExchange Id="ConditionalAccessEvaluation" TechnicalProfileReferenceId="ConditionalAccessEvaluation" />
       </ClaimsExchanges>
      </OrchestrationStep>
      <OrchestrationStep Order="2" Type="ClaimsExchange">
        <Preconditions>
          <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
            <Value>conditionalAccessClaimCollection</Value>
            <Action>SkipThisOrchestrationStep</Action>
          </Precondition>
        </Preconditions>
        <ClaimsExchanges>
          <ClaimsExchange Id="GenerateCAClaimFlags" TechnicalProfileReferenceId="GenerateCAClaimFlags" />
        </ClaimsExchanges>
      </OrchestrationStep>
    </OrchestrationSteps>
  </SubJourney>
</SubJourneys>

Poniżej przedstawiono przykład SubJourney elementu typu Transfer, który zwraca token z powrotem do aplikacji jednostki uzależnionej.

<SubJourneys>
  <SubJourney Id="B" Type="Transfer">
    <OrchestrationSteps>
      ...
      <OrchestrationStep Order="5" Type="SendClaims">
    </OrchestrationSteps>
  </SubJourney>
</SubJourneys>

Wywoływanie kroku podrzędnej podróży

Nowy krok aranżacji typu InvokeSubJourney służy do wykonywania podkomisji. Poniżej przedstawiono przykład przedstawiający wszystkie elementy wykonywania tego kroku aranżacji.

<OrchestrationStep Order="5" Type="InvokeSubJourney">
  <JourneyList>
    <Candidate SubJourneyReferenceId="ConditionalAccess_Evaluation" />
  </JourneyList>
</OrchestrationStep>

Składniki

Aby zdefiniować podjeżdżanie obsługiwane przez zasady, dodaj element SubJourneys w obszarze elementu najwyższego poziomu pliku zasad.

Element SubJourneys zawiera następujący element:

Element Wystąpień Opis
SubJourney 1:n Podsieć, która definiuje wszystkie konstrukcje niezbędne do pełnego przepływu użytkownika.

Element SubJourneys zawiera następujące atrybuty:

Atrybut Wymagane Opis
Id Tak Identyfikator podrzędnej podróży, który może być używany przez użytkownika w celu odwołowania się do podrzędnej podróży w zasadach. Element SubJourneyReferenceId elementu Candidate wskazuje ten atrybut.
Typ Tak Możliwe wartości: Call, lub Transfer. Aby uzyskać więcej informacji, zobacz Rozgałęzianie podróży użytkownika

Element SubJourney zawiera następujący element:

Element Wystąpień Opis
OrchestrationSteps 1:n Sekwencja aranżacji, którą należy wykonać w celu pomyślnej transakcji. Każda podróż użytkownika składa się z uporządkowanej listy kroków aranżacji wykonywanych w sekwencji. Jeśli jakikolwiek krok zakończy się niepowodzeniem, transakcja zakończy się niepowodzeniem.

OrchestrationSteps

Aby uzyskać pełną listę elementów kroków aranżacji, zobacz UserJourneys.

Następne kroki

Dowiedz się więcej o userJourneys