ما تحتاج لمعرفته حول OAuth2 وتسجيل الدخول باستخدام Facebook

نشرت: 2022-03-10
ملخص سريع ↬ يجعل OAuth2 من السهل على المستخدمين تسجيل الدخول إلى تطبيقك ، وعدم الاضطرار إلى تذكر كلمة مرور لكل موقع ويب ، والثقة في أمانك. يسيطر OAuth2 على الصناعة حيث لا يوجد بروتوكول أمان آخر يقترب من اعتماد OAuth2.

إذا كنت تتساءل عن ماهية OAuth2 ، فهو البروتوكول الذي يمكّن أي شخص من تسجيل الدخول بحسابه على Facebook. يعمل على تشغيل زر "تسجيل الدخول باستخدام Facebook" في التطبيقات وعلى مواقع الويب في كل مكان.

يوضح لك هذا المقال كيفية عمل "تسجيل الدخول باستخدام Facebook" ويشرح البروتوكول الذي يقف وراءه كله. ستتعرف على سبب رغبتك في تسجيل الدخول باستخدام Facebook أو Google أو Microsoft أو إحدى الشركات العديدة الأخرى التي تدعم OAuth2.

يوضح لك هذا المقال كيفية عمل "تسجيل الدخول باستخدام Facebook" ويشرح البروتوكول الذي يقف وراءه كله. ستتعرف على سبب رغبتك في تسجيل الدخول باستخدام Facebook أو Google أو Microsoft أو إحدى الشركات العديدة الأخرى التي تدعم OAuth2.

سننظر في مثالين: لماذا يستخدم Spotify Facebook للسماح لك بتسجيل الدخول إلى تطبيق Spotify للجوال ، ولماذا يستخدم Quora Google و Facebook للسماح لك بتسجيل الدخول إلى موقعه على الويب.

مزيد من القراءة على SmashingMag:

  • أربع طرق لإنشاء تطبيق جوال
  • كيفية بناء واجهات مستخدم صادقة ومساعدة المستخدمين على اتخاذ قرارات أفضل
  • الحفاظ على شعبية تطبيق Android الخاص بك بعد الإطلاق
  • قوائم تشغيل Spotify لدعم جلسات البرمجة والتصميم
المزيد بعد القفز! أكمل القراءة أدناه ↓

قبل OAuth2

ربح OAuth2 معركة معايير قبل بضع سنوات. إنه بروتوكول المصادقة الوحيد الذي يدعمه كبار البائعين. توصي Google باستخدام OAuth2 لجميع واجهات برمجة التطبيقات الخاصة بها ، ولا تدعم واجهة برمجة تطبيقات الرسم البياني في Facebook سوى OAuth2.

أفضل طريقة لفهم OAuth2 هي النظر إلى ما جاء قبله ولماذا احتجنا إلى شيء مختلف. بدأ كل شيء بالمصادقة الأساسية.

المصادقة الأساسية

تركز أنظمة المصادقة على سؤالين رئيسيين: من أنت؟ وهل يمكنك إثبات ذلك؟

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

المصادقة الأساسية كانت أول مخطط مصادقة الويب. يبدو الأمر مضحكًا ولكن "المصادقة الأساسية" كان اسمه الفعلي في المواصفات التي نُشرت لأول مرة في عام 1999.

يسمح Basic Auth لخوادم الويب بالمطالبة ببيانات الاعتماد هذه بطريقة تفهمها المتصفحات. يقوم الخادم بإرجاع رمز استجابة HTTP من 401 (مما يعني أن المصادقة مطلوبة) ويضيف رأسًا خاصًا إلى الاستجابة ، يسمى WWW-Authenticate ، مع قيمة خاصة لـ Basic .

عندما يرى المتصفح رمز الاستجابة هذا وهذا العنوان ، فإنه يعرض مربع حوار تسجيل دخول منبثق:

مربع حوار تسجيل الدخول الأساسي للمصادقة
مربع حوار تسجيل الدخول الأساسي للمصادقة

الجزء الأكبر في Basic Auth هو بساطته. ليس عليك كتابة شاشة تسجيل الدخول. يعالج المتصفح كل ذلك ويرسل فقط اسم المستخدم وكلمة المرور إلى الخادم. كما أنه يمنح المتصفح فرصة للتعامل بشكل خاص مع كلمة المرور ، سواء من خلال تذكرها للمستخدم أو الحصول عليها من مكون إضافي تابع لجهة خارجية أو أخذ بيانات اعتماد المستخدم من نظام التشغيل الخاص به.

