SAML مقابل OIDC
SAML و OIDC هما البروتوكولان الأكثر شهرة للمصادقة المستخدمة في صناعة SSO. ستقارن هذه المقالة بين SAML و OIDC من حيث البنية والحالات العملية الخاصة بهما.
ما هو SAML؟
SAML (لغة ترميز تأكيد الأمان) هو معيار مفتوح قائم على XML لتبادل بيانات المصادقة والتفويض بين الأطراف المختلفة، خاصة بين مزود الهوية (IdP) ومزود الخدمة (SP). تمكّن SAML من SSO (Single Sign-On) على الويب مما يسمح للمستخدمين بالمصادقة مرة واحدة للوصول إلى تطبيقات متعددة. تُعد SAML بروتوكولًا ناضجًا حيث ظل موجودًا لفترة طويلة وتبنته الشركات بشكل واسع. بعض منصات SaaS الأكثر شهرة مثل Salesforce و Workday وMicrosoft Azure AD تدعم جميعها SAML SSO.
مكونات SAML
- مزود الهوية (IdP): الكيان الذي يصادق المستخدمين ويقدم معلومات الهوية لمزودي الخدمة.
- مزود الخدمة (SP): الكيان الذي يقدم الخدمات للمستخدمين ويعتمد على مزود الهوية لمصادقة المستخدمين.
- تصريحات SAML: وثائق قائمة على XML تحمل تفاصيل مصادقة المستخدم وتفويضه. بما في ذلك، بيانات المصادقة، وبيانات السمات، وبيانات قرار التفويض.
- بروتوكول SAML: يحدد صيغة الرسائل والقواعد لتبادل تصريحات SAML بين IdP و SP.
- روابط SAML: تحدد كيفية نقل رسائل SAML عبر بروتوكولات الاتصال المختلفة مثل HTTP POST، HTTP Redirect، إلخ.
- بيانات تعريف SAML: وثائق قائمة على XML تحتوي على معلومات تكوين IdP و SP. تشمل المفتاح العام، والنقاط النهائية، والروابط المدعومة التي تُستخدم لتأسيس الثقة بين IdP و SP.
- نقطة نهاية تسجيل الدخول الفردي: النقطة النهائية التي يُحول SP المستخدم إليها للمصادقة مع IdP.
- عنوان خدمة استهلاك التصريحات (ACS): النقطة النهائية التي يُرسل إليها IdP تصريح SAML بعد نجاح المصادقة.
كيف تعمل SAML؟
- تدفق تسجيل الدخول الفردي الذي يبدأه SP:
- تدفق تسجيل الدخول الفردي الذي يبدأه IdP:
مميزات SAML
- ناضج ومتبنى بشكل واسع: SAML هو بروتوكول ناضج ظل موجودًا لفترة طويلة وتبنته الشركات بشكل واسع.
- موحد: SAML هو معيار مفتوح يتم صيانته بواسطة OASIS، مما يضمن التوافق بين البائعين المختلفين.
- تسجيل الدخول الفردي: يمكّن SAML من تسجيل الدخول الفردي على الويب مما يسمح للمستخدمين بالمصادقة مرة واحدة للوصول إلى تطبيقات متعددة.
- إدارة مركزية للمستخدمين: يسمح SAML للمنظمات بإدارة هويات المستخدمين مركزيًا وفرض السياسات الأمنية بشكل متناسق.
تحديات SAML
- التعقيد: SAML هو بروتوكول معقد يتطلب فهمًا عميقًا لمفاهيم XML والأمان.
- الأداء: رسائل SAML قائمة على XML ويمكن أن تكون كبيرة. قد يكون تسليم وتحليل XML أبطأ مقارنة بصيغ الرموز مثل JSON Web Tokn (JWT).
- معيار قديم: SAML هو معيار أقدم مقارنة بـ OIDC ويعتبر أقل أمانًا.
- قفل البائعين: SAML هو بروتوكول خاص بالبائع، وقد يكون التحويل بين البائعين تحديًا.
ما هو OIDC؟
OIDC (OpenID Connect) هو طبقة الهوية المبنية على بروتوكول OAuth 2.0. مشابهًا لـ SAML، يُستخدم OIDC أيضًا لتبادل بيانات المصادقة والتفويض بين IdP و SP.
مقارنة بـ SAML، يُعتبر OIDC بروتوكولًا حديثًا وخفيف الوزن يكتسب شعبية في تطبيقات الويب الحديثة وتطبيقات الهواتف المحمولة. يستخدم OIDC JWT لنقل معلومات الهوية، وهو أكثر ضغطًا وأسهل في التعامل معه مقارنة بتصريحات SAML القائمة على XML. إنه شائع بشكل خاص في التطبيقات الموجهة للمستهلك وأمن API.
مكونات OIDC
- مزود الهوية (IdP): الكيان الذي يصادق المستخدمين ويقدم معلومات الهوية لمزودي الخدمات.
- الطرف المعتمد (RP): الكيان الذي يقدم الخدمات للمستخدمين ويعتمد على مزود الهوية لمصادقة المستخدمين. مثل تطبيقات الويب، والتطبيقات المحمولة، أو APIs.
- رموز OIDC: الرموز التي تحمل معلومات هوية المستخدم.
- رمز الهوية: رمز بصيغة JWT يحتوي على معلومات هوية المستخدم.
- رمز الوصول: رمز بصيغة JWT أو معتم غامض يمنح الوصول إلى الموارد المحمية.
- رمز التحديث: رمز يستخدم للحصول على رمز وصول جديد دون الحاجة إلى أن يعيد المستخدم المصادقة. يوفر تفويضًا طويل الأمد غير متصل بالإنترنت للـ RP.
- نقاط نهاية OIDC: النقاط النهائية المستخدمة للمصادقة وتبادل الرموز. بعض أهم النقاط النهائية هي:
- نقطة الاكتشاف: حيث يمكن للطرف المعتمد استرداد معلومات تكوين OIDC العامة من مزود الهوية.
- نقطة التفويض: حيث يرسل الطرف المعتمد طلب المصادقة.
- نقطة الرمز: حيث يطلب الطرف المعتمد من خادم التفويض الحصول على الرموز.
- نقطة معلومات المستخدم: حيث يمكن للطرف المعتمد استرداد معلومات ملف تعريف المستخدم.
- المجالات: يُعرف OIDC مجموعة من المجالات القياسية التي تحدد حقوق الوصول الممنوحة للطرف المعتمد. مثل
openid
،profile
،email
،address
، إلخ.
كيف يعمل OIDC؟
يوفر OIDC تدفقات متعددة تم تصميمها خصيصًا لاستخدامات حالة مختلفة. ها هي اثنان من التدفقات الأكثر شيوعًا لـ OIDC:
- تدفق رمز التفويض:
تدفق رمز التفويض هو التدفق الأكثر شيوعًا المستخدم في OIDC للتطبيقات الموجهة للمستهلك.
- تدفق بيانات اعتماد العميل:
يمكن استخدام تدفق بيانات اعتماد العميل للمصادقة غير المعتمدة على المستخدم(من جهاز إلى جهاز).
مميزات OIDC
- حديث وخفيف الوزن: يعتبر OIDC بروتوكولًا معاصرًا يستخدم رموز JWT القائمة على JSON، والتي هي أكثر ضغطًا وأسهل في التعامل معها مقارنة بتصريحات SAML القائمة على XML.
- تطبيقات موجهة للمستهلك: يتمتع OIDC بشعبية خاصة في التطبيقات الموجهة للمستهلك وأمن API.
- التوافق: مبني على قاعدة OAuth 2.0، يتمتع OIDC بتوافق مع منصات وأجهزة متنوعة.
- الأمان: يوفر OIDC طريقة أكثر أمانًا لمصادقة المستخدم وحماية API. يتضمن العديد من ميزات الأمان الحديثة مثل استعراض الرموز، إلغاء الرموز، إثبات المفتاح لتبادل الرمز (PKCE)، ويدعم تدفقات مصادقة مختلفة مكيّفة مع احتياجات الأمان المختلفة.
- سهولة الاستخدام: يعتبر OIDC أبسط في التنفيذ والتعامل مقارنة بـ SAML. إنه أكثر ملاءمة للمطورين وله مكتبات شاملة وSDKs للغات البرمجة والمنصات المتعددة.
تحديات OIDC
- إدارة الرموز: يعتمد OIDC على الرموز للمصادقة والتفويض. يتطلب اتباع ممارسات إدارة الرموز الصحيحة لضمان الأمان.
- التعقيد: على الرغم من أن OIDC بسيط في الإعدادات الأساسية، فإنه نظراً لطبيعته المرنة، يمكن أن يضيف التعقيد عند تنفيذ التخصيصات المتقدمة. مثل المطالبات المميزة، والتحكم في الوصول بناءً على الدور (RBAC)، إلخ.
- التبني: ما زال OIDC جديدًا نسبيًا مقارنة بـ SAML، خاصة في الفضاء المؤسسي. قد تعتمد بعض الأنظمة القديمة لا تزال على SAML لأغراض SSO.
مقارنة بين SAML و OIDC
الجانب | SAML | OIDC |
---|---|---|
صيغة الرمز | تصريحات SAML قائمة على XML | رموز JWT قائمة على JSON |
حالة الاستخدام الرئيسية | SSO المؤسسة، تكاملات B2B | تطبيقات موجهة للمستهلك، أمن API |
سهولة الاستخدام | معقد، يتطلب فهم عميق لـ XML | بسيط، قائم على JSON، سهل التنفيذ |
التبني | متبنى بشكل واسع من الشركات | شعبية متزايدة للتطبيقات الحديثة |
الأمان | ناضج لكن يعتبر أقل أمانًا | حديث، وأكثر أمانًا |
المرونة | محدودة، مصممة لحالات استخدام SSO | مرن، يدعم أنواع استخدام متنوعة |
مستقبل SAML و OIDC
يُستخدم SAML و OIDC بشكل واسع لأغراض المصادقة والتفويض.
يظل SAML ركيزة أساسية لتسجيل الدخول الفردي للمؤسسات وتكاملات B2B. دعمه القوي لإدارة الهويات الموزعة وتاريخه المثبت يضمن استمراريته، خاصة للأنظمة القديمة والمنظمات الكبيرة.
من ناحية أخرى، يستمر OIDC في التطور بفضل الطلب على مصادقة آمنة وقابلة للتوسع في التطبيقات الحديثة. طبيعته الخفيفة وملاءمته مع APIs والخدمات الصغيرة تجعله ركيزة أساسية للهياكل السحابية والهيكليات الموزعة. مع صعود المصادقة بدون كلمة مرور، والقياسات الحيوية، والمصادقة متعددة العوامل (MFA)، من المتوقع أن يتم دمج OIDC بسلاسة مع التقنيات الناشئة، مما يضمن استمراريته للمستقبل.