ما هو برنامج OAuth Connect وكيفية استخدامه
يتصل الكثير منا ببرنامج OAuth عند التصفح عبر الويب ، ولا يدرك معظمنا وجوده. OAuth (المصادقة المفتوحة) هو نظام يمنح مواقع الويب التابعة لجهات خارجية وصولاً محدودًا إلى حسابات المستخدمين ، مثل حسابات Twitter أو Facebook. فهو يتيح للزائرين التفاعل داخل الموقع دون الحاجة إلى تسجيل حساب جديد أو الإفراج عن اسم المستخدم وكلمة المرور إلى أطراف ثالثة.
في هذا الدليل ، أود تقديم مفهوم OAuth وكيف يمكن تطبيقه على المطورين. هناك الكثير من التفاصيل الفنية المتعلقة بتنفيذ تطبيق OAuth الخاص بك. سيتم كتابة مثالي في PHP باستخدام غلاف مكتبة Twitter ، ولكن يمكنك استخدام أي برمجة API تقريبًا من Python إلى Ruby أو Objective-C.
حتى لو كان المفهوم خفيًا ، فحاول الهضم قدر المستطاع. إنها لا تزال تقنية غامضة للغاية ، فقد تمت إعادة صياغتها مرة أخرى في عام 2007. بالتأكيد ، لم أفهم كيف يمكنني تطوير OAuth Connections كاملة حتى بعد دروسي القليلة الأولى ولكن إذا التزمت بها ، فستستمر في الصيام. الآن أول من ركلة الأشياء ، مقدمة صغيرة!
ما هي المشاكل التي يمكننا حلها?
إذا كنت تفكر في مدى اتصال الإنترنت الذي أصبح أكثر اتصالًا ، فمن المنطقي فقط أن المستخدمين سيرغبون في مشاركة المعلومات بين حسابات متعددة من Facebook إلى Twitter و Tumblr و شخصيات قصص الابطال الخارقين وحتى الآن في تطبيقات الأجهزة المحمولة مثل Path أو Instagram. المشكلة التي نواجهها الآن هي كيفية تحقيق ذلك بأكثر الطرق أمانًا وبساطة. 1.0 OAuth هي محاولة لحل هذا والعديد من المشاكل الأخرى ، مقارنة بمعايير OpenID الأقدم. لا يزال المستخدمون يدخلون اسم المستخدم / كلمة المرور الخاصة بهم في مواقع الويب الخاصة بالأطراف الثالثة فقط للاتصال بـ OpenID. هذا لا يجعلها أكثر أمانا للمستخدم. وفقًا لمواصفات OAuth ، لن يحتاج المستخدم أبدًا إلى تخزين أي بيانات حساب شخصي في قاعدة بيانات لجهة خارجية.
(مصدر الصورة: مارتن هاسمان)
باستخدام OAuth ، سيقوم موفر الحساب الرئيسي (مثل Twitter و Facebook) أولاً بإعادة توجيهك (المستخدم) إلى صفحة التفويض. يقوم المستخدم بعد ذلك بتسجيل الدخول إلى الشبكة الرئيسية ، ثم يقبل أو يرفض اتصال جديد في موقع ويب الطرف الثالث. هذه التقنية سهلة بشكل غير مؤلم ويمكنك دائمًا إلغاء ترخيص الاتصالات من إعدادات حسابك في أي وقت. لاحظ أن كلمة المرور الخاصة بك لا تُمنح أبدًا للطرف الثالث مما يجعل هذا البروتوكول أكثر أمانًا من نظيره.
كيف تعمل العملية
هناك 3 أطراف يجب مراعاتها في مكالمة OAuth القياسية:
- مقدم الخدمة - الشبكة الرئيسية التي تحاول سحب البيانات منها. أنها توفر استجابة API مثل اسم المستخدم الخاص بك ، صورة الملف الشخصي ، URL موقع الويب ، وغيرها من الأشياء.
- مستهلك - التطبيق 3rd الطرف تتطلع إلى تلقي البيانات. سيكون هذا هو موقع الويب أو تطبيق الهاتف المحمول الذي يجعل طلب الاتصال الأولي ، ثم يعالج أيضًا بيانات الإرجاع بعد التفويض.
- المستعمل - الشخص الذي يجلس خلف الكمبيوتر يتفاعل مع المواقع التي ستكون أنت!
الغرض من OAuth ليس توفير مكتبة محددة لمواقع الويب لاستخدامها. في الواقع يضع “قواعد” لبناء API بروتوكول مفتوحة. لذا ، بينما يمكننا جميعًا الاستفادة من هذه التكنولوجيا ، فإن المطورين هم بالفعل الذين سيجدون اهتمامًا في هذا المجال. إذا كنت بحاجة إلى مزيد من المعلومات ، تحقق من الإصدار v1.0 المنقح الصادر في أبريل 2010.
تواجه الأمن
العملية برمتها تتطلب في نهاية المطاف 2 مفاتيح مختلفة جنبا إلى جنب مع رمز وصول. يتم توفير المفاتيح بواسطة خدمة الجذر بعد تسجيل أحد التطبيقات - وتعرف هذه باسم عميل و معرف سري. يتم تمرير معرف العميل بشكل عام إلى عنوان URL الخاص بالمصادقة حتى يتمكن الخادم من التعرف على تطبيقك.
يتم الاحتفاظ بالمعرف السري في الكود الخاص بك حتى يتمكن الخادم من التحقق من هوية التطبيق الخاص بك. وبالمثل ، سيقوم الخادم البعيد بمطابقة معرّفك السري بمعرفه الخاص به حتى لا ترسل عن طريق الخطأ طلب Twitter إلى واجهة برمجة تطبيقات Facebook ، أو العكس. إذا أذن المستخدم بالاتصال وتطابقت جميع المفاتيح ، فسيتم إرجاعها إلى موقع الويب الخاص بك مع رمز طويل من الأرقام والحروف العشوائية.
يستخدم هذا الرمز لإنشاء جديد رمز وصول. تتصرف هذه بشكل مشابه لمتغير الجلسة الذي يمكنك تخزينه في ملف تعريف الارتباط للحفاظ على تسجيل دخول المستخدم إلى موقع الويب الخاص بك. الفرق الوحيد هو أن العديد من الخدمات ستعيد إرسال رمز الوصول ورمز الوصول السري. من المحتمل أنك تحتاج كلاهما لسحب أي بيانات من الخادم. قد يكون مثال على ذلك طلب صورة الملف الشخصي للمستخدم لحفظ نسخة على موقع الويب الخاص بك.
مثال مكتبة لتويتر OAuth
من غير المرجح أن يبدأ المطورون في الغالب من البداية ، فلماذا لا ننظر إلى مكتبة تم إنشاؤها مسبقًا؟ هذا سيوفر لنا وقتنا ، ومن الصداع ، عند العمل مع PHP. دعنا ننظر إلى بناء مثال بسيط حقًا أعلى واجهة برمجة تطبيقات Twitter.
أوصي بشدة Twitter Async بواسطة Jaisen Mathai على جيثب. إنه يعمل بشكل مثالي ويوفر حتى بعض رموز الأمثلة المباشرة التي يمكننا النظر إليها. يمكنك تنزيل .zip الآن ، ولكن قبل أن ننظر إلى الشفرة ، نحتاج إلى التسجيل والحصول على معرّفات التطبيق من Twitter.
تسجيل طلب جديد
يعد Twitter Dev Center مصدرًا رائعًا لأولئك الذين بدأوا للتو في واجهة برمجة التطبيقات. تمت كتابته وإعادة كتابته عدة مرات على مدار بضع سنوات. الصفحة التي نريدها هي https://dev.twitter.com/apps/new. سيطلب منك تسجيل الدخول في البداية ، ثم تحتاج إلى إدخال بعض بيانات الاعتماد لتطبيق جديد.
يتم عرض اسم التطبيق ووصفه عندما يذهب المستخدم إلى التفويض عبر Twitter. عنوان الويب الخاص بك مهم أيضًا لتمييز عنوان الطرف الثالث. سيكون من الأسهل التعامل مع مجال حي على الرغم من أنه يمكنك استخدام مضيف محلي للاختبار ، لكنني لا أشجع هذه الطريقة. من السهل التسجيل للحصول على مضيف ويب مجاني وتشغيل البرامج النصية الخاصة بك من هناك.
يُذكر عنوان URL الخاص بالرد على الاتصال باعتباره الوجهة النهائية بعد أن يقبل الزوار أو يرفضون التفويض. إنها عملك كمبرمج لقراءة رد من Twitter وإخراج رسالة وفقا لذلك. في مكتبة Async ، لدينا بالفعل بعض بيانات الاعتماد في مكانها ، لكنها لن تعمل لأن عنوان رد الاتصال محدد لمدونة خارجية. إذا كنت مهتمًا بإنشاء تطبيق ويب OAuth متصل بالكامل ، فقد قمت بتضمين بعض البرامج التعليمية المفصلة أدناه.
تحقق من الكود
إذا كنت تستخدم مضيف ويب عن بُعد ، فقد تحتاج إلى فك ضغط مكتبات Async وتحميلها إلى دليل جديد. خلاف ذلك يمكنك فقط التحقق من شفرة المصدر. من المحتمل أننا لن نتمكن من سحب اتصال جديد على أي حال. لكن التجربة العملية مع تحميل وتحرير الكود المصدري هي دائمًا عملية تعلم.
في الدليل الجذر ستجد برنامج نصي اسمه simpleTest.php. يوجد في الداخل مجموعة كبيرة من أكواد PHP المتعلقة بمكتبات OAuth المدرجة. لن أكون قادرًا على تجميعها معًا ، لكن يجب أن ننظر إلى مجموعة تعليمات برمجية مهمة لتحديد التفاصيل البارزة.
هناك 4 متغيرات مهمة للغاية لمفتاح العميل والمعرف السري ، إلى جانب معرف الرمز المميز والرمز السري. لن تتطلب جميع خدمات واجهة برمجة التطبيقات هذه المجموعة من 4 ، لكنها بروتوكول OAuth المناسب. تتطلب فئة EpiTwitter جميع القيم الأربعة كمعلمات وتقوم بإنشاء عنوان URL للاتصال في Twitter.
https://api.twitter.com/oauth/authorize؟oauth_token=TOKEN_ID_HERE
باستخدام عنوان URL الديناميكي الجديد هذا ، يمكنك إنشاء زر تسجيل دخول للمستخدمين. سيوجههم أولاً إلى صفحة Twitter API آمنة حيث يقبل المستخدم اتصالك أو يرفضه. بصرف النظر عن اختيارهم ، سيتم إعادة توجيه المستخدم إلى عنوان URL لإعادة الاتصال بالتطبيق. يحتوي البروتوكول المفتوح بأكمله على منظور نظيف للغاية والذي يسمح بالتطور السريع ، لا سيما مع المكتبات المتوفرة بكل اللغات تقريبًا.
روابط ذات علاقة
- hueniverse oauth 1.0 دليل
- مقدمة لطيفة على OAuth
- أسئلة وأجوبة
- دليل المصادقة على Facebook
- بسيط تويتر OAuth تسجيل الدخول
- استخدام OAuth مع Twitter في Cocoa Objective-C
- تستهلك OAuth بذكاء في القضبان
استنتاج
نأمل أن يكون هذا المقدمة إلى OAuth قد جعلك مهتمًا بإنشاء تطبيقات عبر البروتوكول. يسعى العديد من المطورين جاهدين للتوصل إلى مثل هذا الحل ، وقد يكون OAuth 2.0 هو مستقبل الشبكات الاجتماعية المترابطة. أستخدم بالفعل أكثر من عشرين اتصالًا في حسابي على Twitter وقد أعجبت حقًا بوثائق المطور!
من الواضح أن هناك الكثير ليقوله حول هذا الموضوع. إنه ليس شيئًا قد تتمكن من معالجته بالكامل في جلسة واحدة. استعرض حول الشبكة لمزيد من حلول OAuth ودعنا نعرف أفكارك في منطقة المناقشة أدناه.