تعريف ملف التعريف الفني لـ SAML في نهج مخصص في Microsoft Azure Active Directory B2C

ملاحظة

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

يوفرMicrosoft Azure Active Directory B2C (Microsoft Azure Active Directory B2C) الدعم لموفر هوية SAML 2.0. توضح هذه المقالة تفاصيل ملف التعريف الفني للتفاعل مع موفر المطالبات الذي يدعم هذا البروتوكول القياسي. باستخدام ملف تعريف SAML الفني يمكنك الاتحاد مع موفر هوية مستند إلى SAML مثل ADFS وSalesforce . يسمح هذا الاتحاد للمستخدمين الخاصين بك بتسجيل الدخول بهوياتهم الاجتماعية أو المؤسسية الحالية.

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

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

يمكن تكوين بيانات التعريف في كلا الطرفين كـ "بيانات تعريف ثابتة" أو "بيانات تعريف ديناميكية". في الوضع الثابت، يمكنك نسخ بيانات التعريف بالكامل من طرف وتعيينها في الطرف الآخر. في الوضع الديناميكي، يمكنك تعيين عنوان URL لبيانات التعريف بينما يقرأ الطرف الآخر التكوين ديناميكياً. المبادئ هي نفسها، يمكنك تعيين بيانات التعريف من ملف تعريف Microsoft Azure Active Directory B2C الفني في موفر الهوية الخاص بك وتعيين بيانات التعريف لموفر الهوية في Microsoft Azure Active Directory B2C.

لكل موفر هوية SAML خطوات مختلفة لكشف وتعيين موفر الخدمة، في هذه الحالة Microsoft Azure Active Directory B2C، وتعيين بيانات تعريف Microsoft Azure Active Directory B2C في موفر الهوية. اطلع على وثائق موفر الهوية للحصول على إرشادات حول كيفية القيام بذلك.

يعرض المثال التالي عنوان URL لبيانات تعريف SAML لملف التعريف الفني الخاص بـ Microsoft Azure Active Directory B2C:

https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/your-policy/samlp/metadata?idptp=your-technical-profile

استبدل القيم التالية:

  • your-tenant-name باسم المستأجر الخاص بك، مثل fabrikam.b2clogin.com.
  • your-policy باسم النهج الخاص بك. استخدم النهج حيث يمكنك تكوين ملف التعريف الفني لموفر SAML أو النهج الذي يرث من هذا النهج.
  • your-technical-profile باسم ملف التعريف الفني لموفر خدمة الهوية SAML.

عملية تبادل شهادات التوقيع الرقمي

لإنشاء ثقة بين Microsoft Azure Active Directory B2C وموفر هوية SAML، تحتاج إلى توفير شهادة X509 سارية بمفتاح خاص. قم بتحميل الشهادة الخاصة بك باستخدام المفتاح الخاص (ملف.pfx) إلى مخزن مفاتيح نهج Microsoft Azure Active Directory B2C. يوقع Microsoft Azure Active Directory B2C رقمياً على طلب تسجيل الدخول إلى SAML باستخدام الشهادة التي يقدمها.

تُستخدم الشهادة بالطرق التالية:

  • يقوم Microsoft Azure Active Directory B2C بإنشاء وتوقيع طلب SAML باستخدام المفتاح الخاص لـ Microsoft Azure Active Directory B2C الخاص بالشهادة. يُرسل طلب SAML إلى موفر الهوية الذي يتحقق من صحة الطلب باستخدام المفتاح العام لـ Microsoft Azure Active Directory B2C الخاص بالشهادة. يمكن الوصول إلى الشهادة العامة لـ Microsoft Azure Active Directory B2C من خلال بيانات التعريف الفنية لملف التعريف. بدلاً من ذلك، يمكنك تحميل ملف .cer يدوياً إلى موفر هوية SAML.
  • يقوم موفر الهوية بتوقيع البيانات المرسلة إلى Microsoft Azure Active Directory B2C باستخدام المفتاح الخاص لموفر الهوية الخاص بالشهادة. يقوم Microsoft Azure Active Directory B2C بالتحقق من صحة البيانات باستخدام الشهادة العامة لموفر الهوية. لكل موفر هوية خطوات مختلفة للإعداد، انظر إلى وثائق موفر الهوية للحصول على إرشادات حول كيفية القيام بذلك. في Microsoft Azure Active Directory B2C، يحتاج النهج الخاص بك إلى الوصول إلى المفتاح العام للشهادة باستخدام بيانات التعريف الخاصة بموفر الهوية.

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

يعرض الرسم التخطيطي التالي بيانات التعريف وتبادل الشهادات:

عملية تبادل بيانات التعريف والشهادات

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

لتشفير تأكيد استجابة SAML، يستخدم موفر الهوية دائماً مفتاحاً عاماً لشهادة تشفير في ملف التعريف الفني لـ Microsoft Azure Active Directory B2C. عندما يحتاج Microsoft Azure Active Directory B2C لفك تشفير البيانات، فإنه يستخدم الجزء الخاص من شهادة التشفير.

من أجل تشفير تأكيد استجابة SAML:

  1. قم بتحميل شهادة X509 سارية مع المفتاح الخاص (ملف.pfx) إلى مخزن مفاتيح نهج Microsoft Azure Active Directory B2C.
  2. أضف عنصر تشفير المفتاح مع معرف إلى ملف التعريف الفني لمجموعة SamlAssertionDecryption مفاتيح التشفير. حدد معرف مرجع التخزين لاسم مفتاح النهج الذي أنشأته في الخطوة 1.
  3. حدد بيانات التعريف لملف التعريف الفنيWantsEncryptedAssertions لـ true.
  4. حدّث موفر الهوية مع بيانات تعريف ملف التعريف الفني لـ Microsoft Azure Active Directory B2C الجديد. ينبغي أن يظهر لك واصف المفتاح مع خاصية الاستخدام المحددة لـ encryption الذي يحتوي على المفتاح العام للشهادة.

يعرض المثال التالي قسم واصف المفتاح لبيانات تعريف SAML المستخدمة للتشفير:

<KeyDescriptor use="encryption">
  <KeyInfo xmlns="https://www.w3.org/2000/09/xmldsig#">
    <X509Data>
      <X509Certificate>valid certificate</X509Certificate>
    </X509Data>
  </KeyInfo>
</KeyDescriptor>

البروتوكول

يلزم تعيين سمة اسم عنصر بروتوكول إلى SAML2.

المطالبات المتعلقة بالإدخال

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

<InputClaims>
	<InputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="subject" />
</InputClaims>

المطالبات المتعلقة بالإخراج

يحتوي عنصر المطالبات المتعلقة بالإخراج على قائمة المطالبات التي تم إرجاعها بواسطة موفر هوية SAML بموجبAttributeStatementالقسم. قد تحتاج إلى تعيين اسم المطالبة المحددة في النهج الخاص بك إلى الاسم المحدد في موفر الهوية. كما يمكنك إدراج المطالبات التي لم يتم إرجاعها بواسطة موفر الهوية، طالما قمت بتحديد السمة DefaultValue.

المطالبة بإخراج اسم الموضوع

للاطلاع على معرف الاسم لتأكيد SAML في الموضوع كمطالبة تمت تسويتها، حدد المطالبة نوع مطالبة الشريك إلى قيمة السمة SPNameQualifier. إذا لم تُحدد السمة SPNameQualifier، حدد المطالبة نوع مطالبة الشريك إلى قيمة السمة NameQualifier.

التأكيد الخاص بـ SAML:

<saml:Subject>
  <saml:NameID SPNameQualifier="http://your-idp.com/unique-identifier" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">david@contoso.com</saml:NameID>
  <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
    <SubjectConfirmationData InResponseTo="_cd37c3f2-6875-4308-a9db-ce2cf187f4d1" NotOnOrAfter="2020-02-15T16:23:23.137Z" Recipient="https://your-tenant.b2clogin.com/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer" />
    </SubjectConfirmation>
  </saml:SubjectConfirmation>
</saml:Subject>

المطالبة بالإخراج:

<OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="http://your-idp.com/unique-identifier" />

