أحاول الحصول على فهم أوضح لخياراتنا في مشروع إعادة الهيكلة الذي أعمل عليه. لقد كنت أبحث في المنتديات للحصول على مزيد من الرؤى، وبينما وجدت استفسارًا مشابهًا، فإن سيناريو صاحب المنشور الأصلي يختلف إلى حد ما عن حالتنا، لذا أنشأت هذا الموضوع الجديد.
لدينا حاليًا موقع WordPress على domain.com مُعد كعميل SSO لحالة Discourse الموجودة على community.domain.com، ولكن يتم إعادة تنظيم موقع WP كشبكة متعددة المواقع، مثل sub1.newdomain.com، sub2.newdomain.com، إلخ، وحالة Discourse منفصلة لكل موقع، مثل forum.sub1.newdomain.com (أو بشكل مثالي sub1.newdomain.com/forum، إذا تمكنا من حل إعداد المجلد الفرعي).
نريد أن يكون للمستخدمين هوية واحدة عبر جميع المجتمعات، ونحن نعرف كيفية مزامنة المستخدمين الذين يسجلون في أحد المواقع الفرعية لـ WP عبر الشبكة بأكملها. أفهم أن حالة Discourse واحدة يمكن أن تعمل كخادم SSO لحالة أخرى، لكنني لم أتمكن من العثور على تأكيد لكيفية إعداد ذلك أو ما إذا كان هذا يعمل مع عملاء Discourse متعددين.
إذن، إليك أسئلتي:
في السيناريو الموصوف، هل من الممكن إعداد حالة Discourse على، على سبيل المثال، auth.newdomain.com لتعمل كخادم SSO لشبكة WPMS وأيضًا جميع حالات Discourse المرتبطة بالمواقع الفرعية؟
إذا كانت الإجابة على السؤال السابق بنعم، فهل من الممكن عمليًا إعداد حالة “الخادم” هذه لتقديم وظائف تتعلق بالمصادقة فقط؟ بمعنى، لن يكون لها أي غرض سوى أن تكون مصدر الحقيقة للمصادقة للشبكة بأكملها، بغض النظر عن الموقع الذي يرغب المستخدم في المصادقة ضده. أم أنه من الأنسب الاعتماد على حل مصادقة خارجي في هذه المرحلة؟
مرحبًا — ظهرت هذه الرسالة لي لأنك ربطت بموضوعي الأصلي. سأترك لـ @simon أن يشاركنا آراءه، لكن أحد الخيارات التي قد تنجح معك (وقد لا تنجح) — وهي أبسط بكثير — هو إعداد instance واحد من Discourse واستخدام المجموعات لفصل المنتديات. يمكنك إرسال معلومات المجموعة ضمن حمولة SSO.
ومع ذلك، فإن وجود منتديات متعددة مع منتدى واحد يوفر SSO يجب أن يكون أمرًا مباشرًا إلى حد ما (على الرغم من أنني لم أجربه من قبل). أعتقد أن الخطوات ستكون كالتالي:
إضافة مكون WP Discourse، وتكوينه كعميل SSO (في خيارات الشبكة).
إعداد منتدى Discourse الذي تريد أن يعمل كمزود SSO (إضافة مفاتيح سرية إلى WP وDiscourse، وما إلى ذلك).
من هناك، عند إضافة منتديات لاحقة، سيتم تكوينها كعملاء SSO (وبما أن WP Discourse مُعد على مستوى الشبكة، فلن تحتاج إلى تعديل أي إعدادات عند إضافة مواقع جديدة).
يمكنك استخدام Discourse كمزود SSO في شبكة متعددة المواقع. يتم تمكينه فقط إذا قمت بإعداد موقع Discourse واحد كمزود SSO لجميع المواقع في الشبكة. والسبب في ذلك هو أنه في شبكة متعددة المواقع، يتم تخزين جميع المستخدمين في جدول قاعدة بيانات واحد. إذا سُمح لمواقع Discourse متعددة بالعمل كمزودي SSO لمواقع متعددة في شبكة، فلا توجد طريقة مباشرة لضمان أن معرفات مستخدمي Discourse المحفوظة في WordPress فريدة من نوعها.
عند تثبيت مكون إضافة WP Discourse على شبكة متعددة المواقع، يتم إضافة علامة تبويب Discourse إلى قائمة إدارة الشبكة. لتكوين Discourse كمزود SSO لجميع المواقع في الشبكة، انتقل إلى صفحة إدارة الشبكة وحدد Discourse من القائمة. حدد خيار “تمكين إعدادات الشبكة المتعددة” ثم املأ إعدادات الاتصال. ثم قم بالتمرير لأسفل الصفحة إلى قسم إعدادات SSO. حدد خيار “تمكين عميل SSO”. أدخل مفتاح سر SSO واحفظ صفحة الإعدادات.
هناك شيء يجب الانتباه إليه وهو أن تمكين وظيفة عميل SSO على شبكة متعددة المواقع قد يمنح إمكانية الوصول لأي مستخدم في منتدى Discourse الخاص بك إلى أي موقع في شبكتك.
بشكل أساسي، إذا كنت تحاول تحقيق شيء آخر غير ذلك باستخدام Discourse كمزود SSO لشبكة WordPress متعددة المواقع، فأنت وحدك في ذلك. سيكون من الممكن تقنيًا السماح لمواقع Discourse متعددة بالعمل كمزودي SSO لمواقع فردية في شبكة WordPress، لكن الإعداد المطلوب لذلك سيكون معقدًا بشكل مفرط. لا أعتقد أنه شيء سيتم إضافته أبدًا إلى مكون إضافة WordPress.
شكرًا جزيلاً لك على ردك. كان المنشور الذي اقتبسته هو ما أشرت إليه في منشوري الأصلي. لا أواجه أي مشاكل فعليًا في جانب ووردبريس — فنحن نعرف كيفية الاتصال على مستوى الشبكة ثم مزامنة المستخدمين عبر جميع المواقع الفرعية. ما أحاول فهمه أكثر هو كيفية إعداد أحد مواقع ديسكورش ليعمل كخادم SSO لموقع ديسكورش آخر؟ كنت أحاول توضيح ما إذا كان من الممكن القيام بذلك بينما يكون موقع ديسكورش المعني بـ “المصادقة” هو أيضًا خادم SSO لووردبريس في نفس الوقت.
لم أتمكن من العثور على أي توثيق يتعلق بترتيب ديسكورش-ديسكورش. إذا أمكنك توجيهي إلى المكان الذي يمكنني فيه العثور على مزيد من المعلومات، أو ببساطة توضيح الخطوات اللازمة، سأكون ممتنًا للغاية.
أفهم وجهة نظرك، لكن Discourse ليس مصممًا لاستخدامه لغرض المصادقة فقط. أنصحك بقضاء بعض الوقت في النظر في خدمة مصادقة مخصصة تربطها بين مثيلات Discourse وWordpress المختلفة. فالاستثمار قليلًا في البحث الآن قد يعود بفوائد كبيرة لاحقًا.
لكن نصيحتي الأساسية لك هي أن ما تقترحه معقد، وبغض النظر عن المسار الذي تختاره، يجب أن تنشئ بيئة تجريبية تعكس بيئة الإنتاج المقصودة لتجربة تكوينات مختلفة قبل نشرها. يمكن أن يتأثر هذا النوع من الإعدادات بعدة متغيرات مختلفة، ومن الصعب تقديم نصائح حوله بشكل مجرد.
أعلم أن فكرة إنشاء بيئة تجريبية منفصلة بالكامل لشبكة معقدة من الخوادم قد تبدو مرهقة، لكن الجهد المبذول في ذلك أقل بكثير من محاولة معالجة المشكلات غير المتوقعة التي قد تظهر بمجرد إطلاق شيء مثل هذا.