مشكلة SSO في Discourse ضمن iframe

مرحبًا، أود تضمين المنتدى داخل موقع ويب باستخدام iframe.

سيتم تسجيل الدخول إلى المنتدى عبر SSO. يعمل التضمين بشكل صحيح، لكن عملية SSO لا تستطيع تعيين كوكب تسجيل الدخول لأن سمة “samesite lax” مضبوطة من جانب Discourse. هل واجه أي شخص هذه المشكلة أيضًا؟ أو هل تمكن أي شخص من تضمين منتداه داخل موقع ويب وربطه عبر SSO؟

شكرًا مقدّمًا.

نود فقط أن نبلغك أن Discourse لا يعمل بشكل جيد (إن لم يكن على الإطلاق) داخل iframe. لذا فأنت بالفعل تستدعي المتاعب :wink:

شكرًا لك على الرد السريع جدًا جدًا :slight_smile:

image

حسنًا، لقد وجدت إعدادًا في قسم إعدادات discourse. هذا الإعداد يسمح بتضمين المنتدى داخل إطار (iframe) على موقع آخر. يعمل هذا الإعداد (إذا كنت قد سجلت الدخول بالفعل ولديك ملف تعريف الارتباط).

الشيء الوحيد الذي لا يعمل هو عملية SSO. تعمل عملية SSO لدينا بشكل صحيح وسليم عند فتح المنتدى في علامة تبويب جديدة. لكن الإطار (iframe) يعطل هذه العملية لأن ملف تعريف الارتباط الذي يحتوي على رمز الوصول لا يمكن تعيينه بسبب اختلاف النطاق. وهذا يؤدي إلى حلقة لا نهائية داخل الإطار لأن discourse لا يستطيع العثور على ملف تعريف الارتباط هذا ويبدأ عملية SSO مرة أخرى.

وبما أن هذا الأمر مهم جدًا بالنسبة لنا، أليس هناك أي خيار لتضمين المنتدى مع استخدام مصادقة SSO؟

الإعداد تجريبي إلى حد كبير وغير مدعوم حقًا في بيئة SSO. سيتطلب إعادة التوجيه إلى الوراء بعض العمل المعقد لنقل جميع المعلومات مرة أخرى إلى الإطار.

أوصي بشدة بالاعتماد على ترويسة وتذييل مخصصين، حيث من السهل جدًا إعدادهما لهما مظهر الموقع الرئيسي.

شكرًا على ردك.

سنحاول استخدام ترويسة وتذييل مخصصين.
هل توجد خطط في المستقبل القريب لجعل discourseSSO يعمل داخل إطار مضمن (iframe)؟ ستكون هذه الميزة مفيدة جدًا للأشخاص الذين يرغبون في تضمين منتدى في موقعهم دون الحاجة إلى تنفيذ جميع واجهات برمجة التطبيقات الخاصة بـ Discourse.

ما علاقة إطار مضمن (iframe) بواجهات برمجة التطبيقات (APIs)؟

عزيزي ستيفان،

نحن نستخدم بالفعل المنتدى مع نظام الدخول الموحد (SSO) داخل عرض ويب (WebView) في تطبيق. ونرغب في دمج المنتدى في موقع ويب جديد نبنيه. وأعتقد أن لدينا خيارين لذلك:

الخيار الأول: تنفيذ عدة واجهات برمجة تطبيقات (APIs) (على سبيل المثال، لاسترجاع المنشورات والفئات والنشر في منصة Discourse).

الخيار الثاني: تضمين المنتدى في موقعنا الإلكتروني باستخدام إطار مضمن (iframe) مع نظام الدخول الموحد (SSO). (وهو خيار فعال من حيث التكلفة، ويمكننا من خلاله تقييم نجاح المنتدى قبل الاستثمار فيه).

لذا، للإجابة على سؤالك: لا يرتبط خيار إطار العرض المضمن (iframe) بأي من واجهات برمجة التطبيقات (APIs).

هل توجد خطط في المستقبل القريب لجعل نظام الدخول الموحد (Discourse SSO) يعمل داخل إطار مضمن (iframe)؟

يقوم بروتوكول SSO بإعادة التوجيه إلى موقعك، ثم تقوم بإجراء المصادقة وإعادة التوجيه مرة أخرى إلى موقعنا.

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

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