الملفات التعريفية التقنية

إشعار

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

يوفر الملف الشخصي الفني إطار عمل بآلية مدمجة للتواصل مع أنواع مختلفة من الأطراف. تُستخدم ملفات التعريف الفنية للتواصل مع مستأجر Azure Active Directory B2C (Azure AD B2C) لإنشاء مستخدم أو قراءة ملف تعريف مستخدم. يمكن تأكيد ملف التعريف الفني ذاتيًا لتمكين التفاعل مع المستخدم. على سبيل المثال، يمكن للملف الشخصي الفني جمع بيانات اعتماد المستخدم لتسجيل الدخول ثم عرض صفحة التسجيل أو صفحة إعادة تعيين كلمة المرور.

أنواع الملفات الفنية

يتيح ملف التعريف الفني هذه الأنواع من السيناريوهات:

  • Application Insights : يرسل بيانات الحدث إلى Application Insights .
  • معرف Microsoft Entra: يوفر الدعم لإدارة مستخدم Azure AD B2C.
  • مصادقة Microsoft Entra متعددة العوامل: توفر دعما للتحقق من رقم هاتف باستخدام مصادقة Microsoft Entra متعددة العوامل.
  • تحويل المطالبات : تحويلات مطالبات إخراج المكالمات لمعالجة قيم المطالبات أو التحقق من صحة المطالبات أو تعيين القيم الافتراضية لمجموعة من مطالبات المخرجات.
  • تلميح رمز المعرف: يتحقق من صحة id_token_hint توقيع رمز JWT واسم المُصدر وجمهور الرمز المميز ويستخرج المطالبة من الرمز المميز الوارد.
  • مُصدر رمز JWT المميز: يُصدر رمز JWT الذي تم إرجاعه مرة أخرى إلى تطبيق الجهة المعتمدة.
  • OAuth1: الاتحاد مع أي موفِّر هوية بروتوكول OAuth 1.0.
  • OAuth2 : الاتحاد مع أي موفِّر هوية بروتوكول OAuth 2.0.
  • كلمة مرور لمرة واحدة : توفر دعمًا لإدارة إنشاء كلمة مرور لمرة واحدة والتحقق منها.
  • OpenID Connect : الاتحاد مع أي موفر هوية بروتوكول OpenID Connect.
  • عامل الهاتف : يدعم تسجيل أرقام الهواتف والتحقق منها.
  • موفر RESTful : لاستدعاء خدمات REST API، مثل التحقق من صحة إدخال المستخدم، أو إثراء بيانات المستخدم أو التكامل مع تطبيقات الأعمال.
  • موفر هوية SAML : الاتحاد مع أي موفر هوية بروتوكول SAML.
  • مُصدر رمز SAML المميز : يُصدر رمز SAML المميز الذي تم إرجاعه مرة أخرى إلى تطبيق الجهة المعتمدة.
  • مؤكد ذاتيًا : يتفاعل مع المستخدم. على سبيل المثال، يجمع بيانات اعتماد المستخدم لتسجيل الدخول أو عرض صفحة التسجيل أو إعادة تعيين كلمة المرور.
  • إدارة الجلسة : تتعامل مع أنواع مختلفة من الجلسات.

تدفق الملف الفني

تشترك جميع أنواع ملفات التعريف التقنية في نفس المفهوم. يبدؤون بقراءة مطالبات الإدخال وتشغيل تحويلات المطالبات. ثم يتصلون بالطرف المكون، مثل موفر هوية أو REST API أو خدمات دليل Microsoft Entra. بعد اكتمال العملية، يقوم ملف التعريف الفني بإرجاع مطالبات المخرجات وقد يقوم بإجراء تحويلات مطالبات الإخراج. يوضح الرسم البياني التالي كيفية معالجة التحويلات والتعيينات المشار إليها في ملف التعريف الفني. بعد تنفيذ تحويل المطالبات، يتم تخزين مطالبات المخرجات على الفور في حقيبة المطالبات بغض النظر عن الطرف الذي يتفاعل معه ملف التعريف الفني.

