Automatisch über SSO anmelden

Ich habe SSO eingerichtet und alles funktioniert einwandfrei. Ich möchte jedoch, dass meine Benutzer automatisch eingeloggt werden, wenn sie unsere Discourse-Community besuchen und bereits auf unserer Hauptwebsite angemeldet sind. Im Wesentlichen soll der Klick auf die Schaltfläche „Anmelden" den SSO-Prozess starten und die Benutzer dann dorthin zurückbringen, wo sie sich ursprünglich in Discourse befanden.

Ich habe mich erst kurz mit dem Anmeldecode beschäftigt, hoffe aber, dass jemand anderes einen Hinweis darauf geben kann, wie ich die Anmeldung von einer benutzerdefinierten Theme-Komponente aus initiieren kann.

Dies ist möglich, kann jedoch zu Problemen beim Anmelden bei Ihrer SSO-Anbieterseite führen, falls die SSO einmal falsch konfiguriert ist. Ein sichererer Ansatz besteht darin, einen SSO-Anmelden-Link auf einer Website hinzuzufügen, der Benutzer automatisch in Discourse anmeldet und sie nach dem Klicken auf den Link zu einer angegebenen Seite weiterleitet. Weitere Informationen finden Sie unter Create a DiscourseConnect login link.

Können Sie genauer erläutern, welche Arten von Problemen auftreten könnten?

In meinem speziellen Fall werden Besucher die Hauptanwendung in einer bestimmten Sitzung nicht zuerst aufrufen. Sie besuchen die Community-Seite, waren aber zu einem früheren Zeitpunkt in der Hauptanwendung eingeloggt. Ich möchte die Anmeldesitzung automatisch ohne jegliche Benutzerinteraktion übernehmen.

Ich bin bei diesem Ansatz auf ein Problem gestoßen, als ich versuchte, Benutzer von WordPress aus bei Discourse anzumelden, indem ich sie stillschweigend zu Discourse und dann als Teil des WordPress-Anmeldevorgangs zurück zu WordPress weiterleitete. Wenn die SSO falsch konfiguriert war, wurden Benutzer von WordPress ausgeschlossen.

Wenn Sie diesen Ansatz dennoch versuchen möchten, müssen Sie in Discourse die Einstellung sso allows all return paths aktivieren. Wenn Sie das tun, können Sie Benutzer dann wie folgt weiterleiten:

https://discourse.example.com/session/sso?return_path=path_back_to_your_sso_provider_site