Ja, unser WordPress-Plugin bietet eine Option, die Ähnliches ermöglicht. Die Funktionsweise ist folgende: Wenn ein Nutzer ein WordPress-Konto erstellt oder sich auf der WordPress-Seite anmeldet, wird ein Aufruf an die Discourse-Route /admin/users/sync_sso gesendet. Existiert der Nutzer noch nicht in Discourse, wird ein Discourse-Benutzer erstellt. Existiert der Nutzer bereits in Discourse, kann dieser Aufruf verwendet werden, um Details über den Nutzer zu aktualisieren, die sich auf der SSO-Anbieterseite geändert haben. Beispielsweise können damit der Name, der Benutzername oder die E-Mail-Adresse eines Nutzers aktualisiert werden. Zudem kann der Nutzer damit Discourse-Gruppen hinzugefügt oder daraus entfernt werden.
Für einen allgemeinen Überblick über die Route sync_sso schauen Sie bitte hier vorbei: Sync DiscourseConnect user data with the sync_sso route. Wenn Ihre Entwickler ein funktionierendes Beispiel in PHP sehen möchten, werfen Sie einen Blick auf diese Datei aus unserem WordPress-Plugin: wp-discourse/lib/sso-provider/discourse-sso.php at main · discourse/wp-discourse · GitHub. Die wichtigste Funktion in dieser Datei ist die sync_sso-Funktion.
Der einzige Nachteil, der mir bekannt ist, besteht darin, dass dies die SSO-Codebasis etwas komplexer macht. Wie es im WordPress-Plugin implementiert ist, wird zudem bei jeder Anmeldung eines Nutzers auf der SSO-Anbieterseite ein API-Aufruf an Discourse getätigt. Das liegt daran, dass es an das WordPress-Anmeldeereignis gekoppelt ist. Mir ist nicht bekannt, dass dieser API-Aufruf bei irgendwelchen Seiten zu Rate-Limit-Problemen führt, aber es wäre möglich, den Aufruf nur bei der Erstellung eines neuen Kontos vorzunehmen, falls dies ein Problem darstellen sollte.
Der Vorteil dieses Ansatzes besteht darin, dass Sie Details über Ihre Nutzer aktualisieren können, ohne dass diese sich über SSO bei Discourse anmelden müssen. Beispielsweise könnten Sie Nutzer einer Discourse-Gruppe hinzufügen, wenn sie eine Aktion auf Ihrer Website ausführen.
Ein weiterer Ansatz zur Integration einer Website mit Discourse über SSO besteht darin, SSO-Login-Links auf Ihrer Website zu verwenden. Dies ermöglicht es Ihnen, Ihren Discourse-Forum auf Ihrer Website einzubetten, der Nutzer bei Discourse anmeldet und sie zu einer bestimmten Seite weiterleitet. Dieses Thema enthält Details zur Einrichtung: Erstellen eines SSO-Login-Links.