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.

Verwendung

In der Benutzerübersicht vom BPC steht ein Icon zur Verfügung, das die Impersonation auslöst. Nach klick auf eins dieser Icons wird man umgehend als dieser Benutzer angemeldet.

impersonate bpc 1

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 sollen können, müssen die spezielle Rolle impersonation besitzen.

setup keycloak 1

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.

Mapper hinzufügen

impersonate add mapper

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 essentiell, dass im BPC die beiden Core Einstellungen Core_BaseURL und Core_ClientPath korrekt gesetzt sind. 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

Core_BaseURL

Core_ClientPath

/dev/support/3.4.x/

Rollen und Rechte

Der Benutzer, welcher die Impersation durchführen möchte, muss entweder die Benutzerrolle IDENTITY_MANAGER_ADMIN oder das Recht IDENTITY_MANAGER_USER_IMPERSONATE besitzen.


Keywords: