Apidog

منصة تطوير API تعاونية متكاملة

تصميم API

توثيق API

تصحيح أخطاء API

محاكاة API

اختبار API الآلي

OAuth 2.0: ما هو OAuth وكيف يعمل؟

تقدم هذه المقالة مقدمة عن OAuth 2.0، موضحة الأدوار والتدفقات والتوكنات وأفضل ممارسات التنفيذ التي تتيح الوصول المفوض بشكل آمن.

Amir Hassan

Amir Hassan

Updated on نوفمبر 29, 2024

ظهر بروتوكول OAuth 2.0 كمعيار قياسي لـ التفويض في هذا المشهد المعقد، حيث يتيح إنشاء اتصالات موثوقة بين منصات متنوعة. تقدم هذه المقالة مقدمة حول OAuth 2.0، تشرح الأدوار، التدفقات، الرموز وأفضل الممارسات في التنفيذ التي تمكن من الوصول المصرح به بشكل آمن.

ما هو OAuth 2.0

OAuth 2.0 هو إطار تفويض يسمح للتطبيقات التابعة لجهات خارجية بالوصول إلى موارد المستخدم على الخادم دون الحاجة لمشاركة المستخدم لمعلومات اعتماده. يوفر طرقاً آمنة ومعيارية للمستخدمين لمنح الوصول إلى بياناتهم لتطبيقات أخرى، دون المساس بمعلومات تسجيل دخولهم.

OAuth 1 مقابل OAuth 2

أصبح OAuth 2.0 هو المعيار للتفويض، محسنًا عن النسخ السابقة مع أمان أفضل ومرونة وبساطة أكبر.

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

إليك نظرة سريعة على الاختلافات الرئيسية بين OAuth 1.0 وOAuth 2.0:

OAuth 1.0:

  • صدر في عام 2007.
  • يستخدم التوقيعات التشفيرية للتفويض. يجب أن يتم توقيع كل طلب باستخدام مفتاح سري وخوارزمية تجزئة.
  • يدعم التفويض ثلاثي الأطراف مع مفتاح المستهلك، السر التجاري، رمز الطلب، ورمز الوصول.
  • أنواع المنح الرئيسية هي للوصول إلى الموارد المحمية نيابة عن مالك المورد.
  • يعتبر أكثر تعقيداً لتوقيع كل استدعاء API.

OAuth 2.0:

  • صدر في عام 2012 كبديل أبسط.
  • يستخدم رموز الوصول مع تفويض رموز الحامل. تعمل الرموز كمفاتيح للوصول إلى الموارد.
  • يدعم التفويض رباعي الأطراف مع تدفق منح رمز التفويض للتطبيقات.
  • يحدد تدفقات تفويض محددة لتطبيقات الويب، تطبيقات الهاتف المحمول، إلخ.
  • يتضمن دعمًا أصليًا لرموز وصول JWT.
  • تنفيذات عميل أبسط بدون توقيعات لكل استدعاء.

OAuth 2.0 في Apidog

Apidog هو أداة قوية لإدارة واجهات برمجة التطبيقات مع واجهة مستخدم بديهية للحصول بسهولة على وإدارة رموز الوصول لـ OAuth 2.0. بنقرة واحدة، يمكنك الحصول على رمز وصول ويكون رأس الطلب مُعبئاً تلقائيًا. يتم عرض تاريخ انتهاء صلاحية الرمز بوضوح، ويمكنك تحديث الرمز بنقرة واحدة عند الحاجة، مما يجعله مريحًا جدًا لاختبار واجهات برمجة التطبيقات المعتمدة على OAuth 2.0.

زر

Google OAuth 2.0

تستخدم Google بروتوكول OAuth 2.0 للسماح للمستخدمين بمنح الوصول إلى بيانات حسابهم في Google لتطبيقات أو خدمات الجهات الخارجية دون الكشف عن اسم المستخدم وكلمة المرور الخاصة بهم. الدليل المفصل للرجوع إليه.

الأدوار الرئيسية لـ OAuth 2.0

يحدد OAuth 2.0 عدة أدوار رئيسية تشارك في عملية التفويض. كل دور له مسؤولياته الخاصة ويؤدي جزءًا حيويًا في ضمان أمان ووظائف بروتوكول OAuth 2.0. دعونا نلقي نظرة فاحصة على هذه الأدوار:

  1. مالك المورد: يمنح الوصول إلى الموارد المحمية.
  2. العميل: يطلب الوصول إلى الموارد نيابة عن المالك.
  3. خادم التفويض: يتحقق من هوية المالك ويصدر رموز الوصول.
  4. خادم المورد: يستضيف الموارد المحمية، يتحقق من صلاحية رموز الوصول.
  5. عميل المستخدم: الواجهة للمالك للتفاعل مع العميل وخادم التفويض.

كيف يعمل OAuth 2.0

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

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

مثال على OAuth 2.0

