تفعيل المصادقة التلقائية عبر SSO عند الارتباط بالمواضيع الخاصة؟

نحن نستخدم تطبيقنا الخاص كجهة موفرة لتسجيل الدخول الموحد (SSO) إلى Discourse، ونواجه مشكلة عند ربط المستخدمين بالمواضيع الخاصة في منتدى Discourse من تطبيقنا، حيث يتم تفعيل المصادقة فقط عند النقر على زر “تسجيل الدخول”.

  • نستخدم نظامنا الخاص كجهة موفرة لتسجيل الدخول الموحد (SSO) إلى Discourse.
  • لدينا مزيج من الصفحات العامة والخاصة في Discourse، لذا لم نقم بتعيين خيار login_required.
  • إذا قام المستخدم بتسجيل الدخول إلى نظامنا، وقمنا بربطه بعنوان URL الجذري لـ Discourse، فسيظهر له التصنيفات العامة لكنه لن يكون مسجّل الدخول.
  • إذا قام المستخدم بتسجيل الدخول إلى نظامنا، وقمنا بربطه بعنوان URL الخاص بـ Discourse + /login، فسيتسجّل الدخول بنجاح، وسيتم إعادة توجيهه إلى عنوان URL الجذري لـ Discourse.
  • إذا قام المستخدم بتسجيل الدخول إلى نظامنا، وقمنا بربطه بعنوان URL لتصنيف أو موضوع خاص في Discourse، فسيُعرض عليه صفحة تطلب منه تسجيل الدخول. وعند النقر على زر “تسجيل الدخول”، سيتم تسجيل الدخول تلقائيًا وعرض التصنيف/الموضوع.

الحالة الأخيرة هي المشكلة. أعتقد أن أحد الخيارات التالية سيكون مفيدًا:

  • يمكننا الربط إلى ourdiscourse.com/c/some-category?login=true، وسيتم إجراء فحص للمصادقة: إذا كان المستخدم مسجّل الدخول، سيتم عرض الموضوع. وإذا لم يكن كذلك، سيتم إرساله إلى جهة موفرة تسجيل الدخول الموحد (SSO)، ثم إعادة توجيهه مرة أخرى إلى الموضوع بعد تسجيل الدخول.
  • يمكننا الربط إلى ourdiscourse.com/login?redirect=c/some-category، وسيتم إجراء فحص للمصادقة: إذا نجح، سيتم إعادة التوجيه إلى الصفحة الموجودة في سلسلة الاستعلام؛ وإذا فشل، سيتم إعادة التوجيه إلى جهة موفرة تسجيل الدخول الموحد (SSO)، ثم إعادة توجيهه إلى الصفحة الموجودة في سلسلة الاستعلام بعد المصادقة الناجحة.
  • يمكننا الربط إلى ourdiscourse.com/c/some-category، وإذا كانت الصفحة خاصة، فسيقوم Discourse بإجراء فحص للمصادقة: إذا نجح، سيتم نقلك إلى التصنيف؛ وإذا فشل، سيتم إعادة التوجيه إلى جهة موفرة تسجيل الدخول الموحد (SSO)، ثم إعادة التوجيه مرة أخرى.

شكرًا لكم!

(لقد نشرت هذه المشكلة سابقًا هنا - أعتذر عن التكرار، لكنني اعتقدت أن إنشاء موضوع جديد قد يجذب المزيد من الاستجابة).

You can create an login link on your SSO provider site with a return_path parameter in the URL. After authentication, Discourse will redirect the user to the value set for the return_path. The link should be in this form:

<a href="https://forum.example.com/session/sso?return_path=https://forum.example.com/your-discourse-endpoint">Link Text</a>
5 إعجابات

Can’t they also have the SSO do something similar so that when they log in to the SSO they are also logged in to Discourse?

The only ways I know of auto logging in users to Discourse when the login to the SSO provider site seem a little hacky. With the use of SSO login links in the form I gave above and the sync_sso route for updating users without requiring them to login, I can’t see where it would be required.

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

Thank you - this has worked perfectly.

I’m not sure if we are doing this - what would be the way to check?

EDIT: should have searched first… details here: Sync DiscourseConnect user data with the sync_sso route

3 إعجابات

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.