Hallo zusammen,
ich habe versucht, die Gruppenzuweisungen automatisch zu aktualisieren, wenn sie auf der IDP-Seite geändert werden. Leider funktioniert dies nur, wenn sich der Benutzer abmeldet und wieder anmeldet, da die Assertionen nur während eines Logins übertragen werden, soweit ich das verstanden habe.
Ziel:
Ich möchte erreichen, dass Discourse (oder das Discourse-SAML-Plugin) die Option “Assertion Lifespan” berücksichtigt und die Assertionen nach Bedarf/Konfiguration durch den IDP neu auswertet.
Einrichtung:
Meine Einrichtung sieht wie folgt aus und funktioniert derzeit.
Ich verwende Keycloak als IDP, der mit LDAP verbunden ist, aus dem er die Gruppenzuweisungen abruft.
Discourse läuft mit den folgenden Einstellungen
DISCOURSE_SAML_TARGET_URL: https://auth.example.com/realms/example/protocol/saml
DISCOURSE_SAML_SYNC_GROUPS: true
DISCOURSE_SAML_GROUPS_FULLSYNC: true
DISCOURSE_SAML_GROUPS_LDAP_LEAFCN: true
Bereits versucht
Ich habe bereits versucht, die Gruppen zu ändern und den Benutzer ab- und wieder anzumelden. Das funktioniert manuell mit dem gewünschten Ergebnis.
Das Aktivieren der Option “Assertion Lifespan” in Keycloak (siehe unten) scheint jedoch die Gruppenzuweisung des Benutzers nicht zu ändern, nachdem die Gruppe für den Benutzer in Keycloak/LDAP hinzugefügt/entfernt wurde.
Ich habe dies mehrmals wiederholt und jedes Mal eine halbe Stunde gewartet, wenn ich die Gruppenzuweisung beim Benutzer geändert habe.
Das einzige Mal, dass die neue Gruppenänderung angewendet wurde, war, als sich der Benutzer tatsächlich ab- und wieder angemeldet hat.
Vermutung:
Ich vermute, dass das Discourse-SAML-Plugin (GitHub - discourse/discourse-saml: Support for SAML in Discourse) die Assertion nach dem Login des Benutzers nicht erneut prüft.
Wäre es möglich, diese Funktion für das SAML-Plugin zu implementieren?
Vielen Dank
Bao Le
