@jomaxro، شكرًا لك. ربما كان ما أربكني هو أنني حاولت تعيين enforce_second_factor إلى “all”، لكنني لم أستطع ذلك، لأنني تم إخباري بأن “لا يمكنك فرض المصادقة الثنائية إذا كانت تسجيلات الدخول المحلية معطلة.” إذا لم يكن هذا بعيدًا جدًا عن الموضوع، فما الحل لذلك؟
لقد تم تصحيح معلوماتي من قبل الفريق. في الواقع، يستخدم Discourse ID OAuth2 في الخلفية - أعتذر عن ذلك. كنت أظن أنه يستخدم بروتوكولاً مختلفاً.
بخصوص سؤالك، نحن لا ندعم المصادقة الثنائية (2FA) مع تسجيل الدخول الخارجي. كما ذكرت الرسالة التي رأيتها، لا يمكن فرض المصادقة الثنائية إلا إذا كان تسجيل الدخول المحلي مفعّلًا. نحن نعتمد على مزوّد تسجيل الدخول الخارجي (Discourse ID في هذه الحالة، ولكن هذا ينطبق على جميع المزوّدين الخارجيين) لإدارة المصادقة الثنائية، بما في ذلك فرضها.
سؤال لنا: هل يوجّه معرّف هوية الموفّر (IdP) معلومات حول ما إذا كان المستخدم قد قام بالمصادقة متعددة العوامل (MFA) أم لا إلى موفّر الخدمة (SP)؟
أفكّر في الآلية المماثلة لـ U2F / FIDO — حيث يمكن للبرنامج طلب إثبات من الجهاز بشأن مستوى تفاعل المستخدم المتوقع/المطلوب للبيّنات.
إذا كان معرف Discourse ID… أو أي موفّر هوية آخر بشكل مماثل (SAML؟ oAuth2؟ OIDC؟) يوجّه هذه المعلومات إلى موفّر الخدمة، فستكون هذه معلومة يمكننا استخدامها محتملًا.
وإلا فإننا سنكون عالقين تقريبًا في الحاجة إلى تنفيذ المصادقة متعددة العوامل (MFA) بعد تسجيل الدخول الموحّد للحصول على هذه الضمانة.
الطريقة المعيارية للقيام بذلك هي عبر OIDC. يُبنى معرف Discourse حاليًا باستخدام OAuth2 فقط. لدعم علامة المصادقة متعددة العوامل (MFA)، سنحتاج إلى تنفيذ OIDC على طبقة المزود ونقل قيم MFA ذهابًا وإيابًا للعملاء الذين يتطلبونها.
هناك عدة تعقيدات:
في نواة Discourse، لدينا خيار إلزام المصادقة الثنائية (2FA) لأنواع معينة من المستخدمين فقط (طاقم العمل أو الجميع)، ومن المرجح أننا نحتاج إلى دعم شيء مماثل عبر معرف الهوية.
يسمح معرف الهوية بتسجيل الدخول عبر Google/Apple/Facebook/Github، لكن هذه الخدمات لا تحدد بشكل موثوق ما إذا كان المستخدم قد أكمل المصادقة الثنائية عند تسجيل الدخول… قد نحتاج إلى تنفيذ المصادقة الثنائية على طبقة معرف الهوية، ومن المرجح أيضًا أن نطلب المصادقة الثنائية المزدوجة لبعض المستخدمين، وهو أمر غير مثالي.
هل المصادقة الثنائية على طبقة مزود الهوية (أي ليس على المثيل المحلي) كافية لجميع المستهلكين؟ بشكل عام، أعتقد ذلك، لكننا سنحتاج إلى إجراء مزيد من البحث قبل الالتزام بذلك.