Diagram that illustrates the technical profile flow.

  1. إدارة جلسة الدخول الموحد (SSO) : استعادة حالة جلسة الملف الشخصي الفني باستخدام إدارة جلسة الدخول الموحد .
  2. تحويل مطالبات الإدخال : قبل بدء ملف التعريف الفني، يقوم Azure AD B2C بتشغيل تحويل المطالبات .
  3. مطالبات الإدخال : يتم انتقاء المطالبات من حقيبة المطالبات المستخدمة في الملف الشخصي الفني.
  4. تنفيذ الملف الفني : يتبادل الملف الشخصي الفني المطالبات مع الطرف الذي تمت تهيئته. على سبيل المثال:
    • إعادة توجيه المستخدم إلى موفر الهوية لإكمال تسجيل الدخول. بعد تسجيل الدخول بنجاح، يعود المستخدم مرة أخرى ويستمر تنفيذ ملف التعريف الفني.
    • استدعاء REST API في أثناء إرسال المعلمات كـ InputClaims والحصول على المعلومات مرة أخرى كـ OutputClaims.
    • إنشاء حساب المستخدم أو تحديثه.
    • إرسال رسالة مصادقة نصية متعددة العوامل والتحقق منها.
  5. الملفات الشخصية الفنية للتحقق : يمكن لـ الملف الشخصي الفني المؤكد ذاتيًا استدعاء الملفات الشخصية الفنية للتحقق من صحة البيانات التي قام المستخدم بإعدادها. يمكن فقط لملفات التعريف الفنية المؤكدة ذاتياً استخدام ملفات التعريف الفنية للتحقق.
  6. مطالبات المخرجات : يتم إرجاع المطالبات إلى حقيبة المطالبات. يمكنك استخدام هذه المطالبات في خطوة التنظيمات التالية أو تحويلات مطالبات الإخراج.
  7. تحويلات مطالبات الإخراج : بعد اكتمال ملف التعريف الفني، يقوم Azure AD B2C بتشغيل تحويلات المطالبات .
  8. إدارة جلسة SSO : استمرار بيانات الملف الشخصي الفني في الجلسة باستخدام إدارة جلسة SSO .

يحتوي عنصر TechnicalProfiles على مجموعة من الملفات الشخصية الفنية التي يدعمها موفر المطالبات. يجب أن تكون لدى كل مقدم مطالبات ملف تعريف تقني واحد على الأقل. يحدد ملف التعريف الفني نقاط النهاية والبروتوكولات اللازمة للتواصل مع مزود المطالبات. يمكن أن يكون لدى موفر المطالبات ملفات تعريف تقنية متعددة.

<ClaimsProvider>
  <DisplayName>Display name</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="Technical profile identifier">
      <DisplayName>Display name of technical profile</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        ...
      </Metadata>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

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

السمة المطلوب ‏‏الوصف
المعرّف ‏‏نعم‬ معرف فريد لملف التعريف الفني. يمكن الرجوع إلى ملف التعريف الفني باستخدام هذا المعرف من عناصر أخرى في ملف السياسة. ومن الأمثلة على ذلك OrchestrationSteps و ValidationTechnicalProfile .

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

