Underresor

Underresor kan användas för att organisera och förenkla flödet av orkestreringssteg inom en användarresa. Användarresor anger explicita sökvägar genom vilka en princip tillåter att ett anspråksbaserat program hämtar önskade anspråk för en användare. Via dessa sökvägar kan användaren hämta de anspråk som ska presenteras för den förlitande parten. Med andra ord definierar användarresor affärslogik för vad en slutanvändare går igenom när Azure AD B2C Identity Experience Framework bearbetar begäran. En användarresa representeras som en orkestreringssekvens som måste följas upp för en lyckad transaktion. Elementet ClaimsExchange i ett orkestreringssteg är kopplat till en enda teknisk profil som körs.

En underresa är en gruppering av orkestreringssteg som kan anropas när som helst inom en användarresa. Du kan använda underresor för att skapa återanvändbara stegsekvenser eller implementera förgrening för att bättre representera affärslogik.

Förgrening av användarresa

Underresor fungerar som användarresor, eftersom båda representeras som en orkestreringssekvens som måste följas upp för en lyckad transaktion. Användarresor kan anropas på egen hand och kräver ett SendClaims-steg för att köras. Underresor är komponenter i användarresor och kan inte anropas oberoende av varandra och anropas alltid från en användarresa.

Den viktigaste komponenten i förgrening är att möjliggöra bättre bearbetning av affärslogik i en användarresa. Vanliga orkestreringssteg grupperas i enskilda delar som ska anropas separat. En underresa kan förenkla en resa där flera orkestreringssteg kopplas samman (med samma förutsättningar). En underresa anropas endast från en användarresa, den bör inte anropa en annan underresa.

Det finns två typer av underresor:

  • Anrop – returnerar kontrollen till anroparen. Underresan körs och sedan returneras kontrollen till orkestreringssteget som för närvarande körs inom användarresan.
  • Överföring – Överför kontrollen till underresan (oåterkallelig förgrening). Underresan måste ha ett SendClaims-steg för att returnera anspråken tillbaka till det förlitande partprogrammet.

Exempelscenarier

Samtalsunderresa

En underresa för samtal är användbar i följande scenarier:

  • Åldersgating: För åldersgating finns det många delade komponenter bland användarresorna. Med branchning kan du kompilera de gemensamma elementen till delbara komponenter.
  • Föräldramedgivande: Förgrening möjliggör bekvämlighet i utformningen av föräldramedgivande genom att tillåta oss att komma åt anspråk från den användarresa som den minderårige utförde, tillsammans med att kunna förgrena sig till en användarresa för föräldramedgivande efter att ha upptäckt att användaren kräver medgivande.
  • Registrera dig för att logga in: Tänk dig ett scenario där en användare redan finns i katalogen men kanske har glömt att de faktiskt hade skapat ett konto. Det kan vara önskvärt i sådana fall att i stället för att tala om för användaren att de autentiseringsuppgifter som de har angett redan finns och tvinga användaren att starta om resan att principen kan utföra en övergång från ett registreringsflöde till ett inloggningsflöde för den användaren.

Överföra underresa

En överföringsunderresa är användbar i följande scenarier:

  • Visar en blocksida.
  • A/B-testning genom att dirigera begäran till en underresa för att köra och utfärda en token.

Lägga till ett SubJourneys-element

Följande är ett exempel på ett SubJourney element av typen Call, som returnerar kontrollen tillbaka till användarresan.

<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>

Följande är ett exempel på ett SubJourney element av typen Transfer, som returnerar en token tillbaka till det förlitande partprogrammet.

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

Anropa ett delsteg

Ett nytt orkestreringssteg av typen InvokeSubJourney används för att köra en underresa. Följande är ett exempel som visar alla körningselement i det här orkestreringssteget.

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

Komponenter

Om du vill definiera de underresor som stöds av principen lägger du till ett SubJourneys-element under elementet på den översta nivån i principfilen.

Elementet SubJourneys innehåller följande element:

Element Händelser Description
SubJourney 1:n En underresa som definierar alla konstruktioner som krävs för ett fullständigt användarflöde.

Elementet SubJourneys innehåller följande attribut:

Attribut Krävs Beskrivning
Id Yes ID:t för underresan som användaren kan använda för att referera till underresan i principen. Elementet SubJourneyReferenceId i candidate-elementet pekar på det här attributet.
Typ Yes Möjliga värden: Call, eller Transfer. Mer information finns i Förgrening av användarresa

SubJourney-elementet innehåller följande element:

Element Händelser Description
OrchestrationSteps 1:n En orkestreringssekvens som måste följas upp för en lyckad transaktion. Varje användarresa består av en ordnad lista över orkestreringssteg som körs i följd. Om något steg misslyckas misslyckas transaktionen.

OrchestrationSteps

En fullständig lista över stegelement för orkestrering finns i UserJourneys.

Nästa steg

Läs mer om UserJourneys