What are your experiences with wp-discourse plugin and DiscourseConnect?

I’m considering the WP-Discourse plugin to integrate my WP site with Discourse, but would be interested in understanding a bit better what the benefits and costs are. What do you lose exactly when you turn on SSO in terms of discourse functionality, and what do you gain? How are the WP and Discourse accounts linked? For example, can the user profile info like picture, username, email address, “about me” and location be shared across both platforms?

Thanks for any guidance. I’d love to be directed also any good examples of the wp-discourse plugin in action, with and without SSO.

Dies ist eine alte Frage, aber seit ihrer Stellung im Jahr 2015 gab es einige Änderungen. Eine bemerkenswerte Änderung ist, dass wir nun den Begriff DiscourseConnect anstelle von Discourse SSO verwenden. Dies liegt daran, dass der Begriff SSO für verschiedene Authentifizierungsmechanismen (SAML, OAuth2, Auth0 usw.) verwendet werden kann. DiscourseConnect ist die Implementierung von SSO durch Discourse.

Wenn DiscourseConnect aktiviert ist, findet die gesamte Authentifizierung auf der Discourse-Website an der Stelle statt, die Sie mit der Site-Einstellung discourse connect url festgelegt haben. Das bedeutet, dass Benutzer ihre Konten erstellen, indem sie sich auf Ihrer externen Website registrieren, anstatt sich auf Discourse zu registrieren. Kontodetails werden an Discourse übergeben, wenn Benutzer sich über DiscourseConnect anmelden. Wenn Benutzer sich zum ersten Mal bei Discourse anmelden, werden ihre Kontodetails aus den Daten im SSO-Payload festgelegt. Je nach den Werten einiger Discourse-Site-Einstellungen werden die Kontodetails entweder bei jeder Anmeldung des Benutzers bei Discourse weiter synchronisiert, oder Benutzer können eindeutige Werte für ihr Konto auf Discourse festlegen. Die relevanten Einstellungen hierfür sind:

  • auth overrides email
  • auth overrides username
  • auth overrides name
  • discourse connect overrides bio
  • discourse connect overrides avatar
  • discourse connect overrides profile background
  • discourse connect overrides location
  • discourse connect overrides website
  • discourse connect overrides card background
  • discourse connect overrides groups

Beachten Sie, dass das WP Discourse-Plugin standardmäßig nur die folgenden Felder im Payload sendet:

  • username
  • email
  • name
  • bio
  • avatar_url

Zusätzliche Parameter können dem Payload hinzugefügt werden, indem Sie den Filter-Hook wpdc_sso_params des WP Discourse-Plugins verwenden.

Möglicherweise die größte Funktionalität, die durch die Aktivierung von DiscourseConnect verloren geht, ist, dass es bei Aktivierung zur einzigen Authentifizierungsmethode für die Site wird. Das bedeutet, dass soziale Anmeldungen auf Discourse nicht parallel zu DiscourseConnect aktiviert werden können. Sie können jedoch soziale Anmeldungen auf Ihrer Authentifizierungsanbieter-Website aktivieren. Beispielsweise könnten Sie Benutzern ermöglichen, sich über verschiedene soziale Anmeldeanbieter auf Ihrer Website anzumelden und sie dann über DiscourseConnect bei Discourse anzumelden. Ein ähnlicher Ansatz kann mit OAuth2 oder SAML verwendet werden. Benutzer können sich mit diesen Authentifizierungsmethoden auf Ihrer Website anmelden und dann zur Anmeldung bei Discourse über DiscourseConnect weitergeleitet werden.

Eine weitere verlorene Funktionalität ist, dass die Discourse-Site-Einstellung invite only nicht parallel zu DiscourseConnect aktiviert werden kann.

Die Möglichkeit, Benutzerdaten einfach von einer externen Anwendung mit Discourse zu synchronisieren, ist ein großer Vorteil. Discourse-Gruppenmitgliedschaften können leicht mit den Feldern add_groups und remove_groups festgelegt werden, die im SSO-Payload übergeben werden. Das WP Discourse-Plugin übermittelt standardmäßig keines dieser Felder, aber sie können dem Payload hinzugefügt werden, indem Sie den Filter-Hook wpdc_sso_params des WP Discourse-Plugins verwenden.

Gruppenmitgliedschaften und alle anderen Felder, die im Payload festgelegt werden können, können auch in einer Hintergrundanfrage synchronisiert werden. Für Details siehe DiscourseConnect-Benutzerdaten mit der Route sync_sso synchronisieren. Für Details zur Synchronisierung von Gruppen mit dem WP Discourse-Plugin siehe Verwaltung der Discourse-Gruppenmitgliedschaft mit WP Discourse SSO.

Ein weiterer möglicher Vorteil ist, dass, wenn Sie bereits eine große Benutzerbasis auf einer externen Site haben, die Aktivierung von DiscourseConnect diesen Benutzern ermöglicht, sich bei Discourse anzumelden, ohne ein separates Discourse-Konto erstellen zu müssen.

Bei DiscourseConnect werden Konten basierend auf der external_id verknüpft, die vom SSO-Anbieter an Discourse übergeben wird. Das WP Discourse-Plugin verwendet die WordPress-ID des Benutzers für die external_id.

Ja, standardmäßig werden alle diese Felder mit der Implementierung von DiscourseConnect durch WP Discourse festgelegt. Wie oben erwähnt, hängt es von den Werten verschiedener Discourse-Site-Einstellungen ab, ob sie bei jeder Anmeldung des Benutzers bei Discourse weiter synchronisiert werden.

7 „Gefällt mir“