الهدف الرئيسي من OAuth 2.0 هو توفير طريقة آمنة وفعالة للمستخدمين لمنح الأذونات للتطبيقات الخارجية للوصول إلى مواردهم، مثل حسابات وسائل التواصل الاجتماعي، التخزين السحابي، أو خدمات الويب الأخرى. يلغي الحاجة إلى مشاركة المستخدمين لكلمات مرورهم مع التطبيقات الخارجية، مما يقلل من مخاطر سرقة الاعتماد والوصول غير المصرح به.

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

عملية تفويض OAuth 2.0

OAuth 2.0 هو إطار تفويض يسمح للمستخدمين بمنح الوصول إلى مواردهم على موقع إلكتروني واحد لموقع إلكتروني آخر دون مشاركة معلومات اعتماداتهم. يوفر طريقة آمنة ومعيارية للمستخدمين لتفويض التطبيقات الخارجية للوصول إلى بياناتهم على منصات متنوعة، مثل مواقع التواصل الاجتماعي أو خدمات التخزين السحابي.

يتكون تدفق تفويض OAuth 2.0 من عدة خطوات:

  1. المستخدم يبدأ العملية: يبدأ المستخدم عملية التفويض بالنقر على زر أو رابط مقدمة من التطبيق الخارجي. قد يكون هذا زر "تسجيل الدخول باستخدام Google" أو "الاتصال بـ Facebook".
  2. إعادة التوجيه إلى خادم التفويض: يتم إعادة توجيه المستخدم إلى خادم التفويض، المسؤول عن التحقق من هوية المستخدم والحصول على موافقته لمنح الوصول إلى الموارد المطلوبة.
  3. المستخدم يمنح التفويض: يعرض خادم التفويض للمستخدم شاشة موافقة، تشرح البيانات التي يطلب التطبيق الخارجي الوصول إليها. يمكن للمستخدم بعد ذلك اختيار منح أو رفض الوصول.
  4. يتم إصدار رمز التفويض: إذا منح المستخدم التفويض، ينشئ خادم التفويض رمز تفويض ويعيد توجيه المستخدم إلى عنوان URL الخاص بالتطبيق الخارجي، مع رمز التفويض.
  5. طلب رمز الوصول: يستخدم التطبيق الخارجي رمز التفويض لطلب رمز وصول من خادم التفويض. رمز الوصول هو اعتماد يسمح للتطبيق بالوصول إلى موارد المستخدم نيابة عن المستخدم.
  6. يتم إصدار رمز الوصول: إذا كان رمز التفويض صالحًا، يقوم خادم التفويض بإصدار رمز وصول للتطبيق الخارجي. يكون رمز الوصول عادة رمزًا طويل الأمد يمكن استخدامه لعمل طلبات واجهة برمجة التطبيقات نيابة عن المستخدم.
  7. الوصول إلى الموارد: يمكن الآن للتطبيق الخارجي استخدام رمز الوصول للوصول إلى موارد المستخدم على خادم المورد. يتحقق خادم المورد من رمز الوصول ويمنح الوصول إلى الموارد المطلوبة إذا كان الرمز صالحًا.
  8. رمز التحديث (اختياري): في بعض الحالات، قد يقوم خادم التفويض أيضًا بإصدار رمز تحديث مع رمز الوصول. يمكن استخدام رمز التحديث للحصول على رمز وصول جديد عند انتهاء صلاحية الحالي، دون الحاجة لجعل المستخدم يمر عبر عملية التفويض مرة أخرى.

يوفر تدفق تفويض OAuth 2.0 طريقة آمنة وسهلة الاستخدام للتطبيقات الخارجية للوصول إلى بيانات المستخدم دون التعامل المباشر مع اعتماده. يسمح للمستخدمين بالتحكم في التطبيقات التي يمكنها الوصول إلى بياناتهم ويقدم نهجًا موحدًا للتكامل مع منصات مختلفة.

الاعتبارات الأمنية لـ OAuth 2.0

يتيح OAuth 2.0 للتطبيقات الخارجية الوصول إلى موارد المستخدم دون اعتمادات، ولكن الأمن أمر حيوي. يجب تخزين ونقل المعلومات الحساسة مثل رموز الوصول، رموز التحديث، وأسرار العميل بشكل آمن عبر HTTPS. ينبغي أن تحدد ضوابط الوصول المناسبة الوصول. بالإضافة إلى ذلك، تساعد فترة صلاحية الرمز وإلغاؤه في منع الوصول غير المصرح به.

يقلل التحقق القوي من الهوية عن طريق بروتوكولات مثل OpenID Connect من المخاطر من خلال طلب التطبيقات العميلة التحقق باستخدام اعتمادات. يجب تأمين خادم التفويض نفسه من خلال تدابير مثل البرمجة الآمنة، التدقيق والمراقبة. بينما يوفر راحة لواجهات برمجة التطبيقات، يقدم OAuth 2.0 مخاطر يجب التخفيف منها من خلال إدارة الرموز، التحقق من الهوية، أمان خادم التفويض، وأفضل الممارسات الأخرى. معالجة هذه الاعتبارات تعزز الأمان العام.

OAuth 2.0: ما هو OAuth وكيف يعمل؟