إذا لم تُحدد كلاً من السمة SPNameQualifier أو NameQualifier في تأكيد SAML، حدد المطالبة نوع مطالبة الشريك إلى assertionSubjectName. تأكد من أن معرف الاسم هو القيمة الأولى في تأكيد XML. عند تعريف أكثر من تأكيد واحد، يختارMicrosoft Azure Active Directory B2C قيمة الموضوع من التأكيد الأخير.

يعرض المثال التالي المطالبات التي تمت إعادتها من قِبل موفر هوية SAML:

  • تم تعيين المطالبة معرف مستخدم المصدر للمطالبة اسم موضوع التأكيد.
  • تم تعيين المطالبة first_name إلى مطالبة الاسم المُعطى.
  • تم تعيين المطالبة last_name إلى المطالبة اللقب.
  • تم تعيين المطالبة displayName إلى المطالبة الاسم.
  • مطالبةالبريد الإلكتروني دون تعيين الاسم.

كما يقوم الملف الفني بإرجاع المطالبات التي لم يتم إرجاعها من قِبل موفر الهوية:

  • مطالبةموفر الهويةالذي يحتوي على اسم موفر الهوية.
  • مطالبة مصدر المصادقة بقيمة افتراضية من socialIdpAuthentication.
<OutputClaims>
  <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="assertionSubjectName" />
  <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="first_name" />
  <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="last_name" />
  <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
  <OutputClaim ClaimTypeReferenceId="email"  />
  <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="contoso.com" />
  <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
</OutputClaims>

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

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

