ich suche nach Informationen zur Machbarkeit, eine weitere Discourse-Community in unsere aktuelle Einrichtung zu integrieren. Momentan nutzen wir ein WordPress-Multisite-Setup mit einer Discourse-Community, die Discourse-SSO für eine auf die Discourse-Community spezialisierte Website verwendet, wobei ein anderer SSO-Anbieter den WP-Login steuert.
Ich plane, eine neue WP-Site für eine neue Discourse-Community hinzuzufügen, bin mir aber unsicher, ob mehrere Discourse-Foren innerhalb dieses Multisite-Setups miteinander verbunden werden können (falls das Sinn ergibt). Da SSO ein WP-Netzwerk-Setup ist, scheint es nicht möglich zu sein, mehr als eine Discourse-Instanz zu haben.
Idealerweise hätten wir:
WP-Multisite
2 Discourse-Instanzen
(Nutzer beider Discourse-Instanzen sollten nur Zugriff auf die Community haben, der sie angehören).
Ich habe einige Beiträge über ein Multisite-WP-Setup mit einer Single-Site-Discourse (und umgekehrt) gelesen, aber keine Informationen zu Multisite-WP und mehreren Discourse-Instanzen.
Es ist nicht möglich, dass Websites in einer WordPress-Multisite-Konfiguration als SSO-Anbieter für zwei Discourse-Instanzen fungieren. Der Grund dafür ist, dass in einem Multisite-Netzwerk alle Benutzer in einer einzigen Datenbanktabelle gespeichert sind. Wenn mehrere Discourse-Sites als SSO-Anbieter für mehrere Sites in einem Netzwerk fungieren dürfen, gibt es keine einfache Möglichkeit, sicherzustellen, dass die in WordPress gespeicherten Discourse-Benutzer-IDs eindeutig sind.
Danke – das habe ich mir auch gedacht. Wäre es möglich, eine Discourse-Instanz als SSO-Anbieter für die andere Instanz zu verwenden, während gleichzeitig der korrekte Benutzerzugriff auf ihre jeweiligen Communities gewährleistet bleibt?
Eine Discourse-Instanz kann als SSO-Anbieter für eine andere Discourse-Instanz fungieren. Ich gehe davon aus, dass Sie eine Konfiguration im Sinn haben, bei der WordPress als SSO-Anbieter für Discourse-Instanz 1 dient und Discourse-Instanz 1 wiederum als SSO-Anbieter für Discourse-Instanz 2 agiert. Das halte ich für möglich, habe jedoch noch nie eine Discourse-Seite so konfiguriert, dass sie sowohl SSO-Client als auch SSO-Anbieter ist.
Bei der oben beschriebenen Konfiguration hätten alle Benutzer von Discourse-Instanz 1 Zugriff auf Discourse-Instanz 2. Das ist meiner Meinung nach nicht das, was Sie beabsichtigen.
Ein weiterer möglicher Ansatz wäre die Nutzung einer einzigen Discourse-Instanz und die Beschränkung des Zugriffs auf bestimmte Forenbereiche mittels Kategoriegruppenberechtigungen. Sie können Discourse-Gruppen im SSO-Payload übergeben. Auf Ihrer WordPress-Seite sollte es möglich sein, festzustellen, auf welche Seiten ein Benutzer Zugriff hat. Sie könnten für jede WordPress-Seite eine Discourse-Gruppe erstellen und dann den Filter wpdc_sso_params verwenden, um einen add_groups-Parameter zum SSO-Payload hinzuzufügen.
Derzeit ist Discourse SSO der SSO-Anbieter – ich vermute, die (neue) Überlegung wäre, Instanz 1 als SSO-Anbieter (für beide Instanzen 1 und 2) einzurichten.
Im Wesentlichen das gleiche SSO-Setup wie jetzt beibehalten, aber eine weitere Discourse-Instanz hinzufügen und dennoch eine Möglichkeit haben, den Zugriff zwischen Instanz 1 und Instanz 2 einzuschränken.
Hallo @simon – ich implementiere dies derzeit und bin mir nicht sicher, warum ich im WP Discourse-Plugin keine SSO-Client-Optionen sehe. Siehe Screenshot unten:
Meine Verbindung wird als aktiv angezeigt (auch die letzte Verwendung des API-Schlüssels bestätigt dies). Beim Einfügen des Shortcodes [discourse_sso_client] scheint es ein Konfigurationsproblem zu geben (der Location-Antwort-Header enthält die vom Shortcode [discourse_sso_client] generierte URL anstelle des SSO-Payloads).
Das ist beabsichtigt. Die SSO-Client-Option ist nur in Multisite-Netzwerken verfügbar, wenn sie auf netzwerkweiter Ebene konfiguriert ist. Ich muss in meiner lokalen Entwicklungsumgebung ein Multisite-Netzwerk einrichten, um die Einstellungen noch einmal zu überprüfen. Ich melde mich später heute bei dir dazu.
Anscheinend wird diese Option für mich nicht korrekt gesetzt – ich bin mir nicht sicher, ob es an der Einrichtung auf Netzwerkebene liegt oder an etwas anderem.
Die Dokumentation zur Einrichtung des Plugins in einem Multisite-Netzwerk ist veraltet. Das ist eine gute Gelegenheit, sie zu ordnen und den Leitfaden zur Installation und Einrichtung des WP Discourse-Plugins zu aktualisieren.
Um die SSO-Client-Funktionalität in einem Multisite-Netzwerk zu nutzen, muss das Plugin auf Netzwerkebene konfiguriert werden. Dies erfolgt, indem Sie im Netzwerk-Dashboard auf den Discourse-Link klicken: