معرف Discourse والمصادقة الثنائية

@JammyDodger، لقد سجلتُ مؤخرًا حسابًا للحصول على نسخة مجانية في:

ويبدو أنني أواجه هناك نفس المشكلة الموصوفة في t/227972:

تسجيل الدخول الموحد عبر OAuth2 المصادقة الثنائية

تشير معظم الوثائق إلى أن هذه الميزة يجب أن تكون مفعّلة افتراضيًا:

ومع ذلك، لا أملك أي خيار لتمكينها حتى، وهي غير مفعّلة افتراضيًا:

تم نقل منشورك هنا، لأن هذه مشكلة مختلفة عن Contribute > Bug التي نشرت فيها في الأصل.

معرف Discourse لا يستخدم OAuth2. إنه يعمل فعليًا كمزود SSO، وهو أمر مختلف.

لتهيئة المصادقة الثنائية (2FA)، ستحتاج إلى القيام بذلك لدى مزود SSO، وهو ID. تحديدًا عبر: https://id.discourse.com/my/preferences/security.

@jomaxro، شكرًا لك. ربما كان ما أربكني هو أنني حاولت تعيين enforce_second_factor إلى “all”، لكنني لم أستطع ذلك، لأنني تم إخباري بأن “لا يمكنك فرض المصادقة الثنائية إذا كانت تسجيلات الدخول المحلية معطلة.” إذا لم يكن هذا بعيدًا جدًا عن الموضوع، فما الحل لذلك؟

سؤال جيد… ولا أملك الإجابة عليه. لقد أدرجت الفريق للعثور على شخص لديه الإجابة!

لقد تم تصحيح معلوماتي من قبل الفريق. في الواقع، يستخدم Discourse ID OAuth2 في الخلفية - أعتذر عن ذلك. كنت أظن أنه يستخدم بروتوكولاً مختلفاً.


بخصوص سؤالك، نحن لا ندعم المصادقة الثنائية (2FA) مع تسجيل الدخول الخارجي. كما ذكرت الرسالة التي رأيتها، لا يمكن فرض المصادقة الثنائية إلا إذا كان تسجيل الدخول المحلي مفعّلًا. نحن نعتمد على مزوّد تسجيل الدخول الخارجي (Discourse ID في هذه الحالة، ولكن هذا ينطبق على جميع المزوّدين الخارجيين) لإدارة المصادقة الثنائية، بما في ذلك فرضها.

@jomaxro، هل يعني ذلك أنه مع الخطة المجانية التجريبية، لا يمكنني تعديل هذا التفضيل؟ بديلًا عن ذلك، هل يمكنني فصل معرف Discourse بطريقة ما؟

هل ترغب في التأكيد، هل تشير إلى فترة تجريبية مجانية أم إلى الخطة المجانية؟

@jomaxro، نعتذر. الخطة المجانية، أعتقد:

سؤال لنا: هل يوجّه معرّف هوية الموفّر (IdP) معلومات حول ما إذا كان المستخدم قد قام بالمصادقة متعددة العوامل (MFA) أم لا إلى موفّر الخدمة (SP)؟

أفكّر في الآلية المماثلة لـ U2F / FIDO — حيث يمكن للبرنامج طلب إثبات من الجهاز بشأن مستوى تفاعل المستخدم المتوقع/المطلوب للبيّنات.

إذا كان معرف Discourse ID… أو أي موفّر هوية آخر بشكل مماثل (SAML؟ oAuth2؟ OIDC؟) يوجّه هذه المعلومات إلى موفّر الخدمة، فستكون هذه معلومة يمكننا استخدامها محتملًا.

وإلا فإننا سنكون عالقين تقريبًا في الحاجة إلى تنفيذ المصادقة متعددة العوامل (MFA) بعد تسجيل الدخول الموحّد للحصول على هذه الضمانة.

الطريقة المعيارية للقيام بذلك هي عبر OIDC. يُبنى معرف Discourse حاليًا باستخدام OAuth2 فقط. لدعم علامة المصادقة متعددة العوامل (MFA)، سنحتاج إلى تنفيذ OIDC على طبقة المزود ونقل قيم MFA ذهابًا وإيابًا للعملاء الذين يتطلبونها.

هناك عدة تعقيدات:

  • في نواة Discourse، لدينا خيار إلزام المصادقة الثنائية (2FA) لأنواع معينة من المستخدمين فقط (طاقم العمل أو الجميع)، ومن المرجح أننا نحتاج إلى دعم شيء مماثل عبر معرف الهوية.
  • يسمح معرف الهوية بتسجيل الدخول عبر Google/Apple/Facebook/Github، لكن هذه الخدمات لا تحدد بشكل موثوق ما إذا كان المستخدم قد أكمل المصادقة الثنائية عند تسجيل الدخول… قد نحتاج إلى تنفيذ المصادقة الثنائية على طبقة معرف الهوية، ومن المرجح أيضًا أن نطلب المصادقة الثنائية المزدوجة لبعض المستخدمين، وهو أمر غير مثالي.
  • هل المصادقة الثنائية على طبقة مزود الهوية (أي ليس على المثيل المحلي) كافية لجميع المستهلكين؟ بشكل عام، أعتقد ذلك، لكننا سنحتاج إلى إجراء مزيد من البحث قبل الالتزام بذلك.