Memberstack + Webflow + Discourse OpenID Connect

Hallo – ich habe dazu einige ältere Beiträge gesehen, aber nichts Aktuelles. Ich habe diese Frage auch im Memberstack-Forum gestellt…

Ich arbeite an einem Projekt zum Aufbau einer neuen privaten/geschlossenen Community und bin daran interessiert, Memberstack + Webflow und SSO für die Community-Plattform mit Discourse zu nutzen. Ich bin der Meinung, dass dies jetzt mit benutzerdefinierter SSO-Integration unterstützt wird. Ich muss insbesondere sicherstellen, dass Benutzer auf Webflow-Seiten authentifiziert werden können und dann nahtlos zur Discourse-Community-Website navigieren können. Ich habe Kommentare gesehen, die darauf hindeuten, dass dies möglich ist, und ich habe die Memberstack SSO-Dokumentation gesehen, suche aber nach spezifischeren Informationen zur Discourse-Integration. Nutzt jemand eine solche Einrichtung, bei der Memberstack für die Verwaltung von SSO für Discourse verwendet wird? Ich muss es so schnell wie möglich testen. Danke.

3 „Gefällt mir“

Ja, das wird jetzt unterstützt! Memberstack ermöglicht es Ihnen jetzt, Memberstack als OpenID Connect-Anbieter zu verwenden: https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations. Dies ermöglicht es Benutzern, sich über Memberstack bei Ihrer Discourse-Site anzumelden. Wenn Sie Ihre Discourse-Site so konfigurieren, dass OpenID Connect die einzige verfügbare Anmeldeoption auf der Website ist, wird die Anmeldung bei Discourse von Ihren Webflow-Seiten aus für Ihre Benutzer nahtlos sein. (Hinweis: Entfernen Sie die Option zur Anmeldung bei Ihrer Discourse-Site mit Benutzername/Passwort erst, wenn Sie bestätigt haben, dass die OpenID Connect-Anmeldungen funktionieren.)

Damit dies funktioniert, benötigen Sie das Discourse OpenID Connect-Plugin, das auf Ihrer Discourse-Site installiert ist. Details zur Konfiguration dieses Plugins finden Sie hier: Discourse OpenID Connect (OIDC).

Ich empfehle Ihnen, das Video in der Memberstack-Dokumentation, auf das ich verwiesen habe, anzusehen, bevor Sie versuchen, OpenID Connect-Anmeldungen für Ihre Discourse-Site zu konfigurieren. Es führt Sie durch den Prozess der Konfiguration von Memberstack OpenID Connect-Anmeldungen, um mit der Testseite unter https://openidconnect.net/ zu funktionieren. Nachdem Sie dies getan haben, sollte die Einrichtung der OpenID Connect-Authentifizierung für Discourse ein unkomplizierter Prozess sein.

Wenn es bestehende Discourse-Sites gibt, die die OpenID Connect-Authentifizierung mit Memberstack konfiguriert haben, wäre es großartig, von ihnen zu hören.

5 „Gefällt mir“

@simon Vielen Dank für Ihre Eingaben und die Bestätigung, dass dies funktionieren sollte! Ich hoffte, diese Art von Validierung zu erhalten, bevor ich mit Webflow zu weit in diese Richtung gehe. Ich nutze dies, um ein Pilotprogramm durchzuführen, und ich möchte während des Pilotprogramms Memberstack + Webflow + Discourse testen. Dies dient also nur dazu, das MVP zu beweisen, und es ist sehr gut möglich, dass ich mich langfristig für etwas ganz anderes entscheiden werde (außer Discourse… das behalte ich definitiv bei!).

Da diese Memberstack OpenID-Unterstützung noch recht neu ist, würde ich mich freuen zu hören, ob hier jemand diese Art von Einrichtung im Produktivbetrieb nutzt.

2 „Gefällt mir“

Hallo! Konnten Sie eine funktionierende Lösung dafür implementieren? OpenID erfordert ein Geschäftskonto bei Discourse, das 300 $/Monat kostet! Ich hatte gehofft, DiscourseConnect SSO verwenden zu können, um das zu erreichen, was Sie mit Webflow und Memberstack erwähnt haben!

Soweit ich weiß, wurde eine funktionierende Lösung mit OpenID Connect implementiert.

Ich glaube nicht, dass Webflow es Ihnen erlaubt, serverseitigen Code zu Ihrer Website hinzuzufügen. Wenn das korrekt ist, wird es nicht möglich sein, DiscourseConnect mit Webflow zu verwenden.

@JammyDodger, dieses Thema könnte in „Memberstack + Webflow + Discourse OpenID Connect“ umbenannt werden.

1 „Gefällt mir“