العنصر الأحداث ‏‏الوصف
النطاق 0:1 اسم المجال لملف التعريف الفني. على سبيل المثال، إذا كان ملف التعريف الفني الخاص بك يحدد موفر هوية Facebook، فإن اسم المجال هو Facebook.com.
DisplayName 1:1 اسم العرض لملف التعريف الفني.
‏‏الوصف 0:1 وصف الملف الفني.
البروتوكول 1:1 البروتوكول المستخدم للاتصال مع الطرف الآخر.
بيانات التعريف 0:1 مجموعة من المفاتيح والقيم التي تتحكم في سلوك الملف الفني.
تنسيق إدخال الرمز المميز 0:1 تنسيق إدخال الرمز المميز. القيم المحتملة هي JSON أو JWT أو SAML11 أو SAML2. تمثل قيمة JWT رمز ويب JSON وفقًا لمواصفات IETF. تمثل قيمة SAML11 رمز أمان SAML 1.1 وفقًا لمواصفات OASIS. تمثل قيمة SAML2 رمز أمان SAML 2.0 وفقًا لمواصفات OASIS.
OutputTokenFormat 0:1 تنسيق إخراج الرمز المميز. القيم المحتملة هي JSON أو JWT أو SAML11 أو SAML2.
مفاتيح التشفير 0:1 قائمة بمفاتيح التشفير المستخدمة في التشكيل الجانبي التقني.
عمليات نقل المطالبات المدخلة 0:1 قائمة بالمراجع المحددة مسبقًا لتحويلات المطالبات التي يجب تنفيذها قبل إرسال أي مطالبات إلى مزود المطالبات أو الطرف المعتمد.
InputClaims 0:1 قائمة بالمراجع المحددة مسبقًا لأنواع المطالبات التي يتم أخذها كمدخلات في الملف الشخصي الفني.
مطالبات مستمرة 0:1 قائمة بالمراجع المحددة مسبقًا لأنواع المطالبات التي سيستمر ملف التعريف الفني فيها.
عرض الدعاوى 0:1 قائمة بالمراجع المحددة مسبقًا لأنواع المطالبات المقدمة بواسطة ملف التعريف الفني المؤكد ذاتيًا . ميزة عرض الدعاوى قيد المعاينة حاليًا.
OutputClaims 0:1 قائمة بالمراجع المحددة مسبقًا لأنواع المطالبات التي يتم أخذها كمخرجات في الملف الشخصي الفني.
OutputClaimsTransformations 0:1 قائمة بالمراجع المحددة مسبقًا لتحويلات المطالبات التي يجب تنفيذها بعد استلام المطالبات من مزود المطالبات.
ValidationTechnicalProfiles 0:n قائمة بالمراجع إلى الملفات الفنية الأخرى التي يستخدمها الملف الفني لأغراض التحقق من الصحة. لمزيد من المعلومات، راجع الملف الشخصي الفني للتحقق .
SubjectNamingInfo 0:1 يتحكم في إنتاج اسم الموضوع بالرموز المميزة حيث يتم تحديد اسم الموضوع بشكل منفصل عن المطالبات. ومن الأمثلة على ذلك OAuth أو SAML.
IncludeInSso 0:1 ما إذا كان يجب أن يطبق استخدام هذا الملف الشخصي الفني سلوك الدخول الموحّد للجلسة أو يتطلب تفاعلاً صريحًا بدلاً من ذلك. هذا العنصر صالح فقط في ملفات التعريف ذاتية التأكيد المستخدمة في ملف تعريف فني للتحقق. القيم المحتملة هي true (افتراضي) أو false.
IncludeClaimsFromTechnicalProfile 0:1 معرّف ملف تعريف تقني تريد من خلاله إضافة جميع مطالبات الإدخال والإخراج إلى ملف التعريف الفني هذا. يجب تحديد ملف التعريف الفني المشار إليه في ملف السياسة نفسه.
تضمين الملف التقني 0:1 معرّف ملف تعريف تقني تريد من خلاله إضافة جميع البيانات إلى ملف التعريف الفني هذا.
UseTechnicalProfileForSessionManagement 0:1 ملف فني مختلف لاستخدامه في إدارة الجلسة.
تمكين لرحلات المستخدم 0:1 يتحكم فيما إذا كان ملف التعريف الفني قد تم تنفيذه في رحلة المستخدم.

البروتوكول

يحدد عنصر البروتوكول البروتوكول الذي سيتم استخدامه للاتصال بالطرف الآخر. يحتوي عنصر البروتوكول على السمات التالية:

السمة المطلوب ‏‏الوصف‬
الاسم ‏‏نعم‬ اسم بروتوكول صالح معتمد من قبل Azure AD B2C يستخدم كجزء من التشكيل الجانبي التقني. القيم المحتملة هي OAuth1 أو OAuth2 أو SAML2 أو OpenIdConnect أو Proprietary أو None.
معالج لا عند تعيين اسم البروتوكول إلى Proprietary، يحدد اسم التجميع المستخدم من قبل Azure AD B2C لتحديد معالج البروتوكول. إذا قمت بتعيين سمة اسم البروتوكول إلى None، فلا تقم بتضمين سمة المعالج.

بيانات التعريف

يحتوي عنصر البيانات التعريفية على خيارات التكوين ذات الصلة لبروتوكول معين. تم توثيق قائمة البيانات التعريفية المدعومة في مواصفة الملف الشخصي الفني المقابلة. يحتوي عنصر البيانات التعريفية على العنصر التالي:

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

عنصر

يحتوي بند العنصر لعنصر البيانات التعريفية على السمة التالية:

السمة المطلوب ‏‏الوصف
مفتاح ‏‏نعم‬ بيانات التعريف الرئيسية. راجع كل نوع ملف تعريف تقني للحصول على قائمة عناصر البيانات التعريفية.

يوضح المثال التالي استخدام البيانات التعريفية ذات الصلة بملف تعريف OAuth2 الفني .

<TechnicalProfile Id="Facebook-OAUTH">
  ...
  <Metadata>
    <Item Key="ProviderName">facebook</Item>
    <Item Key="authorization_endpoint">https://www.facebook.com/dialog/oauth</Item>
    <Item Key="AccessTokenEndpoint">https://graph.facebook.com/oauth/access_token</Item>
    <Item Key="HttpBinding">GET</Item>
    <Item Key="UsePolicyInRedirectUri">0</Item>
    ...
  </Metadata>
  ...
</TechnicalProfile>

يوضح المثال التالي استخدام البيانات التعريفية ذات الصلة بملف التعريف الفني لـ REST API .