الجانب السلبي هو أنك لا تتحكم في شكل وشكل شاشة تسجيل الدخول. هذا يعني أنه لا يمكنك تصميمه أو إضافة وظائف جديدة ، مثل "هل نسيت كلمة المرور؟" رابط أو خيار لإنشاء حساب جديد. إذا كنت تريد المزيد من التخصيص ، فسيتعين عليك كتابة نموذج تسجيل دخول مخصص.

نماذج تسجيل الدخول المخصصة

تمنحك نماذج تسجيل الدخول المخصصة كل التحكم الذي تريده. تكتب نموذج HTML وتطالب ببيانات الاعتماد. يمكنك بعد ذلك إرسال النموذج والتعامل مع تسجيل الدخول بالطريقة التي تريدها. يمكنك الحصول على تحكم كامل: يمكنك تصميمه أو طلب مزيد من التفاصيل أو إضافة المزيد من الروابط.

تستخدم بعض مواقع الويب ، مثل WordPress ، نموذجًا بسيطًا لشاشة تسجيل الدخول:

شاشة تسجيل الدخول في ووردبريس
شاشة تسجيل الدخول في ووردبريس

يتيح LinkedIn للمستخدمين تسجيل الدخول أو إنشاء حساب على نفس الصفحة ، دون الحاجة إلى الانتقال إلى جزء آخر من موقع الويب:

شاشة تسجيل الدخول على LinkedIn
شاشة تسجيل الدخول إلى LinkedIn (عرض النسخة الكبيرة)

يحظى تسجيل الدخول المستند إلى النموذج بشعبية كبيرة ، ولكن به مشكلة أساسية رئيسية: يتعين على المستخدمين إخبار موقع الويب بكلمة المرور الخاصة بهم.

الحفاظ على الأسرار سرية

في الدوائر الأمنية ، نطلق على كلمة المرور سرًا. إنها معلومة تمتلكها أنت فقط وتثبت أنك أنت. يمكن أن يكون السر أيضًا أكثر من مجرد كلمة مرور ؛ سنتحدث أكثر عن ذلك بعد قليل.

يمكن لأي موقع ويب اتخاذ جميع الإجراءات الأمنية في العالم ، ولكن إذا شارك المستخدم كلمة المرور الخاصة به ، فسيختفي هذا الأمان. اخترق المتسللون موقع Gawker في عام 2010 ، وكشفوا كلمات مرور العديد من المستخدمين. بينما كانت هذه مشكلة لـ Gawker ، إلا أن المشكلة لم تتوقف عند هذا الحد. يعيد معظم الأشخاص استخدام كلمات المرور ، لذلك أخذ المتسللون البيانات المسربة من Gawker وحاولوا تسجيل الدخول إلى مواقع الويب الأكثر أهمية ، مثل Gmail و Facebook و eBay. أي شخص يستخدم كلمة مرور Gawker لأشياء أكثر أهمية فقد الكثير أكثر من الشائعات الأخيرة حول شريط Hulk Hogan الجنسي.

إن التأكد من عدم قيام المستخدمين بإعادة استخدام كلمة مرور لحسابات متعددة هو النصف الأول من المشكلة - وهو مستحيل. طالما يتعين على الأشخاص إنشاء حسابات مختلفة عبر الإنترنت ، فسيعيدون استخدام كلمات المرور الخاصة بهم.

النصف الثاني من المشكلة هو تخزين كلمات المرور بشكل آمن.

عندما يقوم شخص ما بتسجيل الدخول إلى تطبيقك ، فأنت بحاجة إلى التحقق من كلمة المرور الخاصة به ، وهذا يعني أنك بحاجة إلى نسخة للتحقق منها. يمكنك تخزين جميع أسماء المستخدمين وكلمات المرور في قاعدة بيانات في مكان ما ، ولكنك الآن تخاطر بفقدان كلمات المرور هذه أو التعرض للاختراق. أفضل ممارسة هي استخدام دالة تجزئة ، مثل إحدى وظائف SHA-2. تقوم هذه الوظيفة بتشفير البيانات بطريقة لا يمكنك استعادتها أبدًا ، ولكن يمكنك تكرار التشفير: سيتم تجزئة "كلمة المرور الخاصة بي" إلى شيء مثل bb14292d91c6d0920a5536bb41f3a50f66351b7b9d94c804dfce8a96ca1051f2 كل مرة.

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

OAuth2

من المحتمل أنك لست خبيرًا أمنيًا. حتى لو كنت كذلك ، ما زلت لا أثق بك بشأن كلمة المرور الخاصة بي. يمنحك OAuth2 طريقة أفضل.

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

