Impersonation von Benutzern mit Keycloak
Mit diesem Feature kann sich ein dazu berichtigter Benutzer als ein anderer Benutzer ausgeben. Kann auch User-Hijacking genannt werden.
Konfiguration
Damit die Impersonation durchgeführt werden kann, müssen im Keycloak und im BPC Anpassungen durchgeführt werden.
Keycloak
Aktivierung des notwendigen Features
Das sogenannte Token Exchange Feature muss beim Start vom Keycloak über Java Opts aktiviert sein (-Dkeycloak.profile.feature.token_exchange=enabled
), andernfalls bekommt man beim Versuch, ein User-Hijacking (= Impersonation) durchzuführen, den Fehler "Feature not enabled".
In unserem zur Verfügung gestellten Keycloak Archive ist dies bereits über eine profile.properties -Datei gesetzt.
|
Rollen
Die Benutzer, welche eine Impersonation durchführen dürfen, müssen die spezielle Rolle impersonation
besitzen.
Erkennung von Impersonation ermöglichen
Damit das BPC erkennen kann, dass ein Benutzer einen anderen Benutzer imitiert, muss die Weitergabe dieser Informationen am Client mittels Mapper gesetzt werden.
Dafür geht man im Keycloak auf den Client, den das BPC verwendet.
Unter Mappers
können diese mittels Add Builtin
hinzugefügt werden.
Es sind folgende Mapper hinzuzufügen:
-
Impersonator Username
-
Impersonator User ID
Wenn diese Mapper gesetzt sind, dann werden in der User Session Informationen abgelegt, wer den aktuellen Benutzer imitiert.
BPC
Durch Klick auf das Icon im BPC wird Keycloak kontaktiert und die Impersonation angefordert.
Danach muss das BPC neu geladen werden.
Dazu ist es essenziell, dass im BPC die beiden Core Einstellungen Core_BaseURL
und Core_ClientPath
korrekt gesetzt sind (siehe Core Services.
Aus diesen beiden Werten wird die URL erstellt, welche danach vom BPC Frontend verwendet wird, um die Seite neu zu laden.
Das BPC ist beispielsweise unter folgender URL erreichbar: https://bpc.virtimo.net/dev/support/3.4.x/
Dann müssen die beiden Settings auf folgende Werte gesetzt werden:
Einstellung |
Wert |
|
|
|
/dev/support/3.4.x/ |