<TechnicalProfile Id="REST-Validate-Email">
  ...
  <Metadata>
    <Item Key="ServiceUrl">https://api.sendgrid.com/v3/mail/send</Item>
    <Item Key="AuthenticationType">Bearer</Item>
    <Item Key="SendClaimsIn">Body</Item>
    ...
  </Metadata>
  ...
</TechnicalProfile>

مفاتيح تشفير

لتأسيس الثقة في الخدمات التي يتكامل معها، يخزن Azure AD B2C الأسرار والشهادات في شكل مفاتيح السياسة . في أثناء تنفيذ ملف التعريف الفني، يسترد Azure AD B2C مفاتيح التشفير من مفاتيح نهج Azure AD B2C. ثم يستخدم Azure AD B2C المفاتيح لتأسيس ثقة أو تشفير أو توقيع رمز مميز. تتكون هذه الثقة من:

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

العنصر الأحداث ‏‏الوصف
مفتاح 1:n مفتاح تشفير مستخدم في ملف التعريف الفني هذا.

مفتاح

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

السمة المطلوب ‏‏الوصف
المعرّف لا معرف فريد لزوج مفاتيح معين مشار إليه من عناصر أخرى في ملف السياسة.
StorageReferenceId ‏‏نعم‬ معرف حاوية مفتاح التخزين المشار إليها من عناصر أخرى في ملف النهج.

تحويلات مطالبات الإدخال

قد يحتوي عنصر InputClaimsTransformations على مجموعة من عناصر تحويل مطالبات الإدخال التي تُستخدم لتعديل مطالبات الإدخال أو إنشاء مطالبات جديدة.

ويمكن أن تكون مطالبات المخرجات الخاصة بتحويل المطالبات السابق في مجموعة تحويل المطالبات عبارة عن مطالبات مدخلات لتحويل مطالبات المدخلات اللاحقة. وبهذه الطريقة، يمكن أن تكون لديك سلسلة من تحولات المطالبات التي تعتمد على بعضها البعض.

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

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

إدخال تحويل المطالبات

يحتوي عنصر إدخال تحويل المطالبات على السمة التالية:

السمة المطلوب ‏‏الوصف
ReferenceId ‏‏نعم‬ معرّف تحويل المطالبات تم تحديده بالفعل في ملف السياسة أو ملف السياسة الأصل.

تشير الملفات الشخصية الفنية التالية إلى تحويل مطالبات CreateOtherMailsFromEmail . يضيف تحويل المطالبات قيمة المطالبة email إلى المجموعة otherMails قبل الاحتفاظ بالبيانات في الدليل.

<TechnicalProfile Id="AAD-UserWriteUsingAlternativeSecurityId">
  ...
  <InputClaimsTransformations>
    <InputClaimsTransformation ReferenceId="CreateOtherMailsFromEmail" />
  </InputClaimsTransformations>
  <PersistedClaims>
    <PersistedClaim ClaimTypeReferenceId="alternativeSecurityId" />
    <PersistedClaim ClaimTypeReferenceId="userPrincipalName" />
    <PersistedClaim ClaimTypeReferenceId="mailNickName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="otherMails" />
    <PersistedClaim ClaimTypeReferenceId="givenName" />
    <PersistedClaim ClaimTypeReferenceId="surname" />
  </PersistedClaims>
  ...
</TechnicalProfile>

مطالبات الإدخال

يلتقط عنصر InputClaims المطالبات من حقيبة المطالبات التي يتم استخدامها للملف الشخصي الفني. على سبيل المثال، يستخدم ملف التعريف الفني المؤكد ذاتيًا ادعاءات الإدخال لملء مطالبات المخرجات التي يقدمها المستخدم مسبقًا. يستخدم ملف التعريف الفني لـ REST API مطالبات الإدخال لإرسال معلمات الإدخال إلى نقطة نهاية REST API. يستخدم Azure AD B2C مطالبة إدخال كمعرف فريد لقراءة حساب أو تحديثه أو حذفه.

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

العنصر الأحداث ‏‏الوصف
مطالبة إدخال 1:n نوع مطالبة إدخال متوقع.

مطالبة إدخال

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