نادرًا ما أسجل الدخول إلى Spotify ، لذلك لا أريد إنشاء حساب آخر ولا بد لي من تذكر كلمة مرور أخرى. يعطيني Spotify خيارًا أفضل:

شاشة تسجيل الدخول في Spotify مع خيار _Log in with Facebook_
شاشة تسجيل الدخول في Spotify مع خيار "تسجيل الدخول باستخدام Facebook" (عرض الإصدار الكبير)

يمكنني استخدام حسابي على Facebook لتسجيل الدخول. عندما أضغط على هذا الزر ، يرسلني Spotify إلى facebook.com ، وأقوم بتسجيل الدخول هناك. قد يبدو هذا وكأنه تفصيل صغير ، لكنه أهم خطوة في العملية برمتها.

شاشة تسجيل الدخول إلى Facebook لـ Spotify
شاشة تسجيل الدخول إلى Facebook لـ Spotify (عرض النسخة الكبيرة)

كان بإمكان مبرمجي Spotify كتابة نموذج تسجيل الدخول بأنفسهم ثم إرسال اسم المستخدم وكلمة المرور الخاصين بي إلى Facebook باستخدام واجهة برمجة تطبيقات خلفية ، ولكن هناك سببان رئيسيان لعدم رغبتي في القيام بذلك:

  • لا أثق في Spotify باستخدام كلمة مرور Facebook الخاصة بي. أنا أستخدم Facebook للتواصل مع الأصدقاء ولا أريد أن أتعرض للاختراق. لا أثق في أن Spotify سيتعامل مع كلمة المرور بشكل صحيح. أنا أيضًا لا أثق في أنه سيتجنب إغراء فعل شيء مضحك به. ربما سيحاول تخزينه حتى يتمكن من استخدامه لاحقًا. ربما يحتوي على خطأ يكتبه في ملف في مكان ما قبل إرساله إلى Facebook ، حتى يتمكن المتسلل من الاستيلاء عليه. أنا آسف سبوتيفي. أنا فقط لست من النوع الواثق.
  • لا أريد السماح لـ Spotify بفعل كل شيء. أريد من Spotify تشغيل الموسيقى. لا أريد أن أنشر على جدران أصدقائي عندما أستمع إلى Spice Girls. كما أنني لا أرغب في السماح لها بتنزيل قائمة أصدقائي وإخبارهم بالانضمام إلى Spotify. إذا أعطيت Spotify كلمة مرور Facebook الخاصة بي ، فيمكنه تسجيل الدخول باسمي على Facebook ؛ يمكن أن تفعل أي شيء يمكنني القيام به.

هناك أيضًا سببان رئيسيان لعدم رغبة Spotify في القيام بذلك:

  • لدى Facebook خيارات متعددة لتسجيل الدخول .. يمكنني إما تسجيل الدخول باستخدام اسم المستخدم وكلمة المرور الخاصين بي أو يمكنني تسجيل الدخول باستخدام تطبيق Facebook. يمكنني أيضًا استرداد كلمة المرور الخاصة بي من Facebook أو الحصول على مساعدة لا يستطيع Spotify إعطائي إياها. إذا أعطيت Spotify كلمة المرور الخاصة بي للتو ، فلن أحصل على أي من هذه الخيارات.
  • قد لا يكون سري كلمة المرور الخاصة بي. . تعد كلمة المرور أمانًا كافيًا لحساب Spotify الخاص بي الذي تبلغ قيمته 10 دولارات شهريًا ، ولكنها قد لا تكون كافية لمصرفي أو شيء أكثر أهمية. هناك الكثير من الأسرار الأخرى التي يمكنني تقديمها: قد يكون لدي بطاقة ذكية ، أو ربما أعيش في فيلم Mission Impossible وأستخدم ماسحًا لشبكية العين.

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

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

Facebook ليس مزود OAuth2 الوحيد. عندما أقوم بتسجيل الدخول إلى Quora باستخدام حساب Google الخاص بي ، تخبرني Google بما يود Quora القيام به ويسأل عما إذا كان ذلك جيدًا:

مربع حوار الخطوة 2 لعملية Google Quora OAuth2
مربع حوار الخطوة 2 لعملية Google و Quora OAuth2

قد أكون على ما يرام مع السماح لـ Quora بعرض عنوان البريد الإلكتروني الخاص بي وبيانات ملف التعريف الأساسية الخاصة بي ، لكنني لا أريده أن يدير جهات الاتصال الخاصة بي. يُظهر لي OAuth2 كل الوصول الذي يريده Quora ، مما يسمح لي باختيار واختيار ما أمنح الوصول إليه.

إذن ، هذه هي مزايا OAuth2. دعونا نرى كيف يعمل.

كيف يعمل OAuth2

يتعامل Facebook و Google ومعظم موفري OAuth2 الآخرين مع العملاء الأصليين بشكل مختلف عن عملاء الويب. يعتبر العملاء الأصليون أكثر أمانًا ، ويحصلون على الرموز المميزة ورموز التحديث التي يمكن أن تستمر لأشهر. يحصل عملاء الويب على رموز أقصر بكثير ، والتي تنتهي عادةً عندما يغلق المستخدم المتصفح أو لم ينقر على موقع الويب لفترة من الوقت.

في كلتا الحالتين ، فإن عملية تسجيل الدخول هي نفسها. يكمن الاختلاف في عدد المرات التي يحتاجها المستخدم لتصفحها.

يتبع تسجيل الدخول إلى OAuth2 الخطوات العامة التالية:

  1. يحاول المستخدم القيام بشيء يتطلب المصادقة. قد يكون هذا بسيطًا مثل فتح تطبيق أو النقر فوق زر "تسجيل الدخول".
  2. يحدد التطبيق أو موقع الويب أن المستخدم لم يسجل الدخول بعد ويبدأ عملية تسجيل الدخول. يقوم بذلك عن طريق فتح صفحة ويب وإرسالها إلى عنوان URL خاص على Facebook أو Google أو أي موقع ويب آخر يوفر OAuth2 الخاص بك.

يعد فتح نافذة متصفح جديدة لموفر OAuth2 خطوة حاسمة. هذا ما يسمح للموفرين بإظهار نماذج تسجيل الدخول الخاصة بهم ومطالبة كل مستخدم بأي معلومات تسجيل دخول يحتاجون إليها. تقوم معظم التطبيقات بذلك باستخدام طريقة عرض ويب مضمنة.

إلى جانب عنوان URL لتسجيل الدخول الخاص بالموفر ، تحتاج إلى إرسال بعض معلمات URL التي تخبر الموفر عن هويتك وما تريد القيام به:

  • client_id هذا يخبر موفر OAuth2 ما هو تطبيقك. ستحتاج إلى تسجيل تطبيقك مسبقًا للحصول على معرّف العميل.
  • redirect_uri يخبر هذا المزود بالمكان الذي تريد الذهاب إليه عند الانتهاء. بالنسبة إلى موقع الويب ، يمكن أن يعود هذا إلى الصفحة الرئيسية ؛ يمكن لتطبيق محلي الانتقال إلى صفحة تغلق عرض الويب.
  • response_type يخبر هذا المزود بما تريد استعادته. عادةً ما تكون هذه القيمة إما token ، للإشارة إلى أنك تريد رمز وصول أو code للإشارة إلى أنك تريد رمز وصول. قد يقوم الموفرون أيضًا بتوسيع هذه القيمة لتوفير أنواع أخرى من البيانات.
  • scope يخبر هذا الموفر بما يريد تطبيقك الوصول إليه. هذه هي الطريقة التي تعرف بها Google أن Quora يطلب الوصول لإدارة جهات الاتصال الخاصة بك. لكل مزود مجموعة مختلفة من النطاقات.

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

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

كل شيء عن الرموز

عند اكتمال العملية ، سيعطيك الموفر رمزًا مميزًا ونوعًا مميزًا. هناك نوعان من الرموز: رموز الوصول ورموز التحديث. سيحدد نوع العميل الذي لديك أنواع الرموز المميزة التي يُسمح لك بطلبها.

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

عندما تنتهي مهلة رمز الوصول (عادةً ، في غضون ساعة إلى ساعتين) ، يمكن لـ Spotify استخدام رمز التحديث للحصول على رمز جديد.

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

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

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

استخدام OAuth2 في تطبيقك

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

يحتوي iOS على دعم مدمج لـ OAuth2. يحتوي Corrina Krych على برنامج تعليمي مفيد للغاية حول استخدام OAuth 2.0 مع Swift. يرشدك إلى كيفية الحصول على رمز ، وكيفية دمج طرق العرض في التطبيق الخاص بك ومكان تخزين الرموز الخاصة بك.

يحتوي Android أيضًا على دعم مدمج لـ OAuth2. يجب أن أعترف أنني لست على دراية بها لأنني أركز على iOS ، ولكن هناك بعض الأقسام الجيدة في الوثائق لتظهر لك أمثلة وبعض المكتبات مفتوحة المصدر لتسهيل الأمر.

لا يحتوي JavaScript على دعم مضمن لـ OAuth2 ، ولكن هناك عملاء لجميع مكتبات JavaScript الرئيسية. React يدعم بشكل كامل OAuth2. AngularJS لديها دعم من جهة خارجية لـ OAuth2.0 للعديد من المشاريع. حتى أنني كتبت واحدة منهم.

بمجرد أن يكون لديك عميل OAuth2 ، ستحتاج إلى اختيار مزود.

بمن تثق؟

الافتراض الكبير هنا هو أنني أثق في Facebook أكثر من Spotify. ليس لدي سبب وجيه لذلك. لا يعلن Facebook عن أمنه الداخلي علنًا ، ولا توجد طريقة جيدة لمراجعته. ولا Spotify كذلك. لا توجد تقارير المستهلك لأمان OAuth2. أنا أثق بشكل أساسي في Facebook لأنه أكبر. أنا أثق في Facebook لأن الآخرين يفعلون ذلك.

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

لا يجب أن أثق في Facebook ، لكن يجب أن أثق بشخص ما. شخص ما يجب أن يصادق علي. أحتاج إلى اختيار المزود الذي أثق به.

اختيار موفر OAuth2

تحتفظ Wikipedia بقائمة بموفري OAuth ، لكنك لن تهتم بمعظمهم. أكبرها فيسبوك وجوجل. قد ترغب أيضًا في إلقاء نظرة على Amazon أو Microsoft.

كل أربعة منهم كبيرة ويسهل الاندماج معها. يوفر Facebook إرشادات لتسجيل التطبيق. جوجل لديها خطوات مماثلة. الفكرة الأساسية هي إنشاء حساب مطور ثم إنشاء معرف التطبيق. يمنحك الموفر بعد ذلك معرف العميل الذي يمكنك استخدامه لتقديم الطلبات.

يمكنك أيضًا اختيار عدة موفرين. يسمح لك Quora بتسجيل الدخول باستخدام Facebook أو Google ؛ نظرًا لأن كلاهما يستخدم OAuth2 ، يمكنك استخدام نفس الرمز لكليهما.

ما هو مفقود من OAuth2

يقوم OAuth2 بعمل جيد جدًا في حل مشكلة معقدة ، لكنه يفتقد إلى أمرين:

  • المعيار ليس قياسيًا تمامًا. لم أتمكن مطلقًا من كتابة عميل OAuth2 واحد يمكنه تسجيل الدخول إلى كل من Facebook و Google بدون بعض عبارات if . يفسر كل منها المواصفات بشكل مختلف ، وهناك القليل من التفاصيل المتباينة لكل منها. لديهم أيضًا دائمًا أفكارًا مختلفة حول النطاقات التي يجب تقديمها. يساعد استخدام مكتبة للتكامل مع OAuth2 كثيرًا في حل هذه المشكلة ، لكنها لن تكون أبدًا شفافة بنسبة 100٪ في كود تطبيقك.
  • تسجيل الخروج صعب. . يحتوي كل تطبيق أو موقع ويب يستخدم OAuth2 على زر تسجيل الخروج ، ولكن معظمهم سينسى فقط الرموز المميزة دون إبطالها. سوف ينسى التطبيق جميع الرموز المميزة الحالية الخاصة بك ويسمح لشخص آخر بتسجيل الدخول ، لكن الرموز المميزة الخاصة بك لا تزال صالحة. إذا سرق أحد المتطفلين الرمز المميز الخاص بك ، فلا يزال بإمكانهم استخدامه وتسجيل الدخول باسمك.

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

للدفاع عن OAuth2 ، هذه مشكلة صعبة ، لأن العديد من مقدمي الخدمة يستخدمون تشفير المفتاح العام لإنشاء رموز عديمة الحالة. هذا يعني أن الخادم لا يتذكر الرموز المميزة التي أنشأها ، لذلك لا يمكنه نسيانها لاحقًا.

المشكلة الرئيسية الأخرى في OAuth2 هي أنك تعتمد على مزود الخدمة الخاص بك. عندما يتعطل Facebook ، ينخفض ​​أيضًا زر "تسجيل الدخول باستخدام Facebook" في تطبيقك. إذا قررت Google بدء فرض رسوم عليك لدعم OAuth2 أو طلبت منك مشاركة أرباحك معها ، فلا يوجد ما يمكنك فعله. هذا هو السيف ذو الحدين للثقة في مزود: إنهم يفعلون الكثير من أجلك ، لكنهم يتحكمون في المستخدمين لديك.

OAuth2 يدير العالم

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

أنت الآن تعرف من أين يأتي OAuth2 وكيف يعمل. اذهب واتخذ قرارات ذكية بشأن من تثق به ، وتوقف عن قراءة مقالات حول التخزين الآمن لكلمات المرور المشفرة ، واقض المزيد من وقتك في كتابة تطبيقك المذهل.