الرحلات الفرعية

يمكن استخدام الرحلات الفرعية من أجل تنظيم وتبسيط تدفق خطوات التزامن داخل الرحلة. تُحددالرحلاتمسارات صريحة تسمح من خلالها النهج لتطبيق جهة اعتماد بالحصول على المطالبات المطلوبة للمستخدم. يؤخذ المستخدم من خلال هذه المسارات لاسترداد المطالبات التي سيتم تقديمها إلى جهة الاعتماد. وبمعنى آخر، تقوم الرحلات بتحديد منطق تسلسل العمل لما يمر به المستخدم النهائي أثناء قيام إطار عمل تجربة الهوية Microsoft Azure Active Directory B2C بمعالجة الطلب. يتم تمثيل الرحلة كتسلسل تزامن يجب اتباعه من خلال معاملة ناجحة. يرتبط عنصرClaimsExchangeبخطوة التزامنبملف تعريف التقني المفردالذي يتم تنفيذه.

الرحلة الفرعية هي تجميع خطوات التزامن التي يمكن استدعائها في أي نقطة داخل الرحلة. يمكنك استخدام الرحلات الفرعية لإنشاء تسلسلات خطوة قابلة لإعادة الاستخدام أو تنفيذ الإصدار الفرعي لتمثيل منطق العمل بشكل أفضل.

الإصدار الفرعي للرحلة

تتصرف الرحلات الفرعية مثلالرحلات، حيث يتم تمثيل كليهما لتسلسل متزامن يجب تتبعه من خلال معاملة ناجحة. من الممكن استدعاء رحلات المستخدم من تلقاء نفسها وتتطلب خطوة SendClaims من أجل تنفيذها. الرحلات الفرعية هي مكونات لرحلات المستخدم وليس ممكنًا استدعاؤها بشكل مستقل، ويتم استدعاؤها دائما من رحلة المستخدم.

مفتاح العنصر للإصدار الفرعي هو السماح بمعالجة منطق تسلسل العمل بشكل أفضل في الرحلة. تُجمع خطوات التزامن الشائعة إلى قطع فردية ليتم استدعاؤها بشكل منفصل. من الممكن للرحلة الفرعية أن تقوم بتبسيط رحلة حيث تقترن خطوات التزامن المتعددة معًا (مع نفس الشروط المسبقة). تُستدعى الرحلة الفرعية فقط من الرحلة، لا ينبغي أن تستدعي رحلة فرعية أخرى.

يوجد نوعان من الرحلات الفرعية:

  • الاستدعاء- إعادة عنصر التحكم إلى المتصل. يتم تنفيذ الرحلة الفرعية، ثم يتم إرجاع عنصر التحكم إلى خطوة التنسيق التي يتم تنفيذها حاليًا في رحلة المستخدم.
  • النقل- نقل عنصر التحكم إلى الرحلة الفرعية (التفريع الذي لا رجعة فيه). يجب أن يكون للرحلة الفرعية خطوة SendClaims لإعادة المطالبات إلى تطبيق جهة الاعتماد.

السيناريوهات النموذجية

استدعاء الرحلة الفرعية

استدعاء الرحلة الفرعية مفيد في السيناريوهات التالية:

  • عمر التبويب: بالنسبة لعمر التبويب، يوجد العديد من المكونات المشتركة بين الرحلات. يسمح الإصدار الفرعي بتجميع العناصر المشتركة في مكونات قابلة للمشاركة.
  • قبول الأصل: يسمح الإصدار الفرعي بالراحة في تصميم قبول الأصل من خلال السماح بالوصول إلى المطالبات من الرحلة التي قام القاصر بتنفيذها، إلى جانب القدرة على التفرع إلى رحلة مستخدم قبول الأصل بعد العثور على المستخدم يتطلب موافقة.
  • التسجيل لتسجيل الدخول: قم بالتفكير في سيناريو حيث يوجد مستخدم بالفعل في الدليل ولكن ربما نسي أنه قام بإنشاء حساب بالفعل. قد يكون من المستحسن في مثل هذه الحالة بدلا من إخبار المستخدم أن بيانات الاعتماد التي قاموا بإدخالها موجودةً بالفعل وإجبار المستخدم على إعادة تشغيل الرحلة أن النهج قادر على تنفيذ التبديل من تدفق التسجيل إلى تدفق تسجيل الدخول لذلك المستخدم.

نقل الرحلة الفرعية

رحلة التحويل الفرعية مفيدة في السيناريوهات التالية:

  • إظهار صفحة عنصر حظر المستوى.
  • اختبار A/B من خلال توجيه الطلب إلى رحلة فرعية لتنفيذ وإصدار رمز مميز.

إضافة عنصر رحلة فرعية

التالي مثال لـSubJourneyعنصر من نوعCall، الذي يُعيد عنصر التحكم مرة أخرى إلى الرحلة.

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

التالي مثال لـSubJourneyعنصر من نوعTransfer، الذي يُعيد العنصر المميز مرة أخرى إلى تطبيق جهة الاعتماد.

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

المكونات

لتحديد رحلات المستخدم التي يدعمها النهج، تتم إضافة عنصرUserJourneysضمن عنصر المستوى الأعلى لملف النهج.

يحتوي العنصرPredicatesعلى العنصر الآتي:

العنصر الأحداث الوصف
الرحلة الفرعية 1:n تُحدد الرحلة جميع التركيبات اللازمة لتدفق المستخدم المتكامل.

يحتوي العنصرSubJourneysعلى السمات التالية:

السمة مطلوب الوصف
المعرّف نعم معرف الرحلة الفرعية الذي يمكن استخدامه من قِبل الرحلة للإشارة إلى الرحلة الفرعية في النهج. يشير عنصرSubJourneyReferenceId للعنصرالمرشحإلى هذه السمة.
النوع نعم القيم الممكنة:CallأوTransfer. للحصول على مزيد من المعلومات، انظرالإصدار الفرعي للرحلة

يحتوي العنصرSubJourneyعلى العنصر التالي:

العنصر الأحداث الوصف
OrchestrationSteps 1:n تسلسل التزامن الذي يجب اتباعه من أجل عملية ناجحة. تتكون كل رحلة من قائمة مرتّبة بخطوات التنسيق التي يتم تنفيذها في التسلسل. إذا فشلت أي خطوة، تفشل العملية.

OrchestrationSteps

للحصول على قائمة كاملة من عناصر خطوة التزامن، انظرUserJourneys.

الخطوات التالية

تعرف على كافة التفاصيل المتعلقة بـ⁧⁩الرحلة⁧