Logo Logo
GitHub Designed by Logto

ما هو منح OAuth 2.0؟

منح OAuth 2.0 هو عملية تفويض تُمكّن العميل (Client) من طلب رمز الوصول (Access token) من خادم التفويض (Authorization server) . قد تسمع أيضًا مصطلحات أخرى حول هذا المفهوم، لذا دعنا نوضحها قبل التعمق:

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

عملية منح OAuth 2.0 على مستوى عالٍ بسيطة للغاية:

بعد أن يتلقى العميل رمز الوصول، يمكنه استخدامه للوصول إلى الموارد المحمية (مثل، واجهات برمجة التطبيقات) نيابةً عن المستخدم أو بنفسه.

لاحظ أنه وفقاً للمنح المحدد، قد يقوم العميل وخادم التفويض بتبادل معلومات إضافية ويشملون خطوات أكثر في العملية. على سبيل المثال، يشمل منح رمز التفويض مصادقة (Authentication) وتفويض المستخدم، وتوليد الرمز، وتبادل الرموز.

المنح المختلفة في OAuth 2.0

تعرف مواصفة OAuth 2.0 الأساسية أربع منح يُمكن للعملاء استخدامها للحصول على رموز الوصول:

  1. منح رمز التفويض : المنح الأكثر أمانًا والمُوصى به لغالبية التطبيقات. يُفرض استخدام مفتاح إثبات تبادل الكود (Proof Key for Code Exchange, PKCE) لجميع العملاء في OAuth 2.1 .
  2. المنح الضمني : منح مبسط تم إيقافه في OAuth 2.1 بسبب مخاوف أمنية.
  3. منح معلومات اعتماد كلمة مرور مالك المورد (ROPC) : منح يتم فيه تبادل بيانات اعتماد المستخدم مباشرة للحصول على رمز وصول. لا يُوصى به لمعظم التطبيقات بسبب المخاطر الأمنية.
  4. منح معلومات اعتماد العميل : منح يُستخدم من قبل العملاء السريون للحصول على رمز وصول دون مشاركة المستخدم.

مع تطور الصناعة، يتم التخلي عن المنح الضمني وROPC لصالح تدفقات أكثر أمانًا وموحدة. للتطبيقات الجديدة، الخيارات واضحة:

منح أخرى في OAuth 2.0

بالإضافة إلى المنح الأربعة الأساسية، هناك امتدادات أخرى تحدد منحًا جديدة لحالات استخدام معينة. على سبيل المثال:

  • منح تفويض الأجهزة هو منح مصمم للأجهزة ذات القدرات الإدخال المحدودة، مثل أجهزة التلفزيون الذكية وأجهزة إنترنت الأشياء.
  • التدفق الهجين هو منح من OpenID Connect يجمع بين منح رمز التفويض والمنح الضمني.

المنح في OpenID Connect (OIDC)

في OpenID Connect (OIDC) ، يمتد مفهوم المنح ليشمل رموز المعرف التي تمثل معلومات هوية المستخدم بالإضافة إلى رموز الوصول. يضيف OIDC امتدادين لمنح OAuth 2.0 (رمز التفويض والضمني) ليشمل رموز المعرف، ويقدم منحًا جديدًا يسمى التدفق الهجين الذي يجمع بين كليهما.

مثل OAuth 2.0، يُوصى فقط باستخدام منح رمز التفويض مع PKCE في OIDC للمصادقة (Authentication) وتفويض المستخدم.

وفي نفس الوقت، نظرًا لأن OIDC مبني على أساس OAuth 2.0، يمكن استخدام منح أخرى مثل منح معلومات اعتماد العميل على نفس خادم التفويض، طالما أن الخادم يدعمها.

انظر أيضا