السمة المطلوب ‏‏الوصف
ClaimTypeReferenceId ‏‏نعم‬ معرف نوع المطالبة. تم تحديد المطالبة بالفعل في قسم مخطط المطالبات في ملف السياسة أو ملف السياسة الرئيسي.
DefaultValue لا قيمة افتراضية لاستخدامها في إنشاء مطالبة ما إذا كانت المطالبة المشار إليها بواسطة ClaimTypeReferenceId غير موجودة بحيث يمكن استخدام المطالبة الناتجة كعنصر InputClaim بواسطة ملف التعريف الفني.
AlwaysUseDefaultValue ‏‏نعم‬ فرض استخدام القيمة الافتراضية.
PartnerClaimType لا معرّف نوع المطالبة للشريك الخارجي الذي يعيّنه نوع مطالبة السياسة المحددة. إذا لم يتم تحديد السمة PartnerClaimType، يتم تعيين نوع المطالبة النهج المحدد إلى نوع المطالبة الشريك الذي يحمل نفس الاسم. استخدم هذه الخاصية عندما يكون اسم نوع المطالبة الخاص بك مختلفًا عن الطرف الآخر. على سبيل المثال، إذا كان اسم المطالبة الأول هو الاسم المحدد ، بينما يستخدم الشريك مطالبة باسم الاسم_الأول .

عرض المطالبات

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

  • نوع المطالبة هو مرجع إلى مطالبة يتم عرضها على الشاشة.
    • لإجبار المستخدم على تقديم قيمة مطالبة معينة، قم بتعيين السمة مطلوب لعنصر عرض المطالبة على true.
    • لملء قيم مطالبات العرض مسبقًا، استخدم مطالبات الإدخال التي سبق وصفها. قد يحتوي العنصر أيضًا على قيمة افتراضية.
    • عنصر ClaimType في مجموعة DisplayClaims يحتاج إلى تعيين عنصر UserInputType إلى أي نوع إدخال المستخدم المعتمدة بواسطة Azure AD B2C. الأمثلة هي TextBox أو DropdownSingleSelect.
  • عنصر تحكم العرض هو عنصر واجهة مستخدم له وظائف خاصة ويتفاعل مع خدمة الواجهة الخلفية لـ Azure AD B2C. يسمح للمستخدم بتنفيذ الإجراءات على الصفحة التي تستدعي ملف التعريف التقني الخاص بالتحقق من الصحة في النهاية الخلفية. مثال على ذلك هو التحقق من عنوان البريد الإلكتروني أو رقم الهاتف أو رقم ولاء العميل.

يحدد ترتيب العناصر في عرض المطالبات الترتيب الذي يعرض به Azure AD B2C المطالبات على الشاشة.

يحتوي عنصر عرض المطالبات على العنصر التالي:

العنصر الأحداث ‏‏الوصف
عرض المطالبة 1:n نوع مطالبة إدخال متوقع.

عرض المطالبة

يحتوي عنصر عرض المطالبة على السمات التالية:

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

يوضح المثال التالي استخدام مطالبات العرض وعناصر التحكم في العرض في ملف تعريف فني مؤكد ذاتيًا.

Screenshot that shows a self-asserted technical profile with display claims.

في الملف الفني التالي:

  • تشير مطالبة العرض الأولى إلى عنصر التحكم في emailVerificationControl العرض، الذي يجمع عنوان البريد الإلكتروني ويتحقق منه.
  • تشير مطالبة العرض الخامسة إلى عنصر التحكم في phoneVerificationControl العرض، الذي يجمع رقم هاتف ويتحقق منه.
  • مطالبات العرض الأخرى هي عناصر نوع المطالبة التي سيتم جمعها من المستخدم.
<TechnicalProfile Id="Id">
  <DisplayClaims>
    <DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
    <DisplayClaim ClaimTypeReferenceId="displayName" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="givenName" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="surName" Required="true" />
    <DisplayClaim DisplayControlReferenceId="phoneVerificationControl" />
    <DisplayClaim ClaimTypeReferenceId="newPassword" Required="true" />
    <DisplayClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
  </DisplayClaims>
</TechnicalProfile>

المطالبات المستمرة

يحتوي عنصر PersistedClaims على كافة القيم التي يجب أن يستمر بها ملف التعريف الفني لمعرف Microsoft Entra مع معلومات التعيين المحتملة بين نوع المطالبة المحدد بالفعل في قسم ClaimsSchema في النهج واسم سمة Microsoft Entra.

اسم المطالبة هو اسم سمة Microsoft Entra ما لم يتم تحديد السمة PartnerClaimType، والتي تحتوي على اسم سمة Microsoft Entra.

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

العنصر الأحداث ‏‏الوصف
المطالبة المستمرة 1:n نوع المطالبة للاستمرار.

المطالبة المستمرة

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

