تبديل المصادقة باستخدام بديل خالٍ من كلمات المرور

هذه المشاركة تتناول ميزة غير موجودة بالتأكيد، ولكنني أرغب في تنفيذها بنفسي. ومع ذلك، في هذه المرحلة، لا أعرف مقدار العمل الذي قد يتطلبه الأمر، والهدف من هذا السؤال هو محاولة تحديد المتطلبات اللازمة.

بعض السياق: نحن نعمل على حل للمصادقة الخالية من كلمات المرور. https://trykno.com/ يعمل الحل كخدمة، مما يعني أن أصحاب المواقع الذين يستخدمون الخدمة لا يحتاجون إلى التعامل مع إرسال رسائل البريد الإلكتروني بشكل آمن أو تخزين أي أسرار أو معلومات تعريف شخصية.

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

أسئلة؟

  • هل نظام المصادقة في Discourse قابل للإضافة؟
  • هل توجد أي افتراضات ثابتة في الكود تفيد بأن للمستخدم عنوان بريد إلكتروني؟
  • ما هو إطار العمل الأمامي؟ (أرى ember-rails في ملف gemfile، ولكن لا توجد إشارة إلى ember في package.json)

آسف إذا كانت هذه الأسئلة بسيطة، فأنا لست مطور Ruby، وأي تلميحات حول المشكلة ستكون ذات قيمة. شكرًا لك

بافتراض أنك تقصد “ديسكورس” :stuck_out_tongue: نعم، هو قابل للإضافة كملحق. يمكنك إما تطوير ملحق مصادقة أو استخدام نظام SSO الأصلي.

نعم، يجب أن يكون لدى كل مستخدم بريد إلكتروني في ديسكورس. يمكنك تقديم عناوين بريد إلكتروني غير صالحة (تنتهي بـ .invalid)، لكننا لا ننصح بذلك.

إمبير. لكن بالنسبة لملحق المصادقة، فمن غير المرجح أن تحتاج إلى التعديل على الواجهة الأمامية.

6 إعجابات

آه، محرج! سأقوم بالتحديث.

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

إعجابَين (2)

حاليًا، من الممكن عدم استخدام كلمة مرور وإرسال رابط إليك فقط.

إذا كان هدفك هو تطوير kno، فمن المرجح أنك تريد تطويره كخادم OAuth. حينها يمكن للناس استخدامه كأحد مصادر المصادقة المتعددة حيث يكون SSO هو المصدر الوحيد. انظر Discourse OAuth2 Basic

إعجابَين (2)

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

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

بعد النظر في الأمور بشكل أعمق، يبدو أنني أستطيع تجميع نسخة أولية قابلة للتطبيق من خلال تنفيذ حل SSO مخصص لمنصة Discourse.

إعجاب واحد (1)

هل من الممكن استخدام مزود OAuth واحد وتعطيل جميع أنواع المصادقة الأخرى؟

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

ربما يمكنك إغلاق ذلك.

ولكن لماذا تتعب نفسك، فبمجرد تسجيل دخول المستخدم، نادرًا ما يرى هذا الحوار؟

من الأفضل أن تخصص وقتك بشكل أكثر إنتاجية لحل مشاكل أخرى.

هل جربت ذلك؟ لأن هذا هو كيف يعمل Discourse افتراضيًا منذ سنوات :wink:

3 إعجابات

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

لقد كدت أنهي تكامل SSO الخاص بي، لذا أعتقد أن هذا هو الوقت المثالي للتحول إلى استخدام OAuth. :smiley:

إعجاب واحد (1)