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.

impersonate bpc 1

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 mapperFrom predefined mappers hinzugefügt werden.

impersonate add mapper
Abbildung 1. Mapper hinzufügen

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


Keywords: