صفحة هبوط لتسجيل الدخول عبر SAML

في الإصدارات السابقة، كانت تُعرض صفحة هبوط يظهر فيها زر “تسجيل الدخول”. عند النقر على هذا الزر، كانت تظهر صفحة تسجيل الدخول عبر SAML.
شخصيًا، أعجبتني هذه السلوكية كثيرًا. أما في الإصدار الحالي 2.4.2، لم يعد ذلك ممكنًا، حيث تُعرض صفحة تسجيل الدخول عبر SAML مباشرةً.

هل يمكن تكوين هذا السلوك؟

أنا لا أتبع، هل تقصد أننا عرضنا نافذة منبثقة تحتوي على زر واحد “تسجيل الدخول باستخدام SAML”؟

لا. في إصدار سابق (أعتقد أنه 2.3.6) كان الأمر على هذا النحو:

بعد النقر على “Anmelden”، ظهرت نافذة تسجيل الدخول عبر SAML.

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

هل يمكن لأحد مساعدتي؟ ربما @eviltrout؟

بالتأكيد لم أقوم بتغيير ذلك عن قصد. إذا أمكنك مساعدتنا في تحديد وقت التغيير، فسيكون ذلك مفيدًا حيث يمكننا البحث في السياق.

من الممكن أن يكون التغيير قد حدث لأسباب أمنية.

كان هذا تحسينًا طالما طُلب لجعل omniauth يتصرف مثل SSO حقيقي، عندما يكون عدد طرق تسجيل الدخول عبر omniauth واحدًا فقط.

كيف يمكنني المساعدة؟

تلميح واحد: إذا قمت بتفعيل “تسجيل الدخول المحلي”، فسيتم عرض “صفحة الهبوط مع زر تسجيل الدخول”.

إذا كنت تريد حقًا صفحة التأكيد، يمكنك ربط المستخدم بـ /login (بدلاً من الصفحة الرئيسية). هذا لن يؤدي إلى تسجيل الدخول تلقائيًا.

ولكن لاحظ أن هذا غير مدعوم فعليًا، بل هو مجرد عيب في التنفيذ وقد يتغير في أي وقت.

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

آه، من الجيد معرفة ذلك.
أعرف سببين:

  • عرض صفحة هبوط جميلة تحتوي على بعض المعلومات الأساسية بدلاً من نافذة تسجيل الدخول “المملة” تلك
  • “الأمان” (أعلم أنها ليست عائقًا كبيرًا حقًا). من المأمول أن تفشل نصوص الاختراق الرخيصة على العنوان الرئيسي (بدون صفحة الهبوط) نظرًا لضرورة الضغط على زر تسجيل الدخول أولاً.

هل من الممكن تكوين هذا السلوك؟

ستحتاج إلى توظيف مطور هنا لبناء إضافة لتغيير ذلك. كما هو الحال، هذه هي الشكوى الأولى التي أسمعها حول النظام الجديد منذ أشهر.

أنا مطور :-)(انظر إلى تغييراتي في discourse_saml)

هل تقبل طلب سحب (PR) يضيف خيارًا للإعدادات (الافتراضي: السلوك الجديد)؟

لا ينبغي أن يؤدي إعادة التوجيه التلقائي إلى إدخال أي ثغرات أمنية. إذا كنت على علم بأي استغلال، يرجى إبلاغنا من خلال برنامج الإفصاح الخاص بنا: discourse/docs/SECURITY.md at main · discourse/discourse · GitHub

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

يمكنك تجاوز هذا في إضافة عن طريق تعديل هذه الطريقة:

لذلك أعتقد أنك ستريد تبسيط الدالة إلى ما يلي:

def redirect_to_login
  dont_cache_page
  cookies[:destination_url] = destination_url
  redirect_to path("/login")
end

شكرًا لك. نقدر ذلك كثيرًا!
بالمناسبة: تقوم بعمل رائع مع Discourse.