السمة المطلوب ‏‏الوصف
ClaimTypeReferenceId ‏‏نعم‬ معرف نوع المطالبة المحدد بالفعل في قسم مخطط المطالبات في ملف السياسة أو ملف السياسة الأصل.
DefaultValue لا قيمة افتراضية لاستخدامها لإنشاء مطالبة إذا لم تكن المطالبة موجودة.
PartnerClaimType لا معرّف نوع المطالبة للشريك الخارجي الذي يعيّنه نوع مطالبة السياسة المحددة. إذا لم يتم تحديد السمة PartnerClaimType، يتم تعيين نوع المطالبة النهج المحدد إلى نوع المطالبة الشريك الذي يحمل نفس الاسم. استخدم هذه الخاصية عندما يكون اسم نوع المطالبة الخاص بك مختلفًا عن الطرف الآخر. على سبيل المثال، إذا كان اسم المطالبة الأول هو الاسم المحدد ، بينما يستخدم الشريك مطالبة باسم الاسم_الأول .

في المثال التالي، يستمر ملف التعريف الفني AAD-UserWriteUsingLogonEmail أو حزمة المبتدئين ، التي تنشئ حسابًا محليًا جديدًا على الادعاءات التالية:

<PersistedClaims>
  <PersistedClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />
  <PersistedClaim ClaimTypeReferenceId="newPassword" PartnerClaimType="password"/>
  <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
  <PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration" />
  <PersistedClaim ClaimTypeReferenceId="givenName" />
  <PersistedClaim ClaimTypeReferenceId="surname" />
</PersistedClaims>

مطالبات الإخراج

عنصر OutputClaims عبارة عن مجموعة من المطالبات التي يتم إرجاعها مرة أخرى إلى حقيبة المطالبات بعد اكتمال ملف التعريف الفني. يمكنك استخدام هذه المطالبات في خطوة التنظيمات التالية أو تحويلات مطالبات الإخراج. يحتوي عنصر OutputClaims على العنصر التالي:

العنصر الأحداث ‏‏الوصف
OutputClaim 1:n نوع مطالبة إخراج متوقع.

OutputClaim

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

السمة المطلوب ‏‏الوصف
ClaimTypeReferenceId ‏‏نعم‬ معرف نوع المطالبة المحدد بالفعل في قسم مخطط المطالبات في ملف السياسة أو ملف السياسة الأصل.
DefaultValue لا قيمة افتراضية لاستخدامها لإنشاء مطالبة إذا لم تكن المطالبة موجودة.
AlwaysUseDefaultValue لا فرض استخدام القيمة الافتراضية.
PartnerClaimType لا معرّف نوع المطالبة للشريك الخارجي الذي يعيّنه نوع مطالبة السياسة المحددة. إذا لم يتم تحديد سمة نوع مطالبة الشريك، يتم تعيين نوع مطالبة السياسة المحددة لنوع مطالبة الشريك الذي يحمل نفس الاسم. استخدم هذه الخاصية عندما يكون اسم نوع المطالبة الخاص بك مختلفًا عن الطرف الآخر. على سبيل المثال، إذا كان اسم المطالبة الأول هو الاسم المحدد ، بينما يستخدم الشريك مطالبة باسم الاسم_الأول .

تحولات مطالبات الإخراج

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

ويمكن أن تكون مطالبات المخرجات الخاصة بتحويل المطالبات السابق في مجموعة تحويل المطالبات عبارة عن مطالبات مدخلات لتحويل مطالبات المدخلات اللاحقة. وبهذه الطريقة، يمكن أن تكون لديك سلسلة من تحولات المطالبات التي تعتمد على بعضها البعض.

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

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

OutputClaimsTransformation

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

السمة المطلوب ‏‏الوصف
ReferenceId ‏‏نعم‬ معرّف تحويل المطالبات تم تحديده بالفعل في ملف السياسة أو ملف السياسة الأصل.

يشير ملف التعريف الفني التالي إلى تحويل مطالبات AssertAccountEnabledIsTrue لتقييم ما إذا كان الحساب ممكّنًا أم لا بعد قراءة مطالبة accountEnabled من الدليل.

<TechnicalProfile Id="AAD-UserReadUsingEmailAddress">
  ...
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" />
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <OutputClaim ClaimTypeReferenceId="accountEnabled" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
    <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
  </OutputClaims>
  <OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="AssertAccountEnabledIsTrue" />
  </OutputClaimsTransformations>
  ...
</TechnicalProfile>

التحقق من صحة ملفات التعريف الفنية

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

يوضح الرسم التخطيطي التالي كيف يستخدم Microsoft Azure Active Directory B2C ملف تعريف تقني للتحقق من صحة بيانات اعتماد المستخدم.

Diagram that shows a validation technical profile flow.

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

