Keycloak SSO und Logout Problem

Hallo!
@david bitte hilf mir, großer Mann! ))))

Ich habe das Discourse + Keycloak SSO + SAML-Plugin + OpenID Connect-Plugin-Bundle erfolgreich konfiguriert. Es gibt nur eine Sache, die diese Schönheit überschattet – das Abmelden.

Ich melde mich vom Forum ab, der Benutzer wird abgemeldet, dieser Teil funktioniert einwandfrei.
Dann schaue ich mir die offenen Sitzungen in Keycloak an – die Sitzung des Benutzers, der das Forum verlassen hat, wird nicht gelöscht.
Ich vermute, dass dies an den Einstellungen für die Abmeldungs-URL liegt. Ich weiß nur nicht, wo – in Discourse oder in Keycloak.

Meine SAML-Einstellungen in Keycloak:

Meine OpenID Connect-Einstellungen in Keycloak:

Das OpenID Connect-Plugin unterstützt den RP Initiated Logout. Wird dies von Keybase unterstützt?

Jetzt gilt es noch zu verstehen, was das ist und ob es in Keycloak enthalten ist ))))
Wo wird diese Option im OpenID-Connect-Plugin konfiguriert?

Es ist in den Site-Einstellungen konfiguriert:

Danke! Ich werde versuchen, bei Google zu suchen, was Keycloak zu dieser Frage hat.

Ja! Es funktioniert einwandfrei! Ich möchte jedoch klarstellen, dass es notwendig ist, die Variable openid_connect_rp_initiated_logout_redirect zu setzen.

@david Ich habe noch eine weitere Frage. Eine wichtige Frage.
Ich befinde mich gerade in der Endphase der Tests für Keycloak SSO und muss mich für ein Protokoll entscheiden – SAML oder OpenID Connect.
Ich habe OpenID Connect bevorzugt, aber ich habe derzeit ein ärgerliches Problem bei der Erstellung neuer Benutzer mit OpenID Connect festgestellt.

Um das Problem zu verstehen, fange ich von einer anderen Seite an. Wenn ein neuer Forum-Benutzer über SAML erstellt wird, wird der Benutzer in SSO angelegt und transparent zur Erstellung an Discourse übergeben. Und er wird sofort aktiviert – das ist wichtig!
Das heißt, wenn ich auf dem Discourse-Forum auf „Anmelden

Wenn diese Meldung für OpenID Connect angezeigt wird, bedeutet dies, dass der Identity Provider eine email_verified: false-Nachricht an Discourse übermittelt hat. Wenn Sie die ausführliche Debugging-Einstellung aktivieren, wird Ihnen alle Authentifizierungsdaten in /logs zum Überprüfen ausgegeben. Hoffentlich gibt es eine Möglichkeit, Keycloak zu sagen, den Verifizierungsstatus ordnungsgemäß weiterzugeben.

Warum ignoriert das SAML-Plugin dies dann?

Im SAML-Plugin wird dies durch die globale Einstellung saml_default_emails_valid gesteuert (Standard: true).

Ich habe eine Lösung gefunden! ))))
In Keycloak:

Deaktivieren Sie diese Optionen:

Solange du zu 100 % sicher bist, dass Keycloak die E-Mail-Adressen verifiziert hat, ist das in Ordnung. Wenn die E-Mail-Adressen nicht verifiziert sind, würdest du deine Discourse-Website damit Angreifern öffnen.

Ja, das ist richtig…
Jetzt teste ich einen neuen Fall – zwei Foren mit einem Keycloak OpenID-Client ))

Übrigens, @david, was hältst du für korrekter:

  1. Einen OpenID-Client für alle Foren verwenden und die erforderlichen gültigen Weiterleitungs-URLs angeben, wie ich es jetzt habe:

  2. Oder für jedes Forum einen eigenen OpenID-Client verwenden?

Ich kenne Keycloak nicht gut, aber beide Ansätze klingen in Ordnung. Falls du später separate Zugriffsrechte für jedes Forum einrichten möchtest, könnte es einfacher sein, diese als separate Clients zu haben :man_shrugging: