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.
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.
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.
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