OAuth، الذي يرمز إلى "Open Authorization"، هو بروتوكول ترخيص مفتوح المعيار يمكّن تطبيقات العميل من الوصول بشكل آمن إلى الموارد المحمية نيابة عن المستخدمين دون مطالبتهم بمشاركة بيانات الاعتماد الخاصة بهم مع هذه التطبيقات. يتم اعتماد OAuth على نطاق واسع عبر العديد من قطاعات الصناعة - بدءًا من شبكات التواصل الاجتماعي ومواقع التجارة الإلكترونية إلى منصات التخزين السحابية وتطبيقات الشركات - نظرًا لمرونتها وقابلية التشغيل البيني وآليات الأمان القوية.
في سياق تطوير مواقع الويب، توفر OAuth إطارًا موثوقًا للمطورين لإنشاء وإدارة الاتصالات الآمنة بين تطبيقاتهم والخدمات الخارجية. وهذا يبسط إلى حد كبير عملية تنفيذ آليات المصادقة والترخيص، مما يوفر الوقت والجهد للمطورين مع ضمان خصوصية المستخدم وأمن البيانات.
لقد خضع OAuth لمراجعات متعددة مع مرور الوقت، وأحدث إصدار هو OAuth 2.0. إنه نتاج تعاون صناعي واسع النطاق يرتكز على مجموعة شاملة من المعايير والمبادئ التوجيهية وأفضل الممارسات التي تهدف إلى معالجة مجموعة واسعة من حالات الاستخدام وسيناريوهات النشر.
تتضمن المفاهيم الأساسية في OAuth ما يلي:
- مالك المورد: المستخدم الذي يمتلك الموارد المحمية ويتحكم فيها، ويتم تمثيله عادةً بحساب على النظام الأساسي لموفر الخدمة.
- العميل: التطبيق الذي يسعى للوصول إلى الموارد المحمية نيابة عن مالك المورد.
- خادم الموارد: الخادم الذي يستضيف الموارد المحمية.
- خادم التفويض: الخادم الذي يقوم بمصادقة مالك المورد ويصدر رموز الوصول إلى العميل، مما يمكّنه من الوصول إلى الموارد المحمية.
- رمز الوصول: سلسلة تمثل التفويض الممنوح للعميل من قبل مالك المورد. تتمتع رموز الوصول بعمر محدود ونطاقات محددة، مما يعني أنه لا يمكن استخدامها إلا لإجراءات معينة وضمن أطر زمنية محددة.
تتمثل الميزة الأساسية لـ OAuth في أنها تسمح لمالكي الموارد بمنح العملاء حق الوصول إلى مواردهم المحمية دون مشاركة بيانات الاعتماد الخاصة بهم (مثل أسماء المستخدمين وكلمات المرور). ويتم تحقيق ذلك من خلال عملية تُعرف باسم "التفويض المفوض"، والتي تتضمن عادةً الخطوات التالية:
- يقوم العميل بإعادة توجيه مالك المورد إلى خادم التفويض، ويطلب التفويض لإجراءات أو نطاقات محددة.
- يقوم مالك المورد بالمصادقة مع خادم التفويض والموافقة على طلب العميل.
- يصدر خادم التفويض رمز التفويض، والذي يتم إرساله مرة أخرى إلى العميل من خلال عنوان URI لإعادة التوجيه.
- يقوم العميل باستبدال رمز التفويض برمز وصول عن طريق تقديم طلب إلى خادم التفويض.
- يستخدم العميل رمز الوصول للوصول إلى الموارد المحمية من خادم الموارد.
إحدى الميزات الرئيسية لـ OAuth 2.0 هي دعمها "لأنواع المنح" المتعددة المصممة خصيصًا لأنواع مختلفة من العملاء وحالات الاستخدام. تحدد أنواع المنح هذه طرقًا محددة يحصل العملاء من خلالها على رموز الوصول، وهي تشمل:
- رمز التفويض: هذا النوع من المنح مناسب لتطبيقات الويب والهاتف المحمول التي يمكنها تخزين الأسرار بشكل آمن والتواصل مع خادم التفويض باستخدام قناة خلفية.
- ضمني: مصمم لتطبيقات الصفحة الواحدة (SPA) والعملاء الآخرين المستندين إلى وكيل المستخدم الذين لا يمكنهم تخزين الأسرار بشكل آمن ويتطلبون إصدار الرموز المميزة مباشرة من خلال القناة الأمامية.
- بيانات اعتماد كلمة مرور مالك المورد: تُستخدم في السيناريوهات التي يكون فيها العميل موثوقًا به ويمكنه الحصول على بيانات اعتماد مالك المورد وتخزينها بشكل آمن، كما هو الحال في سيناريوهات الترحيل أو مع عملاء الطرف الأول.
- بيانات اعتماد العميل: مناسبة للمصادقة من جهاز إلى جهاز (M2M) حيث يتصرف العميل نيابةً عن نفسه بدلاً من مالك مورد محدد.
يمكن للمطورين الذين يعملون مع النظام الأساسي AppMaster no-code دمج آليات المصادقة والترخيص المستندة إلى OAuth بسهولة باستخدام واجهات برمجة التطبيقات المخصصة وخدمات المصادقة الخاصة بـ AppMaster. وهذا يمكّنهم من تنفيذ وظيفة تسجيل الدخول الموحد (SSO)، أو ميزات تسجيل الدخول إلى الوسائط الاجتماعية، أو حتى إنشاء اتصالات آمنة بواجهات برمجة التطبيقات التابعة لجهات خارجية والخدمات السحابية التي تدعم OAuth. علاوة على ذلك، يتم إنشاء التطبيقات المبنية باستخدام AppMaster باستخدام تقنيات متوافقة مع معايير الصناعة مثل Go وVue3 وKotlin، مما يضمن التوافق وقابلية التشغيل البيني مع OAuth.
في الختام، OAuth هو بروتوكول ترخيص قوي وقابل للتكيف ومعتمد على نطاق واسع ويوفر مزايا كبيرة لمطوري مواقع الويب، لا سيما فيما يتعلق بالأمان وسهولة التكامل. من خلال الاستفادة من OAuth، يمكن للمطورين تقليل اعتمادهم على عمليات المصادقة والترخيص المخصصة والتي قد تكون غير آمنة، مما يؤدي إلى تطبيقات أكثر أمانًا تحمي بيانات المستخدم وتفرض سياسات صارمة للتحكم في الوصول.