子旅程

子旅程可用於整理及簡化使用者旅程圖中協調流程步驟的流程。 使用者旅程圖會指定明確的路徑,原則可透過這類路徑來讓信賴憑證者應用程式取得使用者所需的宣告。 使用者會透過這些路徑來擷取要呈現給信賴憑證者的宣告。 換句話說,使用者旅程圖會定義當 Azure AD B2C 識別體驗架構處理要求時,使用者要經歷的商務邏輯。 使用者旅程圖會表示為必須遵循才能獲得成功交易的協調流程序列。 協調流程步驟的 ClaimsExchange 元素會繫結至執行的單一技術設定檔

子旅程是協調流程步驟的群組,可在使用者旅程圖中的任一點叫用。 您可以使用子旅程建立可重複使用的步驟順序,或加入分支,更清楚地呈現商務邏輯。

使用者旅程圖分支

子旅程的行為與使用者旅程圖相似,兩者都是必須依序執行的協調流程順序,交易才會成功。 使用者旅程圖可自行叫用,並且需要 SendClaims 步驟來執行。 子旅程是使用者旅程圖的元件,無法獨立叫用,並且一律從使用者旅程圖中呼叫。

分支的重要元件是在使用者旅程圖中允許更佳的商務邏輯處理。 常見協調流程步驟會分為可分開叫用的個別片段。 子旅程可簡化旅程,將多個協調流程步驟結合在一起 (具有相同的先決條件)。 子旅程只會從使用者旅程圖呼叫,且不應呼叫其他子旅程。

子旅程類型有兩種:

  • 呼叫 - 將控制項傳回呼叫端。 子旅程會執行,然後將控制項傳回目前在使用者旅程圖中執行的協調流程步驟。
  • 傳輸 - 將控制項傳輸至子旅程 (無法復原的分支)。 子旅程必須有 SendClaims 步驟,才能將宣告傳回信賴憑證者應用程式。

範例案例

呼叫子旅程

呼叫子旅程適用於下列案例:

  • 年齡管制:對於年齡管制,使用者旅程圖之間有許多共用元件。 分支可讓您將一般元素編譯成可共用的元件。
  • 家長同意:分支可讓我們從未成年人執行的使用者旅程圖中存取宣告,並能夠在發現使用者需要同意之後,分支到家長同意使用者旅程圖,以方便設計家長同意。
  • 從註冊切換至登入:假設某個使用者已在目錄中,但可能忘記其實自己已建立過帳戶。 在這種情況下,與其告知使用者其輸入的認證已經存在,並強制使用者重新開始旅程,更理想的是原則能為該使用者從註冊流程切換為登入流程。

傳輸子旅程

傳輸子旅程適用於下列案例:

  • 顯示區塊頁面。
  • A/B 測試,方法是將要求路由至子旅程,以執行及發行權杖。

新增 SubJourneys 元素

下列是 Call 類型的 SubJourney 元素範例,會將控制項傳回使用者旅程圖。

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

下列是 Transfer 類型的元素範例 SubJourney,會將權杖傳回信賴憑證者應用程式。

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

叫用子旅程步驟

類型 InvokeSubJourney 的新協調流程步驟會用於執行子旅程。 下列範例顯示此協調流程步驟的所有執行元素。

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

單元

若要定義原則所支援的子旅程,請將 SubJourneys 元素新增至原則檔案的頂層元素下。

SubJourneys 元素包含下列元素:

元素 發生次數 Description
SubJourney 1:n 子旅程,可定義完整使用者流程所需的所有建構。

SubJourneys 元素包含下列屬性:

屬性 必要 描述
識別碼 Yes 使用者旅程圖可用於在原則中參考子旅程的子旅程識別碼。 Candidate 元素的 SubJourneyReferenceId 元素指向此屬性。
類型 Yes 可能的值:CallTransfer。 如需詳細資訊,請參閱使用者旅程圖分支

SubJourney 元素包含下列元素:

元素 發生次數 Description
OrchestrationSteps 1:n 必須遵循才能獲得成功交易的協調流程序列。 每個使用者旅程圖都由依序執行的已排序協調流程步驟清單所組成。 如果有任何步驟失敗,交易就會失敗。

OrchestrationSteps

如需協調流程步驟元素的完整清單,請參閱 UserJourneys

後續步驟

了解 UserJourneys