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

- في مساحة العمل الخاصة بك، انتقل إلى الإعدادات ثم المصادقة
- انقر فوق إضافة واختر OAuth 2.0
- أكمل مربع حوار الإعداد الذي يظهر

المصادقة باستخدام OAuth
دليل التنفيذ

OAuth 2.0 هو البروتوكول القياسي الصناعي للتفويض. يركز OAuth 2.0 على تبسيط عمل مطوري العملاء مع توفير تدفقات تفويض محددة لتطبيقات مثل Ideanote.
تدعم Ideanote تدفق رمز التفويض القائم على OAuth 2.0. هذا هو النوع الأكثر شيوعًا من أنواع منح OAuth 2.0، وفيما يتعلق بـ Ideanote، يسير التدفق تقريبًا على النحو التالي:
- يرسل Ideanote المستخدم الخاص بك إلى شاشة تسجيل دخول تتحكم فيها (أو تدمجها مع)، ويكون المستخدم على دراية بها بالفعل.
- يدخل المستخدم بيانات اعتماده ويحاول المصادقة.
- إذا كانت بيانات الاعتماد صالحة، فسيتم إعادة توجيه المستخدم مرة أخرى إلى Ideanote مع رمز تفويض كمعامل استعلام في عنوان URL.
- يقوم Ideanote بعد ذلك بتبادل رمز التفويض هذا مقابل رمز وصول عن طريق التواصل مع واجهة برمجة التطبيقات الخاصة بك.
- باستخدام رمز الوصول هذا كـ تفويض، يسترد Ideanote بعض معلومات المستخدم من واجهة برمجة التطبيقات الخاصة بك، مثل عنوان البريد الإلكتروني والمعرف (أو sub)، والصورة الرمزية، واللغة المفضلة، والاسم.
إذا كنت ترغب في التعمق في هذا الأمر بمزيد من التفصيل، فهذا مصدر رائع حول الموضوع.
المزايا
- طريقة سهلة لضمان مصادقة قوية.
- يسجل المستخدمون الدخول عبر نظام يثقون به بالفعل، ولا يشاركون بيانات اعتمادهم مباشرة مع Ideanote أبدًا.
- نظرًا لأن المستخدمين يصادقون مباشرة عبر نظامك (أو نظام تتحكم فيه)، ستحافظ على التحكم الكامل في من لديه حق الوصول إلى مساحة عمل Ideanote الخاصة بك.
- OAuth 2.0 هو معيار صناعي يمكنك استخدامه للمصادقة ليس فقط مع Ideanote، ولكن مع آلاف حلول البرامج.
المتطلبات الأساسية
ستحتاج إما إلى:
- استخدام مزود تسجيل دخول لنظامك الخاص يدعم OAuth 2.0 بالفعل، مثل Okta و Facebook و Google و Github والعديد من الآخرين. أو،
- تشغيل خادم مصادقة OAuth 2 بنفسك يتوافق مع مواصفات OAuth 2.0
ملاحظة هامة:
للبدء بالمصادقة المستندة إلى OAuth 2.0، ستحتاج أولاً إلى الرجوع إلى وثائق مزود تسجيل الدخول الذي تستخدمه لنظامك من أجل إنشاء تكامل OAuth أو تطبيق من خلال واجهتهم.
ستحتاج إلى نسخ بعض الأشياء من هناك إلى التكوين في مساحة عمل Ideanote الخاصة بك، والعكس صحيح. سنتطرق إلى التفاصيل بعد قليل.
لراحتك، قمنا بإعداد قائمة صغيرة من الروابط المباشرة إلى الوثائق ذات الصلة لبعض مزودي تسجيل الدخول المشهورين الذين يدعمون OAuth 2.0 أدناه:
الطريقة التي تعمل بها هذه عادةً هي بعض التباينات التالية: تقوم بإنشاء تطبيق أو تكامل OAuth. فيها، سترى معرف العميل (Client ID) و سر العميل (Client Secret)، بالإضافة إلى قائمة نطاقات OAuth (OAuth scopes) التي يدعمها. ستتمكن أيضًا من كتابة عنوان URL واحد أو أكثر لإعادة التوجيه (Redirect URLs). أخيرًا، يجب أن ترى قائمة بنقاط نهاية API ذات الصلة مثل نقطة نهاية التفويض (Authorization Endpoint) و نقطة نهاية الرمز (Token Endpoint).

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

