Imitieren von Benutzern mit Keycloak
Mit diesem Feature kann sich ein dazu berechtigter Benutzer als ein anderer Benutzer ausgeben. Dies wird als Impersonierung oder Imitieren von Benutzern bezeichnet.
Verwendung
In der integrierten Benutzerverwaltung kann über die Schaltfläche am jeweiligen Benutzer das Imitieren ausgelöst werden. Dadurch wird man umgehend als dieser Benutzer angemeldet.
Alternativ kann dies auch aus der Benutzerverwaltung im Keycloak aktiviert werden.
Keycloak Konfiguration
Damit die Impersonation durchgeführt werden kann, müssen im Keycloak und im BPC Anpassungen durchgeführt werden.
Aktivierung des notwendigen Features
Das sogenannte Token Exchange Service Feature (ID: token-exchange
) muss aktiviert sein.
Ansonsten kommt es zu dem Fehler Feature not enabled
.
Wollen Sie die Impersonierung bestimmter Benutzer verhindern (siehe Impersonation einschränken), müssen Sie zusätzlich das Feature Fine-Grained Admin Permissions (ID: admin-fine-grained-authz
) aktivieren.
Wie Sie Feature aktivieren finden Sie in der Keycloak Dokumentation.
Berechtigungen
Die nötigen Berechtigungen für diese Funktion finden Sie unter Keycloak Berechtigungen.
Erkennung von Impersonation ermöglichen
Damit das BPC erkennen kann, dass ein Benutzer einen anderen Benutzer imitiert, muss die Weitergabe dieser Informationen eingerichtet werden.
Dafür fügt man an einem der genutzten Client Scopes (z.B. profile
) passende Mapper hinzu.
Unter Mappers
können diese mittels Add mapper
→ From predefined mappers
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.
Wird dies nicht konfiguriert, so kann das BPC nicht erkennen, dass ein Benutzer imitiert wird. Dies würde dazu führen, dass im Audit-Log des BPC nicht zu erkennen ist, dass ein Benutzer imitiert wurde. |
Impersonation einschränken
Bitte beachten Sie, dass Benutzer beim Imitieren anderer Benutzer auch deren Berechtigungen erhalten. Dadurch ist es evtl. eine ungewollte Rechteausweitung möglich.
Um dies zu verhindern, können Sie im Keycloak Einfluss darauf nehmen, wer wen impersonieren darf. Dafür muss das entsprechende Feature (siehe Aktivierung des notwendigen Features) aktiviert sein. Gehen Sie anschließend im Keycloak wie folgt vor:
-
Legen Sie eine Rolle an.
-
Legen Sie am Client
realm-management
eine Client Policy vom TypRole
an-
Fügen Sie der Policy die zuerst angelegte Rolle hinzu und aktivieren Sie die Checkbox
Required field
-
Die Einstellung unter
Logic
ist entscheidend.-
Positive
- Mitglieder dieser Rolle können impersoniert werden, User ohne diese Rolle nicht -
Negative
- Mitglieder dieser Rolle können nicht impersoniert werden, User ohne diese Rolle schon
-
-
Aktivieren Sie in der Benutzerliste
Permissions
-
Wählen Sie aus der Liste
user-impersonated
aus -
Wählen Sie in der Permission die zuvor angelegt Policy aus und speichern die Änderungen
-
Siehe dafür auch die Keycloak Dokumentation.
BPC Berechtigungen
Die benötigten Berechtigungen sind auf der Seite Benutzerverwaltung / Identity Manager beschrieben.