Keycloak Benutzerverwaltung
Keycloak ist ein externes System zur Nutzerverwaltung. Alle Nutzerinformationen inklusive der Passwörter werden in diesem System gespeichert. Keycloak bietet zudem die Möglichkeit, weitere Nutzerdatensysteme einzubinden, wie z. B. Microsoft Active Directory, Google oder Facebook. Moderne Sicherheitsmechanismen wie 2-Faktor-Authentifizierung oder Passkey lassen sich konfigurativ hinzufügen.
Damit kann Keycloak als sicheres zentrales Nutzerverwaltungssystem in der IT-Infrastruktur genutzt werden. Alle Virtimo Produkte bieten eine Integration von Keycloak an.
Für den produktiven Einsatz empfiehlt die Virtimo AG den Einsatz des Keycloak als zentralen Identity Provider. |
Installation
Der Keycloak-Server kann einfach mit dem INUBIT-Installer installiert werden. Dazu das Installations-Set "Keycloak" im Installer auswählen.
Es empfiehlt sich, den Keycloak auf einem separaten System zu installieren. Dieses System kann dann entsprechend der auf den Keycloak zugreifenden Systeme und Applikationen abgesichert werden. |
Konfiguration - Keycloak
Damit INUBIT kann Keycloak als Nutzerdatensystem integrieren kann, muss der Keycloak-Server für die zu verwaltenden INUBIT-Nutzer vorbereitet werden.
Voraussetzungen
-
Keycloak-Server ist installiert und gestartet
Ziele
-
Administrativen Keycloak-Account anlegen über den INUBIT sein Nutzer im Keycloak verwalten kann
-
Mindestens den INUBIT-Nutzer
root
im Keycloak anlegen, damit man sich mit der Workbench an der INUBIT Process Engine anmelden kann
Keycloak - Realm und Client
Nutzer werden in Keycloak in sogenannten Realms gebündelt. Dabei kann eine Applikation meist auf einen Realm zugreifen. Verschiedene Applikationen können auch gemeinsam auf ein- und denselben oder getrennte Realms zugreifen.
So gehen Sie vor
-
Richten Sie ein Administrator-Konto ein
-
Erstellen Sie einen neuen Realm
-
Realm-Einstellungen konfigurieren
-
Erstellen Sie einen Client:
inubit-client
-
Aktivieren Sie folgende Capability Config auf dem Client:
-
Client authentication
-
Authorization
-
Standard flow
-
Direct access grant
-
-
Passen Sie die Zugriffseinstellungen für den Client an.
Keycloak - Account and Rollen
INUBIT benötigt einen administrativen Keycloak-Account, um Nutzer anlegen, ändern und löschen zu können. Darüber hinaus kümmert sich INUBIT mit diesem Account auch um die Verwaltung der notwendigen Benutzergruppen.
Legen Sie 2 getrennte Accounts für den administrativen Zugang und den INUBIT-Nutzer |
Voraussetzungen
-
Realm und Client wurden im Keycloak angelegt
So gehen Sie vor
Administrativen Nutzer anlegen:
Vergeben Sie einen beliebigen Benutzernamen und ein starkes Passwort. |
-
Benutzer erstellen und folgende Rollen zuweisen
-
manage-users
-
manage-clients
-
manage-realm
-
INUBIT-Nutzer root
anlegen:
Vergeben Sie den Benutzernamen |
-
Rolle erstellen:
System Administrator
-
Benutzergruppe erstellen:
admin
-
Benutzer erstellen:
root
mit RolleSystem Administrator
in Gruppeadmin
Rolle erstellen
-
Gehen Sie zu Clients und wählen Sie den INUBIT spezifischen Client (
inubit-client
) -
Navigieren Sie zur Registerkarte Rollen
-
Klicken Sie Rolle erstellen
-
Benennen Sie die Rolle und klicken Sie Speichern
Benutzergruppe erstellen
-
Navigieren Sie zu Verwalten > Gruppen
-
Klicken Sie Gruppe erstellen
-
Geben Sie den Gruppennamen ein
-
Speichern Sie die Gruppe
Benutzer erstellen
-
Nutzer erstellen:
-
Navigieren Sie zu Benutzer und klicken Sie Benutzer hinzufügen
-
Erstellen Sie einen neuen Benutzer mit dem gewünschten Namen
-
-
Nutzergruppe zuweisen:
-
Klicken Sie Gruppen beitreten und wählen Sie die Gruppe aus
-
Klicken Sie Erstellen
-
-
Legen Sie ein starkes Passwort für diesen Benutzer fest
-
Weisen Sie dem Benutzer die notwendige Rolle zu:
-
Wählen Sie den Benutzer aus
-
Gehen Sie auf die Registerkarte Rollenzuweisungen
-
Klicken Sie Rollen zuweisen
Der Dialog "Assign roles to <Nutzername>" wird geöffnet.
-
Filtern Sie nach Clients und wählen Sie den Client
inubit-client
aus -
Weisen Sie die gewünschte Rolle zu und klicken Sie auf Zuweisen
-
Konfiguration - INUBIT
Auf INUBIT-Seite muss die passende Keycloak-Konfiguration hinterlegt werden, sodass INUBIT mit dem Keycloak kommunizieren kann.
Voraussetzungen
-
Keycloak-Server ist installiert und gestartet
-
Im Keycloak wurde ein Realm und ein Client eingerichtet
-
Im Keycloak wurde ein administrativer Account angelegt
-
Im Keycloak wurde ein root Nutzer-Account angelegt
-
INUBIT kann den Keycloak (über das Netzwerk) erreichen
INUBIT - Keycloak Client-Konfiguration herunterladen
-
Loggen Sie sich in Keycloak ein
-
Gehen Sie zu Clients und wählen Sie den erstellten Client (
inubit-client
) -
Klicken Sie Action und wählen Sie Download adaptor configs
-
Wählen Sie Keycloak OIDC JSON, um die JSON-Datei herunterzuladen
-
Speichern Sie die Datei unter
<inubit-installdir>/inubit/server/ibis_root/conf/keycloak.json
INUBIT - Keycloak als externen Identity Provider verwenden
Voraussetzungen
-
INUBIT Process Engine ist gestartet
-
Keycloak-Server ist gestartet
Gehen Sie wie folgt vor
-
Öffnen Sie die Datei
<inubit-installdir>/inubit/server/ibis_root/conf/ibis.xml
-
Setzen Sie den zu nutzenden Identity Provider auf
keycloak
:<Property name="IdentityProvider">keycloak</Property>
-
Setzen Sie den Pfad Keycloak JSON-Datei:
<!-- Wenn die JSON-Datei unter dem folgenden Pfad abgelegt ist {ibis-root-directory}/conf/keycloak.json --> <Property name="IdentityProviderConfiguration">keycloak.json</Property>
-
Speichern Sie die Änderungen in der Datei
ibis.xml
-
Öffnen Sie die Datei
<inubit-installdir>/inubit/server/ibis_root/conf/keycloak.json
-
Setzen Sie den Benutzernamen und das Passwort des administrativen Accounts
Beispiel einer Keycloak-Konfigurationsdatei{ "realm": "<realm_name_created_for_inubit>", "auth-server-url": "<keycloak_server_url>", "ssl-required": "none", "resource": "<client_name_created_for_inubit>", "verify-token-audience": true, "credentials": { "secret": "<inubit_client_secret>" }, "username": "<administrative_account_username>", "password": "<administrative_account_password>", "use-resource-role-mappings": true, "confidential-port": 0 }
-
Speichern Sie alle Änderungen in der Datei
keycloak.json
-
Starten Sie die INUBIT Process Engine.
-
Starten Sie die INUBIT Workbench.
-
Loggen Sie sich mit dem
root
Nutzer ein
Impersonation - mit anderem Nutzer einloggen
INUBIT unterstützt das Feature, sich mit einem anderen Nutzer einzuloggen, ohne dessen Passwort zu kennen.
Bei der Verwendung von Keycloak muss die Funktionalität Impersonation im Keycloak aktiviert werden.
Es existieren noch keine Nutzer im Keycloak
-
Loggen Sie sich als Administrator im Keycloak ein
-
Wechseln Sie zu den Rollen über Realm settings > User registration > Assign roles (realm default roles)
-
Wählen Sie die Rolle impersonation als Standard-Rolle für jeden Nutzer, der neu angelegt wird
-
Speicher Sie ihre Änderungen
Nun wird die Rolle impersonation automatisch jedem neu angelegten Benutzer hinzugefügt. Bereits existierende Nutzer werden dabei nicht verändert.
Es existieren bereits alle Nutzer im Keycloak
-
Loggen Sie sich als Administrator in Keycloak ein
-
Wechseln Sie zu den Benutzern
-
Weisen Sie jedem Nutzer die Rolle impersonation zu, der übernommen werden soll
-
Speichern sie ihre Änderungen