Hallo zusammen! Ich konnte SSO für Discourse über meinen Memberstack-Login zum Laufen bringen! Sobald ich mich über OpenID in meinem Discourse-Forum anmelde, erhalte ich ein Pop-up, um „mein Konto“ im Forum zu erstellen. Ist das so vorgesehen oder sollte ich direkt angemeldet werden? Ich habe einen Screenshot des Pop-ups beigefügt, das ich erhalte, nachdem ich mich mit meinen Memberstack-Daten angemeldet habe. Vielen Dank im Voraus!

Das ist großartig!

Auf Ihrem Screenshot scheint Ihre E-Mail-Adresse nicht im Anmeldeformular ausgefüllt zu sein. Es ist schon eine Weile her, seit ich das Memberstack-Video (https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations) gesehen habe, aber ich glaube, die Discourse-Site-Einstellung openid_connect_authorize_scope muss auf openid email profile gesetzt werden, damit sowohl die E-Mail-Adresse als auch der Benutzername in die Nutzlast aufgenommen werden, die an Discourse gesendet wird.

Ich habe derzeit keine Möglichkeit, dies zu testen, aber Sie müssen möglicherweise diese Einstellungen aktivieren, um das Pop-up zur Kontoerstellung zu überspringen (andernfalls werden die Felder immer noch ausgefüllt, aber die Benutzer müssen auf die Schaltfläche „Konto erstellen“ klicken):

  • auth skip create confirm (muss definitiv aktiviert sein, um das Pop-up zur Kontoerstellung zu überspringen)
  • auth overrides email
  • auth overrides username
  • auth overrides name

Der einfachste Weg, dies zu testen, ist, wenn Sie ein Nicht-Admin-Konto auf Ihrer Webflow-Site haben. Auf diese Weise können Sie versuchen, sich mehrmals als dieser Benutzer anzumelden und dessen Konto in Discourse zu löschen, wenn es nicht wie erwartet funktioniert.

Vielen Dank, Simon! Das Hinzufügen der zusätzlichen Elemente in „openid_connect_authorize_scope“ hat es behoben und die Aktivierung von „auth skip create confirm“ überspringt das Popup und leitet direkt zur Homepage des Forums weiter! Ich habe „openid connect overrides email“ aktiviert – was bewirkt das?

Und gibt es eine Möglichkeit, die Schaltfläche „Registrieren“ in Discourse so einzustellen, dass sie zu einer benutzerdefinierten Registrierungsseite auf meiner Website weiterleitet? Derzeit meldet mich das Klicken auf „Registrieren“ über OpenID an, aber ich möchte, dass es zu einer bestimmten Seite auf meiner Website verlinkt.

Vielen Dank für all Ihre Hilfe, sie war von unschätzbarem Wert!

Richtig, für OpenID Connect heißt die Einstellung openid connect overrides email und nicht auth overrides email. Wenn diese aktiviert ist, wird jedes Mal, wenn sich ein Benutzer über OpenID Connect bei Discourse anmeldet, seine Discourse-E-Mail auf den Wert der E-Mail-Adresse gesetzt, die er auf der OpenID Connect-Authentifizierungsanbieterseite verwendet. Das bedeutet, dass, wenn ein Benutzer seine E-Mail-Adresse in Discourse geändert hat, diese automatisch auf den Wert der E-Mail-Adresse zurückgesetzt wird, die er bei Memberstack verwendet.

Sie können die Website-Einstellung email editable deaktivieren, um Probleme mit E-Mail-Adressen zu vermeiden, die nicht mit dem Authentifizierungsanbieter synchron sind. Wenn Sie also email editable deaktivieren und openid connect overrides email aktivieren, können Benutzer ihre E-Mail-Adresse nur ändern, indem sie sie bei Memberstack ändern und sich dann über Memberstack bei Discourse anmelden.

Ich glaube nicht. Nachdem jemand auf die Schaltfläche „Registrieren“ in Discourse geklickt hat, leitet Discourse ihn zum authorization_endpoint weiter, der von Memberstack bereitgestellt wird. Möglicherweise erlaubt Memberstack dies zu konfigurieren, aber Sie müssten sich an sie wenden, um dies herauszufinden.

Ein anderer möglicher Ansatz ist, dass es möglich sein könnte, einen Link zur benutzerdefinierten Seite in den Discourse-Header einzufügen. Vielleicht mit dieser Theme-Komponente: Custom Header Links. Idealerweise könnten Sie den Link mit etwas CSS vor angemeldeten Benutzern ausblenden.

Danke Simon! Ich habe die OpenID-Überschreibungen für E-Mail aktiviert und die E-Mail-Bearbeitung deaktiviert. Danke, dass Sie mich da durchgeführt haben!

Das ist eine gute Idee bezüglich des Anmeldebuttons, ich werde mich darum kümmern!

1 „Gefällt mir“