السمة مطلوب الوصف
الكيان الشريك نعم عنوان URL لبيانات التعريف الخاصة بموفر خدمة هوية SAML. أو يمكنك نسخ بيانات التعريف الخاصة بموفر الهوية وإضافته داخل عنصر CDATA <![CDATA[Your IDP metadata]]>. لا يوصى بتضمين بيانات تعريف موفر الهوية. من الممكن أن يقوم موفر الهوية بتغيير الإعدادات أو تحديث الشهادة. إذا تم تغيير بيانات التعريف موفر الهوية، احصل على بيانات التعريف الجديدة وتحديث النهج الخاص بك مع واحد جديد.
الطلبات المُراد توقيعها لا الإشارة إلى ما إذا كان ملف التعريف الفني يتطلب توقيع كافة طلبات المصادقة الصادرة أم لا. القيم المحتملة: true أو false. القيمة الافتراضية هي true. عند تعيين القيمة إلى true، يجب تحديد مفتاح التشفير SamlMessageSigning ويتم توقيع كافة طلبات المصادقة الصادرة. في حال تحديد بيانات التعريف على false، يتم حذف معلمات SigAlg وتوقيع (سلسلة الاستعلام أو معلمة النشر) من الطلب. كما تتحكم بيانات التعريف هذه في السمة AuthnRequestsSigned المدرجة مع بيانات التعريف لملف التعريف الفني لـ Microsoft Azure Active Directory B2C الذي تتم مشاركته مع موفر الهوية. لا تعمل Microsoft Azure Active Directory B2C على توقيع الطلب إذا تم تحديد القيمة WantsSignedRequests في بيانات التعريف لملف التعريف الفني على false وتم تحديد بيانات تعريف موفر الهوية WantAuthnRequestsSigned على false أو لم يتم تحديدها.
خوارزمية التوقيع Xml لا الطرق التي يستخدمها لا Microsoft Azure Active Directory B2C لتوقيع تأكيد SAML. تتحكم بيانات التعريف هذه في قيمة المعلمة SigAlg (سلسلة الاستعلام أو معلمة النشر) الموجودة في طلب SAML. القيم المحتملة: Sha256، Sha384، Sha512، أوSha1 (افتراضي). تأكد من تكوين خوارزمية التوقيع على كلا الجانبين بذات القيمة. لا تستخدم إلا الخوارزمية التي تدعمها الشهادة.
التأكيدات المُراد توقيعها لا يشير إلى ما إذا كان ملف التعريف الفني يتطلب توقيع كافة التأكيدات الواردة أم لا. القيم المحتملة: true أو false. القيمة الافتراضية هي true. إذا تم تحديد القيمة إلى true، يلزم توقيع كافة أقسام التأكيدات المرسلة saml:Assertionمن قِبل موفر الهوية إلى Microsoft Azure Active Directory B2C. إذا تم ضبط القيمة على false، فلا ينبغي أن يوقع موفر الهوية التأكيدات، ولكن حتى إذا تم ذلك، فلن يتحقق Microsoft Azure Active Directory B2C من صحة التوقيع. كما تتحكم بيانات التعريف هذه في السمة التأكيدات المُراد توقيعها المدرجة مع بيانات التعريف لملف التعريف الفني لـ Microsoft Azure Active Directory B2C الذي تتم مشاركته مع موفر الهوية. إذا قمت بتعطيل التحقق من صحة التأكيدات، قد تحتاج أيضاً إلى تعطيل التحقق من صحة توقيع الاستجابة (لمزيدٍ من المعلومات، انظر الاستجابات الموقعة).
الاستجابات الموقعة لا القيم المحتملة: true أو false. القيمة الافتراضية هي true. إذا تم تحديد القيمة إلى false، لا ينبغي أن يقوم موفر الهوية بتوقيع استجابة SAML ولكن حتى إذا تم ذلك، لن يقوم Microsoft Azure Active Directory B2C بالتحقق من صحة التوقيع. إذا تم تحديد القيمة إلى true، يتم توقيع استجابة SAML المرسلة من قِبل موفر الهوية إلى Microsoft Azure Active Directory B2C ويجب التحقق من صحتها. إذا قمت بتعطيل التحقق من صحة استجابة SAML، قد تحتاج أيضاً إلى تعطيل التحقق من صحة توقيع التأكيد (لمزيدٍ من المعلومات، انظر التأكيدات المُراد توقيعها).
التأكيدات المُراد تشفيرها لا يشير إلى ما إذا كان ملف التعريف الفني يتطلب تشفير كافة التأكيدات الواردة أم لا. القيم المحتملة: true أو false. القيمة الافتراضية هي false. إذا تم تحديد القيمة إلى true، يجب أن يتم توقيع التأكيدات المرسلة من قِبل موفر الهوية إلى Microsoft Azure Active Directory B2C ويجب تحديد مفتاح تشفير SamlAssertionDecryption. إذا تم تعيين القيمة إلى true، تتضمن بيانات التعريف الخاصة بملف التعريف الفني Microsoft Azure Active Directory B2C قسم التشفير. يقرأ موفر الهوية بيانات التعريف ويشفّر تأكيد استجابة SAML بالمفتاح العام الذي يتم توفيره في بيانات التعريف لملف التعريف الفني لـ Microsoft Azure Active Directory B2C. إذا قمت بتمكين التحقق من صحة التأكيدات، قد تحتاج أيضاً إلى تعطيل التحقق من صحة توقيع الاستجابة (لمزيدٍ من المعلومات، انظر الاستجابات الموقعة).
تنسيق نهج معرف الاسم لا حدد القيود على معرف الاسم الذي سيتم استخدامه لتمثيل الموضوع المطلوب. يشير هذا إلى أنه من الممكن استخدام أي نوع من المعرّفات التي يدعمها موفر الهوية للموضوع المطلوب. على سبيل المثال، ⁧urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified⁩. يمكن استخدام تنسيق نهج معرف الاسم مع السماح بإنشاء نهج معرف الاسم. انظر إلى وثائق موفر الهوية للحصول على إرشادات حول نهج معرف الاسم المدعومة.
السماح بإنشاء نهج معرف الاسم لا عند استخدام تنسيق نهج معرف الاسم، يمكنك أيضاً تحديد AllowCreate خاصية نهج معرف الاسم. قيمة بيانات التعريف هذه true أو false للإشارة إلى ما إذا كان يسمح موفر الهوية لإنشاء حساب جديد أثناء تدفق تسجيل الدخول أم لا. اطلع على وثائق موفر الهوية للحصول على إرشادات حول كيفية القيام بذلك.
ملاحق طلبات المصادقة لا عناصر ملحق رسالة البروتوكول الاختيارية التي يتم الاتفاق عليها بين Azure AD B2C وموفر الهوية. يُقدم الملحق بتنسيق XML. يمكنك إضافة بيانات XML داخل عنصر CDATA <![CDATA[Your IDP metadata]]>. تحقق من وثائق موفر الهوية لمعرفة ما إذا كان عنصر الملحقات مدعوماً أم لا.
تضمين مراجع فئات سياق المصادقة لا حدد مرجع عنوان URI واحد أو أكثر لتحديد فئات سياق المصادقة. على سبيل المثال، للسماح للمستخدم بتسجيل الدخول باستخدام اسم المستخدم وكلمة المرور فقط، قم بتحديد القيمة إلى urn:oasis:names:tc:SAML:2.0:ac:classes:Password. للسماح بتسجيل الدخول من خلال اسم المستخدم وكلمة المرور عبر جلسة عمل محمية (SSL/TLS)، حدد PasswordProtectedTransport. انظر وثائق موفر الهوية للحصول على إرشادات حول URIs AuthnContextClassRef المدعومة. حدد عدة URIs كقائمة محددة بفاصلة.
تضمين المعلومات الرئيسية لا يشير إلى ما إذا كان طلب مصادقة SAML يحتوي على المفتاح العام للشهادة عند تحديد ربط البيانات إلىHTTP-POST. القيم المحتملة: true أو false.
تضمين حل المطالبات في معالجة المطالبات لا بالنسبة لمطالبات الإدخال والإخراج، يتم تحديد إذا ما كان حل المطالبات مدرجاً في ملف التعريف الفني أم لا. القيم المحتملة: true، أو false (افتراضي). إذا كنت تريد استخدام محلل مطالبات في ملف التعريف الفني حدد القيمة إلى true.
تمكين تسجيل الخروج الفردي لا يشير إلى ما إذا حاول ملف التعريف التقني تسجيل الخروج من موفري الهوية الموحدين في أثناء تسجيل الدخول. للحصول على مزيدٍ من المعلومات، راجع Microsoft Azure Active Directory B2C session sign-out. القيم الممكنة: true (الافتراضي)، أو false.
إنفاذ المصادقة لا قم بإصدار قيمة إنفاذ المصادقة في طلب مصادقة SAML لتحديد ما إذا كان سيتم فرض معرف SAML الخارجية لمطالبة المستخدم للمصادقة أم لا. بشكل افتراضي يقوم Microsoft Azure Active Directory B2C بتحديد قيمة إنفاذ المصادقة إلى خطأ عند تسجيل الدخول الأولي. إذا تمت إعادة ضبط الجلسة (على سبيل المثال باستخدام prompt=loginفي OIDC)، يتم ضبط قيمة إنفاذ المصادقة على true. يؤدي إعداد عنصر بيانات التعريف كما هو موضح أدناه إلى فرض قيمة جميع الطلبات إلى موفر هوية خارجي. القيم المحتملة: true أو false.
اسم الموفر لا تمرير قيمة ProviderName في طلب مصادقة SAML.

