0Pricing
Cyber Security Academy · درس

SAML والاتحاد

تسجيل الدخول الأحادي للمؤسسات.

SAML والاتحاد درس مجاني في Cyber Security Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cyber Security Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.

ما هو SAML

يُعد SAML (Security Assertion Markup Language) معيارًا قائمًا على XML لتبادل بيانات المصادقة والتفويض، وهو السائد في SSO للمؤسسات.

  • يتيح لموفّر هوية مؤسسي تأكيد هوية مستخدم لعدد كبير من التطبيقات.
  • يسبق SAML 2.0‏ OIDC زمنيًا، ولا يزال راسخًا في هوية الشركات وهوية الموظفين.

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

أدوار IdP وSP

يتكون اتحاد SAML من طرفين رئيسيين.

  • يقوم موفّر الهوية (IdP) بمصادقة المستخدم وإصدار التأكيدات (Okta وEntra ID وPing).
  • موفّر الخدمة (SP) هو التطبيق الذي يثق بموفّر الهوية ويمنح الوصول.

تُنشأ الثقة خارج القناة عبر تبادل البيانات الوصفية، بما في ذلك شهادات التوقيع وعناوين URL لنقاط النهاية.

IdP  -> authenticates user, signs assertion
SP   -> consumes assertion, grants access
Metadata exchange establishes trust (certs, ACS URLs)

تأكيد SAML

العنصر الأساسي هو التأكيد، وهو مستند XML يفيد بأن موفّر الهوية صادق على هوية مستخدم.

  • يحدد Subject المستخدم (NameID).
  • تحدد Conditions فترة الصلاحية والجمهور المقصود.
  • يسجل AuthnStatement كيفية حدوث المصادقة ووقتها.
  • يحمل AttributeStatement الأدوار والبريد الإلكتروني ومطالبات المجموعات.
<saml:Assertion>
  <saml:Subject><saml:NameID>user@corp</saml:NameID></saml:Subject>
  <saml:Conditions NotOnOrAfter="2026-06-04T10:05:00Z"
     AudienceRestriction="https://sp.example"/>
  <saml:AuthnStatement .../>
</saml:Assertion>

تدفق SSO الذي يبدأه SP

النمط الأكثر شيوعًا هو تدفق SSO الذي يبدأه SP.

  • يزور المستخدم SP، فينشئ AuthnRequest ويعيد التوجيه إلى موفّر الهوية.
  • يصادق موفّر الهوية المستخدم، ثم يرسل Response موقّعًا عبر POST إلى خدمة مستهلك التأكيد (ACS) لدى SP.
  • يتحقق SP من التأكيد وينشئ جلسة محلية.
1. SP -> AuthnRequest -> IdP (redirect)
2. user authenticates at IdP
3. IdP -> signed SAMLResponse -> SP ACS (HTTP POST)
4. SP validates -> session

توقيعات XML تثبّت الثقة

يستند أمان SAML إلى التوقيعات الرقمية لـ XML. يوقّع موفّر الهوية التأكيد (و/أو الاستجابة) باستخدام مفتاحه الخاص؛ ويتحقق SP باستخدام الشهادة الموثوقة.

  • وقّعوا التأكيد نفسه، وليس الاستجابة الخارجية فحسب.
  • تحققوا من التوقيع مقابل شهادة IdP المثبّتة من البيانات الوصفية، لا مقابل شهادة مضمنة في الرسالة.

تستهدف معظم هجمات SAML منطق التحقق من التوقيع.

هجوم تغليف توقيع XML (XSW)

يُعد تغليف توقيع XML فئة هجمات التوقيع الخاصة بـ SAML. يحتفظ المهاجم بعنصر موقّع بشكل صحيح، لكنه يضيف تأكيدًا مزورًا ثانيًا تقرأه منطقية التطبيق فعليًا.

  • يظل التوقيع صالحًا عند التحقق منه مقابل الجزء الأصلي.
  • لكن منطق الأعمال يعالج التأكيد المحقون غير الموقّع.

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

Document after XSW:
  <Response>
    <Assertion id="evil">attacker claims</Assertion>  // read by app
    <Assertion id="orig" SIGNED>real user</Assertion>  // sig valid here
  </Response>

قيود الجمهور والمستلم