@ryanshah112 Ich konnte dies als Proof of Concept (mit viel Hilfe von @simon) zum Laufen bringen, habe mich aber gegen das MS-Setup entschieden und das Projekt nun für ein paar Monate pausiert. Ich muss es wieder in Gang bringen. Ich fand die MS OpenID-Integration nicht sehr gut funktionierend. Zum einen gibt es das doppelte Login-Problem, das den Onboarding-Flow weniger als ideal machte – es fragt nicht nur nach der Autorisierung der App, sondern lässt den Benutzer auch einloggen. Ich wollte einen benutzerdefinierten Onboarding-Flow einrichten, bei dem sich der Benutzer auf der Webflow-Website anmeldet und nahtlos zu Discourse navigieren kann. Ich habe dies mit Formularen, Zapier und Airtable zum Laufen gebracht, indem ich einen Discourse-Benutzer über die API erstellt habe. Es war als Proof of Concept ziemlich cool, aber nicht wirklich etwas, das ich als Produktionssystem haben wollte. Wenn ich wieder anfange, werde ich mich wahrscheinlich nicht auf MS als IDP verlassen, sondern es mit etwas wie Wized mit Supabase oder Ähnlichem aufbauen. Ich denke, die MS + Discourse-Sache würde gut funktionieren, wenn Sie mit einigen der Einschränkungen einverstanden sind.

1 „Gefällt mir“

Können Sie mir sagen, was die Discourse Connect URL sein wird? Es gibt Authorization Token Endpoint, Token Endpoint und Token Keys Endpoint.

Hallo River, wenn du dir bei OpenID Connect unsicher bist, empfehle ich dir, das Memberstack OpenID Connect-Video anzusehen und das Tutorial durchzugehen: https://docs.memberstack.com/hc/en-us/articles/8161104982043-Custom-SSO-Integrations. Das habe ich auch gemacht.

Für die Konfiguration von OpenID Connect auf Discourse-Seite findest du die relevanten Informationen hier: Discourse OpenID Connect (OIDC). Ein Detail, das spezifisch für Memberstack ist und in diesem Thema nicht erwähnt wird, ist, dass meiner Meinung nach die Discourse-Website-Einstellung openid_connect_authorize_scope auf Folgendes gesetzt werden muss:

  • openid email profile

(Vorausgesetzt, das ist korrekt, sollte es zum Abschnitt „Anbieterspezifische Hinweise“ am Ende des Discourse OpenID Connect-Themas hinzugefügt werden.)

Dies ist eine Ursache für endlose Verwirrung hier, aber DiscourseConnect bezieht sich auf ein völlig separates Authentifizierungsprotokoll. Die Informationen, die du benötigst, findest du im Discourse OpenID Connect-Thema, auf das ich verlinkt habe.

Hallo Simon,
Danke für die Klärung. Gibt es eine Methode, Memberstack mit DiscourseConnect zu verbinden?

Ich bin mir ziemlich sicher, dass es nicht möglich ist, DiscourseConnect mit Memberstack zu verwenden. Damit es funktioniert, müssten Sie in der Lage sein, serverseitigen Code zu Ihrer Memberstack-Website hinzuzufügen. Ich glaube nicht, dass das möglich ist.

Es könnte sich lohnen, Memberstack danach zu fragen. Sie könnten DiscourseConnect für alle ihre Websites implementieren, ähnlich wie Memberful es getan hat: Integrate Discourse with Memberful - Memberful. Ich stehe für Beratungsleistungen zur Verfügung, falls sie dabei Hilfe benötigen :slight_smile:

Hallo River! Ich stimme Simon zu, dass es nicht möglich ist, DiscourseConnect zu verwenden, und stattdessen musst du OpenID verwenden. Wenn du Hilfe bei der Konfiguration von Memberstack x Discourse über OpenID benötigst, helfe ich dir gerne, da ich dies mit Simons Hilfe zum Laufen gebracht habe! Du benötigst den “Business”-Plan, wenn du über Discourse-Hosting gehst.

@ryanshah112 und @river - Zu Ihrer Information - als ich diesen Thread begann, hatte ich die zwingende Anforderung, Webflow zu verwenden. Memberstack war wirklich die einzig praktikable Option für SSO über OpenID und ich habe es seit vielleicht 6 Monaten nicht mehr angeschaut, daher haben sich einige Dinge dort möglicherweise verbessert. Aber wenn Sie bereit sind, Wordpress in Betracht zu ziehen, gibt es viele Vorteile mit DiscourseConnect.

Ryan - Ich habe mit dem Business-Plan begonnen, um ihn zu testen, aber nach ein paar Monaten bin ich zu Self-Hosted gewechselt, weil ich für meinen POC außer OpenID keine Funktionen auf “Business”-Niveau benötigte. Je nachdem, was Sie brauchen, sollten Sie das in Betracht ziehen, und ich empfehle @pfaffman, wenn Sie Hilfe bei der Einrichtung benötigen. Super einfach.

2 „Gefällt mir“