العنصر الأحداث ‏‏الوصف
الملف الفني للتحقق 1:n تتحقق معرفات ملفات التعريف الفنية المستخدمة من بعض أو كل مطالبات المخرجات الخاصة بالملف الفني المرجعي. يجب أن تظهر جميع مطالبات الإدخال الخاصة بالملف الفني المشار إليه في مطالبات المخرجات للملف الفني المرجعي.

الملف الفني للتحقق

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

السمة المطلوب ‏‏الوصف
ReferenceId ‏‏نعم‬ معرف لملف تعريف فني تم تعريفه مسبقًا في ملف النهج أو ملف النهج الأصل.

SubjectNamingInfo

يحدد عنصر SubjectNamingInfo اسم الموضوع المستخدم في الرموز المميزة في سياسة الجهة المعتمدة . يحتوي عنصر SubjectNamingInfo على السمة التالية:

السمة المطلوب ‏‏الوصف
ClaimType ‏‏نعم‬ معرّف لنوع مطالبة تم تحديده بالفعل في قسم مخطط المطالبات في ملف السياسة.

تضمين ملف التعريف الفني

يمكن أن يشتمل ملف التعريفي الفني على ملف تعريف تقني آخر لتغيير الإعدادات أو إضافة وظائف جديدة. يعد عنصر تضمين ملف التعريفي الفني مرجعًا للملف الفني المشترك الذي يتم اشتقاق ملف التعريف الفني منه. لتقليل التكرار والتعقيد لعناصر السياسة الخاصة بك، استخدم التضمين عندما تكون لديك ملفات تعريف فنية متعددة تشترك في العناصر الأساسية. استخدم ملف تعريف تقنيًا مشتركًا مع مجموعة عامة من التكوين، جنبًا إلى جنب مع ملفات تعريف فنية محددة للمهام تتضمن ملف تعريف تقنيًا مشتركًا.

لنفترض أن لديك ملف تعريف تقنيًا لـ REST API بنقطة نهاية واحدة حيث تحتاج إلى إرسال مجموعات مختلفة من المطالبات لسيناريوهات مختلفة. قم بإنشاء ملف تعريف تقني مشترك مع الوظائف المشتركة، مثل REST API لنقطة نهاية URI والبيانات التعريفية ونوع المصادقة ومفاتيح التشفير. قم بإنشاء ملفات تعريف فنية لمهمة محددة تتضمن الملف الفني المشترك. ثم أضف مطالبات الإدخال والإخراج، أو قم بالكتابة فوق نقطة نهاية REST API URI ذات الصلة بملف التعريف الفني هذا.

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

السمة المطلوب ‏‏الوصف
ReferenceId ‏‏نعم‬ معرف لملف تعريف فني تم تعريفه مسبقًا في ملف النهج أو ملف النهج الأصل.

يوضح المثال التالي استخدام التضمين:

  • REST-API-Common : ملف تعريف تقني شائع مع التكوين الأساسي.
  • REST-ValidateProfile : يتضمن ملف التعريف الفني REST-API-Common ويحدد مطالبات الإدخال والإخراج.
  • REST-UpdateProfile : يتضمن ملف التعريف الفني REST-API-Common ، ويحدد ادعاءات الإدخال، ويستبدل ServiceUrl البيانات التعريفية.
<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-API-Common">
      <DisplayName>Base REST API configuration</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://your-app-name.azurewebsites.NET/api/identity</Item>
        <Item Key="AuthenticationType">Basic</Item>
        <Item Key="SendClaimsIn">Body</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_B2cRestClientId" />
        <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_B2cRestClientSecret" />
      </CryptographicKeys>
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
    </TechnicalProfile>

    <TechnicalProfile Id="REST-ValidateProfile">
      <DisplayName>Validate the account and return promo code</DisplayName>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="objectId" />
        <InputClaim ClaimTypeReferenceId="email" />
        <InputClaim ClaimTypeReferenceId="userLanguage" PartnerClaimType="lang" DefaultValue="{Culture:LCID}" AlwaysUseDefaultValue="true" />
      </InputClaims>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="promoCode" />
      </OutputClaims>
      <IncludeTechnicalProfile ReferenceId="REST-API-Common" />
    </TechnicalProfile>

    <TechnicalProfile Id="REST-UpdateProfile">
      <DisplayName>Update the user profile</DisplayName>  
      <Metadata>
        <Item Key="ServiceUrl">https://your-app-name.azurewebsites.NET/api/identity/update</Item>
      </Metadata>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="objectId" />
        <InputClaim ClaimTypeReferenceId="email" />
      </InputClaims>
      <IncludeTechnicalProfile ReferenceId="REST-API-Common" />
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

إدراج متعدد المستويات

يمكن أن يتضمن ملف التعريف الفني ملف تعريف فنيًا واحدًا. ولا يوجد حد لعدد مستويات التضمين. على سبيل المثال، يتضمن ملف التعريف الفني AAD-UserReadUsingAlternativeSecurityId-NoError AAD-UserReadUsingAlternativeSecurityId . يعيّن ملف التعريف الفني هذا عنصر البيانات التعريفية RaiseErrorIfClaimsPrincipalDoesNotExist على true ويثير خطأ إذا لم يكن الحساب الاجتماعي موجودًا في الدليل. يتجاوز AAD-UserReadUsingAlternativeSecurityId-NoError هذا السلوك ويعطل رسالة الخطأ هذه.

<TechnicalProfile Id="AAD-UserReadUsingAlternativeSecurityId-NoError">
  <Metadata>
    <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">false</Item>
  </Metadata>
  <IncludeTechnicalProfile ReferenceId="AAD-UserReadUsingAlternativeSecurityId" />
</TechnicalProfile>

AAD-UserReadUsingAlternativeSecurityId يتضمن AAD-Common الملف الشخصي الفني.

<TechnicalProfile Id="AAD-UserReadUsingAlternativeSecurityId">
  <Metadata>
    <Item Key="Operation">Read</Item>
    <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>
    <Item Key="UserMessageIfClaimsPrincipalDoesNotExist">User does not exist. Please sign up before you can sign in.</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="AlternativeSecurityId" PartnerClaimType="alternativeSecurityId" Required="true" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
    <OutputClaim ClaimTypeReferenceId="givenName" />
    <OutputClaim ClaimTypeReferenceId="surname" />
  </OutputClaims>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

لا يحدد كل من AAD-UserReadUsingAlternativeSecurityId-NoError و AAD-UserReadUsingAlternativeSecurityId عنصر البروتوكول المطلوب لأنه محدد في AAD-Common الملف الفني.

<TechnicalProfile Id="AAD-Common">
  <DisplayName>Azure Active Directory</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
  ...
</TechnicalProfile>

استخدام التشكيل الجانبي التقني لإدارة الجلسة

يشير عنصر UseTechnicalProfileForSessionManagement إلى الملف الشخصي الفني لجلسة SSO . يحتوي عنصر UseTechnicalProfileForSessionManagement على السمة التالية:

السمة المطلوب ‏‏الوصف
ReferenceId ‏‏نعم‬ معرف لملف تعريف فني تم تعريفه مسبقًا في ملف النهج أو ملف النهج الأصل.

مُمكّن لرحلات المستخدم

تحدد ClaimsProviderSelections في رحلة المستخدم قائمة خيارات اختيار مزود المطالبات وترتيبها. باستخدام العنصر ممكّن في رحلات المستخدم ، يمكنك تصفية موفر المطالبات المتاح للمستخدم. يحتوي عنصر ممكّن في رحلات المستخدم على إحدى القيم التالية:

  • دائمًا : ينفذ ملف التعريف الفني.
  • مطلقًا : يتخطى الملف الشخصي الفني.
  • عند وجود مطالبات : يتم التنفيذ فقط عند وجود مطالبة معينة محددة في الملف الشخصي الفني.
  • عند وجود عنصر في مطالبة مجموعة السلاسل : يتم التنفيذ فقط عند وجود عنصر في مطالبة مجموعة السلاسل.
  • عند عدم وجود عنصر في مطالبة مجموعة السلاسل : يتم التنفيذ فقط في حالة عدم وجود عنصر في مطالبة مجموعة السلاسل.

يتطلب استخدام عند وجود مطالبات أو عند وجود عنصر في مطالبة مجموعة السلاسل أو عند عدم وجود عنصر في مطالبة مجموعة السلاسل تقديم البيانات التعريفية التالية:

  • نوع المطالبة الذي يتم التمكين فيه : يحدد نوع المطالبة التي سيتم تقييمها.
  • قيمة المطالبة التي يتم التمكين عليها : تحدد القيمة المطلوب مقارنتها.

يتم تنفيذ الملف الشخصي الفني التالي فقط إذا كانت مجموعة سلاسل موفري الهوية تحتوي على قيمة facebook.com:

<TechnicalProfile Id="UnLink-Facebook-OAUTH">
  <DisplayName>Unlink Facebook</DisplayName>
...
    <Metadata>
      <Item Key="ClaimTypeOnWhichToEnable">identityProviders</Item>
      <Item Key="ClaimValueOnWhichToEnable">facebook.com</Item>
    </Metadata>
...
  <EnabledForUserJourneys>OnItemExistenceInStringCollectionClaim</EnabledForUserJourneys>
</TechnicalProfile>