يجب ربط التأكيد بـ SP المقصود. ويوفر SAML قيودًا صريحة لذلك.

  • تحدد AudienceRestriction معرّف كيان SP الذي يكون التأكيد صالحًا له.
  • يجب أن يطابق Recipient داخل SubjectConfirmation عنوان URL الخاص بـ ACS.

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

الحماية من إعادة الاستخدام ومشكلات التوقيت

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

  • التزموا بـ NotBefore وNotOnOrAfter مع السماح بانحراف ضئيل للساعة.
  • تتبّعوا ID الخاص بالتأكيد وارفضوا أي إعادة استخدام له ضمن فترة الصلاحية.
  • اشترطوا استخدام TLS في نقطة نهاية ACS.

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

SP checks:
  now in [NotBefore, NotOnOrAfter]  (+- small skew)
  assertion.ID not seen before -> store + reject reuse

الاتحاد وسلاسل الثقة

الاتحاد يوسّع نطاق SSO عبر الحدود التنظيمية، وأحيانًا من خلال محاور أو وسطاء يترجمون بين البروتوكولات.

  • كل رابط ثقة هو نقطة ضعف محتملة؛ إذ يستطيع IdP مخترَق انتحال شخصية كل مستخدم.
  • قد يربط وسطاء الهوية بين SAML وOIDC، مما يتطلب مطابقة دقيقة للمطالبات.

طبّقوا مبدأ أقل الصلاحيات على مطابقة السمات، وراقبوا ظهور تسجيلات SP جديدة وغير متوقعة.

نقاط ضعف SAML الشائعة

أنماط فشل متكررة في SAML تستحق التدقيق:

  • عدم التحقق من التوقيع، أو توقيع الاستجابة دون توقيع التأكيد.
  • القابلية لهجوم التفاف توقيع XML.
  • غياب عمليات التحقق من الجمهور/المستلم.
  • غياب الحماية من إعادة التشغيل أو استخدام نوافذ صلاحية طويلة بشكل مفرط.
  • تحليل كيانات XML الخارجية (XXE) على SP.
  • الثقة بالشهادة المضمّنة في الرسالة بدلًا من البيانات الوصفية المثبّتة.
Disable external entities in the XML parser:
  parser.setFeature(
    "http://apache.org/xml/features/disallow-doctype-decl", true)

SAML مقابل OIDC

كلاهما يوفّر SSO، لكنهما يختلفان في التصميم.

  • SAML يعتمد على XML، وعمليات ربط POST/redirect في المتصفح، وهو شائع في بيئات المؤسسات والقوى العاملة، مع أدوات ناضجة.
  • OIDC يعتمد على JSON/JWT، وملائم لـ REST، كما يناسب تطبيقات الأجهزة المحمولة وSPAs بدرجة أكبر.

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

تحقق سريع: إحباط XSW

اختاروا أفضل وسيلة دفاع ضد الهجوم الموصوف.

مراجعة: SAML والاتحاد

أهم النقاط:

  • SAML هو نظام SSO مؤسسي قائم على XML بين IdP وSP، ويستخدم التأكيدات الموقّعة.
  • يعتمد الأمان على التحقق الصحيح من توقيع XML مقابل شهادة مثبّتة.
  • احموا الأنظمة من التفاف توقيع XML وإعادة التشغيل وXXE.
  • طبّقوا دائمًا قيود الجمهور/المستلم ونوافذ الصلاحية.
  • يوسّع الاتحاد نطاق الثقة، لكنه يضاعف نطاق الضرر الناتج عن اختراق IdP.

الأسئلة الشائعة

هل درس «SAML والاتحاد» مجاني؟

نعم — نص درس «SAML والاتحاد» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cyber Security Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.

ماذا ستتعلم في «SAML والاتحاد»؟

تسجيل الدخول الأحادي للمؤسسات. تتمرن على Cyber Security Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cyber Security Academy؟

لا تُشترط خبرة سابقة. Cyber Security Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «SAML والاتحاد»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cyber Security Academy هذا؟

نعم. كل درس في Cyber Security Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تدفقات OAuth 2.0
  2. OpenID Connect (OIDC)
  3. SAML والاتحاد
  4. هجمات الرموز وتقويتها
← العودة إلى Cyber Security Academy