مفاتيح تشفير

يشتمل عنصرCryptographicKeysعلى السمات التالية:

السمة مطلوب الوصف
توقيع الرسالة الخاصة بـ Saml نعم تستخدم شهادة X509 (مجموعة مفاتيح RSA) لتوقيع بيانات تعريف تطبيق SAML. يستخدم Microsoft Azure Active Directory B2C هذا المفتاح لتوقيع الطلبات وإرسالها إلى موفر الهوية.
فك تشفير تأكيد Saml لا* شهادة X509 (مجموعة المفاتيح RSA). يقوم موفر هوية SAML باستخدام الجزء العام من الشهادة لتشفير تأكيد استجابة SAML. يستخدم Microsoft Azure Active Directory B2C الجزء الخاص من الشهادة لفك تشفير التأكيد.

* مطلوب إذا كان IDP الخارجي يُشفر تأكيدات SAML.
عملية توقيع بيانات التعريف لا تستخدم شهادة X509 (مجموعة مفاتيح RSA) لتوقيع بيانات تعريف SAML. يستخدم Microsoft Azure Active Directory B2C المفتاح لتوقيع بيانات التعريف.

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

انظر المقالات التالية للحصول على أمثلة للعمل مع موفري هوية SAML في Microsoft Azure Active Directory B2C: