OpenID OAuth security authentication authroization SSO

OpenID Connect

ال OpenID Connect هو واحد من أشهر طرق الـ User Authentication وأكثرها فعالية ومع ذلك فكرة عمله بسيطة جدًا فورقة وقلم وتعالوا نتعرف إزاي ال OpenID Connect بيشتغل و إيه الفرق بينه وبين الـ OAuth

تم التحديث في 2024-07-25
تعديل على GitHub
OpenID Connect

ال OpenID Connect هو واحد من أشهر طرق الـ User Authentication وأكثرها فعالية ومع ذلك فكرة عمله بسيطة جدًا فورقة وقلم وتعالوا نتعرف إزاي  ال OpenID Connect بيشتغل و إيه الفرق بينه وبين الـ OAuth


OpenID Connect

الـ OpenID Connect هو Identity Layer فوق الـ OAuth2. ولكن اللي يهمنا حاليًا عن الـ OAuth إنهUser Authorization Method فتركيزه الأساسي بيكون على “صلاحيات الوصول”  Access Rights ودا عن طريق “تفويض” الـ Third Party App إنه يوصل للمعلومات اللي محتاجها عن ال User أو يدير موارد محددة للـ User بدون معرفة كلمة السر الخاصة بيه ولذلك الـ OAuth مش بنستخدمه عشان نعمل Login ولكن بنستعمله للوصول لصلاحيات معينة في موقع تاني.

الـ OpenID Connect هيتيح لينا نفس المميزات ولكن هيحتاج يعرف هوية المستخدم وبياناته الشخصية عشان يتأكد من هويته.

مقارنة بين الـ OAuth والـ OpenID Connect

وجه المقارنةOAuthOpenID Connect
الهدفإدارة صلاحيات الوصول Authorisationالتأكد من هوية المستخدم Authentication
علاقتهما ببعضيمكن استعماله بمفردهمبني على الـ OAuth
ال Tokens المستعملةAccess token, Refresh TokenAccess Token, Refresh Token, ID Token
الاستخداماتإعطاء صلاحيات الوصول للمواردUser Authentication, SSO (Single Sign-On)

هنلاحظ دايما واحنا بنعمل تسجيل في أي موقع إن فيه كذا طريقة ممكن من خلال الـ Email والـ Password أو من خلال مثلا نستعمل Google / GitHub / Facebook وده اللي بقينا نشوفه حاليا في أغلب المواقع.

فالطرق التقليدية للـ User Authentication اللي بنضطر فيها مثلا ندخل الـ Email والـ Password كان بيوجد طرفين فقط هما الـ User والـ Website والـ Website بيتحقق بنفسه من هوية المستخدم ويستخرج الـ Access والـ Identity Tokens بنفسه.

ولكن في حالة استخدام الموقع للـ OpenID Protocol فهو بيفوض مهمة التأكد من الهوية دي للـ OpenID Provider وكذلك عملية إصدار الـ Tokens اللي هيتم استخدامها في عملية التواصل بين الموقع والمستخدم.

الـ Access Token وكذلك الـ Identity Tokens عادة ما يكونوا في صيغة JWT Tokens.


الاستخدامات المثلى لكلا من الـ OpenID Connect والـ OAuth بتكون في حالات التعامل مع Third Party لأنهم يسمحوا للـ Third Party يستخدم جزء من البيانات الخاصة بالمستخدم في موقعك أو إتاحة  SSO وهي اختصار لـ Single Sign-On.

لكن استخدام OpenID Connect كوسيلة الـ Authentication الأساسية والموقع لا يتعامل مع طرف ثالث هيكون إضافة تعقيد بلا هدف!


أمثلة عملية على OpenID Connect

  • الـ Google Sign-In: يتيح للمستخدمين تسجيل الدخول إلى تطبيقات الطرف الثالث باستخدام حساب Google الخاص بهم.
  • الـ Microsoft Azure AD: يوفر تسجيل دخول موحد وخدمات مصادقة للتطبيقات التي تستخدم خدمات Azure.
  • الـ GitHub OAuth: يتيح للمطورين تسجيل الدخول إلى تطبيقات وخدمات مختلفة باستخدام حساب GitHub الخاص بهم.

مواضيع ذات صلة
Network & Security

اشترك في النشرة البريدية

احصل على أحدث المحتوى والأخبار مباشرة في بريدك الإلكتروني

🔒 نحترم خصوصيتك. لن نشارك بريدك الإلكتروني مع أي طرف ثالث.