آمل في الحصول على بعض الآراء الخبيرة حول المشكلات التي أواجهها أثناء محاولة استخدام Discourse كموفر SSO.
هدفي: أقوم بإعداد Discourse للتعامل مع المصادقة لتطبيق آخر (LibreChat). أستخدم وظيفة موفر DiscourseConnect القياسية، مع خدمة جسر OIDC distrust التي تعمل كعميل يتواصل مع Discourse.
المشكلة: يتدفق SSO بشكل مثالي حتى الخطوة الأخيرة. يتم إعادة توجيه المستخدم بشكل صحيح من تطبيقي إلى Discourse، ويمكنهم تسجيل الدخول بنجاح باستخدام بيانات اعتماد Discourse الخاصة بهم. ومع ذلك، بعد تسجيل الدخول، يتم إعادة توجيههم إلى الصفحة الرئيسية لمنتدى Discourse الخاص بي (/) بدلاً من return_sso_url الذي تم توفيره.
أين أنا عالق (ما استبعدته): لقد قمت باستكشاف هذه المشكلة لفترة طويلة وتأكدت من أنها ليست خطأ تكوين بسيطًا. لقد استبعدت بشكل قاطع ما يلي:
- الأسرار: تم تكوين
discourse connect provider secretsبشكل صحيح. أستخدم النطاق العادي (مثلauth.my-site.com) بدون أي بروتوكول، ويتطابق مفتاح السر تمامًا مع المفتاح الموجود في خدمة العميل الخاصة بي. - وضع SSO: لقد تأكدت من تحديد
enable discourse connect provider، وتم تعطيل إعدادات “SSO Client” غير الصحيحة. - سياسات المستخدم: لقد تأكدت من تعطيل
must_approve_users، وأن مستخدم الاختبار الخاص بي هو مسؤول لديه بريد إلكتروني تم التحقق منه بالكامل. - الإضافات: لقد قمت بتعطيل جميع الإضافات الخارجية غير الرسمية وأعدت بناء الحاوية، ولكن المشكلة لا تزال قائمة.
الدليل الرئيسي: لدي دليلان قاطعان جعلااني في حيرة من أمري:
- تحليل ملف HAR: قمت بتسجيل تدفق الشبكة بالكامل في ملف HAR. يُظهر طلب
POSTإلى/sessionلتسجيل الدخول بنجاح. يستجيب الخادم فورًا بإعادة توجيه302 Found، ولكن رأسLocationهو دائمًا/. هذا يثبت أن Discourse يقوم بإلغاء إعادة توجيه SSO عمدًا. - سجل Rails فارغ: ثم قمت بتتبع ملف
production.logداخل الحاوية أثناء محاولة تسجيل الدخول. لا يتم كتابة أي شيء على الإطلاق في السجل أثناء هذه العملية. هذا يخبرني أن Discourse لا يعتبر هذا خطأ؛ إنه إجراء متعمد وصامت.
سؤالي: نظرًا لأن تسجيل الدخول ناجح، ولكن إعادة التوجيه غير صحيحة ولا توجد أخطاء في السجلات، ما هي سياسة Discourse الداخلية أو فحص مسبق أو إعداد مخفي يمكن أن يتسبب في تجاهل return_sso_url وإعادة التوجيه إلى الصفحة الرئيسية بدلاً من ذلك؟ أشعر أنني استنفدت جميع الإعدادات القياسية.
شكرًا مقدمًا على أي أفكار!