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

  1. Richten Sie ein Administrator-Konto ein

  2. Erstellen Sie einen neuen Realm

  3. Realm-Einstellungen konfigurieren

  4. Erstellen Sie einen Client: inubit-client

  5. Aktivieren Sie folgende Capability Config auf dem Client:

    • Client authentication

    • Authorization

    • Standard flow

    • Direct access grant

  6. 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 root an.

Voraussetzungen

So gehen Sie vor

Administrativen Nutzer anlegen:

Vergeben Sie einen beliebigen Benutzernamen und ein starkes Passwort.

  1. Benutzer erstellen und folgende Rollen zuweisen

    • manage-users

    • manage-clients

    • manage-realm

INUBIT-Nutzer root anlegen:

Vergeben Sie den Benutzernamen root und ein starkes Passwort.

  1. Rolle erstellen: System Administrator

  2. Benutzergruppe erstellen: admin

  3. Benutzer erstellen: root mit Rolle System Administrator in Gruppe admin

Rolle erstellen

  1. Gehen Sie zu Clients und wählen Sie den INUBIT spezifischen Client (inubit-client)

  2. Navigieren Sie zur Registerkarte Rollen

  3. Klicken Sie Rolle erstellen

  4. Benennen Sie die Rolle und klicken Sie Speichern

Benutzergruppe erstellen

  1. Navigieren Sie zu Verwalten > Gruppen

  2. Klicken Sie Gruppe erstellen

  3. Geben Sie den Gruppennamen ein

  4. Speichern Sie die Gruppe

Benutzer erstellen

  1. Nutzer erstellen:

    1. Navigieren Sie zu Benutzer und klicken Sie Benutzer hinzufügen

    2. Erstellen Sie einen neuen Benutzer mit dem gewünschten Namen

  2. Nutzergruppe zuweisen:

    1. Klicken Sie Gruppen beitreten und wählen Sie die Gruppe aus

    2. Klicken Sie Erstellen

  3. Legen Sie ein starkes Passwort für diesen Benutzer fest

  4. Weisen Sie dem Benutzer die notwendige Rolle zu:

    1. Wählen Sie den Benutzer aus

    2. Gehen Sie auf die Registerkarte Rollenzuweisungen

    3. Klicken Sie Rollen zuweisen

      Der Dialog "Assign roles to <Nutzername>" wird geöffnet.

    4. Filtern Sie nach Clients und wählen Sie den Client inubit-client aus

    5. 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

INUBIT - Keycloak Client-Konfiguration herunterladen

  1. Loggen Sie sich in Keycloak ein

  2. Gehen Sie zu Clients und wählen Sie den erstellten Client (inubit-client)

  3. Klicken Sie Action und wählen Sie Download adaptor configs

  4. Wählen Sie Keycloak OIDC JSON, um die JSON-Datei herunterzuladen

  5. 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

  1. Öffnen Sie die Datei <inubit-installdir>/inubit/server/ibis_root/conf/ibis.xml

  2. Setzen Sie den zu nutzenden Identity Provider auf keycloak:

    <Property name="IdentityProvider">keycloak</Property>
  3. 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>
  4. Speichern Sie die Änderungen in der Datei ibis.xml

  5. Öffnen Sie die Datei <inubit-installdir>/inubit/server/ibis_root/conf/keycloak.json

  6. 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
    }
  7. Speichern Sie alle Änderungen in der Datei keycloak.json

  8. Starten Sie die INUBIT Process Engine.

  9. Starten Sie die INUBIT Workbench.

  10. 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

  1. Loggen Sie sich als Administrator im Keycloak ein

  2. Wechseln Sie zu den Rollen über Realm settings > User registration > Assign roles (realm default roles)

  3. Wählen Sie die Rolle impersonation als Standard-Rolle für jeden Nutzer, der neu angelegt wird

  4. 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

  1. Loggen Sie sich als Administrator in Keycloak ein

  2. Wechseln Sie zu den Benutzern

  3. Weisen Sie jedem Nutzer die Rolle impersonation zu, der übernommen werden soll

  4. Speichern sie ihre Änderungen