الخطوة 2
- انتقل إلى الأساسيات
- قم بتكوين وتخصيص الإعدادات العامة

الخطوة 3
- انتقل إلى نسخ عنوان URL لإعادة التوجيه
- انسخ عنوان URL إلى الحافظة. سيتعين نسخ عنوان URL هذا إلى تكوين OAuth 2.0 لتطبيقك/تكاملك في الخطوة التالية (الخطوة 4)

الخطوة 4
قبل أن نتمكن من المتابعة مع الخطوة 4، دعنا نلقي نظرة سريعة ونستعرض الوظائف العامة لتدفق رمز تفويض OAuth 2.0:
- عندما يسجل المستخدم الدخول عبر شاشة تسجيل الدخول لتطبيقك، سيتم إعادة توجيهه إلى عنوان URL معين مع رمز تفويض كمعامل استعلام في عنوان URL. يجب أن يكون هذا المكان هو عنوان URL لإعادة توجيه OAuth الخاص بـ Ideanote.
- عندما يسجل المستخدم الدخول عبر شاشة تسجيل الدخول لتطبيقك، سيتم إعادة توجيهه إلى عنوان URL معين مع رمز تفويض كمعامل استعلام في عنوان URL. يجب أن يكون هذا المكان هو عنوان URL لإعادة توجيه OAuth الخاص بـ Ideanote.
- كما هو مذكور في قسم الخطوة 3، ستحتاج إلى نسخ عنوان URL لإعادة توجيه Ideanote إلى تكوين OAuth 2.0 لتطبيقك/تكاملك.
- عندما تكون واثقًا من أن عنوان URL لإعادة التوجيه الخاص بنا قد تمت إضافته بشكل صحيح، يرجى النقر على إضافة تكوين والمتابعة.
هيا بنا للخطوة 4

