Automatische Authentifizierung via SSO beim Verlinken zu privaten Themen auslösen?

Wir nutzen unsere eigene Anwendung als SSO-Anbieter für Discourse und haben ein Problem beim Verlinken von Benutzern zu privaten Themen in unserem Discourse-Forum von unserer Anwendung aus: Die Authentifizierung wird nur ausgelöst, wenn auf die Schaltfläche „Anmelden“ geklickt wird.

  • Wir verwenden unser eigenes System als SSO-Anbieter für Discourse.
  • Wir haben eine Mischung aus öffentlichen und privaten Seiten in Discourse, daher ist login_required nicht gesetzt.
  • Wenn sich ein Benutzer in unserem System anmeldet und wir ihn auf die Discourse-Root-URL verlinken, werden ihm die öffentlichen Kategorien angezeigt, aber er ist nicht eingeloggt.
  • Wenn sich ein Benutzer in unserem System anmeldet und wir ihn auf Discourse + /login verlinken, wird er korrekt eingeloggt und zur Root-URL von Discourse weitergeleitet.
  • Wenn sich ein Benutzer in unserem System anmeldet und wir ihn auf die URL einer privaten Kategorie/eines privaten Themas in Discourse verlinken, wird ihm eine Seite angezeigt, die ihn zur Anmeldung auffordert. Klickt er auf „Anmelden“, wird er automatisch eingeloggt und sieht die Kategorie/das Thema.

Dieser letzte Fall ist das Problem. Ich denke, eine der folgenden Lösungen wäre gut:

  • Wir können auf ourdiscourse.com/c/some-category?login=true verlinken, und eine Authentifizierungsprüfung wird durchgeführt: Ist der Benutzer eingeloggt, wird ihm das Thema angezeigt. Ist er es nicht, wird er an unseren SSO-Anbieter weitergeleitet und nach der Anmeldung zurück zum Thema geleitet.
  • Wir können auf ourdiscourse.com/login?redirect=c/some-category verlinken, und eine Authentifizierungsprüfung wird durchgeführt: Bei Erfolg wird zur Seite in der Abfragezeichenkette weitergeleitet; bei Misserfolg zum SSO-Anbieter, und nach erfolgreicher Authentifizierung zurück zur Seite in der Abfragezeichenkette.
  • Wir können auf ourdiscourse.com/c/some-category verlinken, und wenn es sich um eine private Seite handelt, führt Discourse eine Authentifizierungsprüfung durch: Bei Erfolg wird man zur Kategorie geleitet; bei Misserfolg zum SSO-Anbieter und danach zurück.

Vielen Dank!

(Ich habe das Problem bereits hier gepostet – Entschuldigung für die mehrfachen Beiträge, aber ich dachte, ein neues Thema könnte mehr Resonanz erhalten.)

You can create an login link on your SSO provider site with a return_path parameter in the URL. After authentication, Discourse will redirect the user to the value set for the return_path. The link should be in this form:

<a href="https://forum.example.com/session/sso?return_path=https://forum.example.com/your-discourse-endpoint">Link Text</a>
5 „Gefällt mir“

Can’t they also have the SSO do something similar so that when they log in to the SSO they are also logged in to Discourse?

The only ways I know of auto logging in users to Discourse when the login to the SSO provider site seem a little hacky. With the use of SSO login links in the form I gave above and the sync_sso route for updating users without requiring them to login, I can’t see where it would be required.

1 „Gefällt mir“

Thank you - this has worked perfectly.

I’m not sure if we are doing this - what would be the way to check?

EDIT: should have searched first… details here: Sync DiscourseConnect user data with the sync_sso route

3 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.