- انتقل إلى إضافة تكوين - هنا يمكنك لصق المعلومات ذات الصلة من تطبيق/تكامل OAuth 2 الخاص بك كما هو موضح في الخطوات السابقة.
- هنا يجب إدخال معرف العميل (Client ID). يمكن العثور على هذا عادةً بسهولة في مكان ما في تطبيق/تكامل OAuth 2.0 الخاص بك وعادة ما يسمى بمعرف العميل (Client ID) أو معرف التطبيق (App ID).
- هنا يجب إدخال سر العميل (Client Secret). يمكن العثور على هذا عادةً بسهولة في مكان ما في تطبيق/تكامل OAuth 2.0 الخاص بك وعادة ما يسمى بسر العميل (Client Secret) أو سر التطبيق (App Secret). ملاحظة: إذا كنت تستضيف خادم تفويض OAuth 2.0 الخاص بك، يجب عليك التأكد من أنه عشوائي بما فيه الكفاية بحيث لا يمكن تخمينه. إحدى الطرق للقيام بذلك هي باستخدام مكتبة آمنة من الناحية التشفيرية لتوليد قيمة 256 بت ثم تحويلها إلى تمثيل سداسي عشري.
- نقطة نهاية التفويض (Authorization Endpoint) هي التي سيرسل Ideanote المستخدمين إليها حتى يتمكنوا من المصادقة معك قبل إعادة توجيههم إلينا برمز تفويض، - إذا سارت الأمور على ما يرام، بالطبع. إذا لم تكن تستضيف خادم تفويض OAuth 2.0 الخاص بك، ستتمكن من العثور على هذا في وثائق تطبيق/تكامل OAuth 2.0 الخاص بك.
- نقطة نهاية الرمز (Token Endpoint) هي التي سيرسل Ideanote إليها رمز التفويض الذي تلقيناه من نقطة نهاية التفويض بقصد تبادله بـ رمز وصول. إذا حصلنا على رمز وصول، فقد نجحنا في المصادقة مع تطبيقك/تكاملك نيابة عن المستخدم. سنستخدم رمز الوصول هذا مرة واحدة لاسترداد بعض معلومات المستخدم ذات الصلة، مثل معرفهم وعنوان بريدهم الإلكتروني واسمهم وصورتهم الرمزية، وربما معلومات أخرى ممنوحة لنا بواسطة نطاقات OAuth 2.0 التي ستدخلها.
خيارات إضافية
خيارات التكوين المتاحة في إضافة تكوين.
- هذه هي نقطة نهاية API التي سيستدعيها Ideanote باستخدام رمز الوصول الذي تم استرداده من نقطة نهاية الرمز كـ تفويض لاسترداد معلومات المستخدم ذات الصلة. يتيح لنا هذا استرداد بعض معلومات المستخدم المطلوبة والاختيارية، بما في ذلك معرف المستخدم (أو sub) وعنوان البريد الإلكتروني (وكلاهما مطلوب)، بالإضافة إلى البيانات الاختيارية مثل الاسم والصورة الرمزية واللغة المفضلة والاسم المستعار المفضل. يمكن العثور على نقطة النهاية هذه في وثائق API لتطبيق أو تكامل OAuth 2.0 الخاص بك.
- هنا يمكنك إدخال نطاق(ات) OAuth 2.0 التي يجب طلبها. يجب عليك التأكد من إدخال نطاق واحد على الأقل، وأن النطاق يوفر لـ Ideanote خاصيتي البيانات المطلوبتين، وهما البريد الإلكتروني والمعرف (أو sub). يرجى الرجوع إلى وثائق تطبيق/تكامل OAuth 2.0 الخاص بك لقراءة حول النطاقات التي يدعمونها وللتأكد من أن Ideanote سيطلب النطاقات الصحيحة للحصول على الوصول إلى معلومات المستخدم، بما في ذلك الاسم والصورة الرمزية أيضًا، إن أمكن.
- يتوقع Ideanote أن تكون الاستجابة من نقطة نهاية معلومات المستخدم التي قمت بتكوينها عبارة عن كائن JSON. افتراضيًا، سيحاول Ideanote تحليل وتعيين أزواج المفتاح-القيمة الخاصة به إلى معلومات المستخدم بناءً على التخمينات والاستدلالات. عن طريق توسيع قائمة الأكورديون (USER INFO ATTRIBUTES)، يمكنك مساعدتنا بتحديد المسار الدقيق في استجابة JSON لمعلومات المستخدم الذي يجب أن نبحث عنه لسمات معلومات المستخدم الفردية.
- عندما تكون قد ملأت جميع الحقول المطلوبة وكنت راضيًا عن التكوين، يمكنك النقر على زر الحفظ لحفظ مزود تسجيل الدخول OAuth 2.0 في مساحة عمل Ideanote الخاصة بك. في المستقبل، سيرى المستخدمون خيار تسجيل دخول جديد في صفحة تسجيل الدخول. إذا تم التكوين بشكل صحيح، فإن النقر عليه سيأخذهم إلى صفحة تسجيل الدخول التي يستخدمونها بالفعل لتسجيل الدخول إلى نظامك الخاص، وعند المصادقة بنجاح، سيتم إعادة توجيههم إلى مساحة عمل Ideanote الخاصة بك. اعتمادًا على النطاقات المطلوبة والمقبولة، بالإضافة إلى نوع البيانات التي يدعمها تطبيق/تكامل OAuth الخاص بك، سيعرف Ideanote بالفعل بعض التفاصيل عن المستخدم فورًا، مثل اسمهم وصورتهم الرمزية واللغة المفضلة وما إلى ذلك.
معلومات مفيدة
OAuth 2.0 هو بروتوكول قياسي صناعي موثق جيدًا وشائع للتفويض.
على هذا النحو، تتوفر العديد من المصادر الرائعة عبر الإنترنت، بما في ذلك الأدلة المتعمقة والخدمات التي تجعل من السهل دمج المصادقة المستندة إلى OAuth 2.0 مع واجهة برمجة التطبيقات الخاصة بك.
إليك بعض المصادر التي نوصي بها:
ما هو نوع منح رمز تفويض OAuth 2.0؟
ساحة تجربة تدفق رمز تفويض OAuth 2
إذا كانت لديك أسئلة إضافية، فلا تتردد في التواصل معنا على support@ideanote.io.