Keycloak anbinden und einrichten
Keycloak ist ein Identity Provider der zur Benutzer-Authentifizierung verwendet werden kann. Wenn die bereits unterstützen Identity Provider von der Funktionalität oder aus Sicherheitsbedenken nicht ausreichen sollten, dann ist dieser zu empfehlen. Auch, wenn die Inbetriebnahme ein wenig umfangreicher ist.
Installation
-
Keycloak kann mit den anderen BPC Dateien unter Download - Virtimo Fileserver heruntergeladen werden.
-
Das Keycloak Archiv muss in das Zielverzeichnis entpackt werden.
-
Keycloak starten
Per Default ist der Server nach dem Start auf dem HTTP-Port 8080 erreichbar. Die verwendeten Ports können in der folgenden Konfigurationsdatei angepasst werden:
[keycloak]/standalone/configuration/standalone.xml
Linux
bin/standalone.sh -Dkeycloak.profile.feature.upload_scripts=enabled -Dkeycloak.profile.feature.token_exchange=enabled
Windows
bin/standalone.bat -Dkeycloak.profile.feature.upload_scripts=enabled -Dkeycloak.profile.feature.token_exchange=enabled
-
Der Start Parameter
-Dkeycloak.profile.feature.upload_scripts=enabled
ist initial notwendig, sodass unsere BPC Konfiguration importiert werden kann. Ansonsten kommt es zu dem Fehler:Uncaught server error: java.lang.RuntimeException: Script upload is disabled.
-
Der Start Parameter
-Dkeycloak.profile.feature.token_exchange=enabled
ist notwendig, falls das Imitieren von Benutzern (Impersonate; User Hijacking) über die BPC Oberfläche möglich sein soll.
-
-
Admin Benutzer anlegen
http://localhost:8080/auth aufrufen und initial einen Admin-Benutzer anlegen
Konfiguration Keycloak
Damit der Einstieg ein wenig schneller vonstattengeht, kann eine Konfiguration heruntergeladen und importiert werden.
Dadurch wird die Realm BPC
angelegt.
BPC-Konfiguration importieren
-
Die Administrationsoberfläche (Administration Console) http://localhost:8080/auth/admin aufrufen und mit dem oben angelegten Admin Benutzer anmelden
-
Links oben auf Master → “Add realm” klicken
-
Beim Import per “Select file” die zuvor heruntergeladene Konfigurationsdatei auswählen
-
Per “Create” die Realm ‘BPC’ anlegen
Nach dem Importieren ist es notwendig, unter “Realm Settings” - “General” - “Frontend URL” die Adresse zur KeyCloak Login-Maske anzugeben in der Form https://www.example.com:443/auth. Zusätzlich sollte im selben Fenster unter “Security Defenses” der Wert für X-Frame-Options auf allow-from all geändert werden:
BPC Rollen anlegen
-
Realm “Bpc” ist ausgewählt
-
Linke Seite: Configure → Roles
-
Rechts Oben: Add Role
-
Die Rollen “bpcadmin” und “bpcuser” anlegen
Client Secret Erzeugen
-
Realm “Bpc” ist ausgewählt
-
Linke Seite: Configure → Clients
-
Als Client “bpc-core” auswählen
-
Rechts Oben: Credentials
-
Über den Button “Regenerate Secret” ein neues Secret erzeugen
Gültige Weiterleitungen URIs angeben
-
Realm “Bpc” ist ausgewählt
-
Linke Seite: Configure → Clients
-
Als Client “bpc-core” auswählen
-
Rechts Oben: Settings
-
Im Feld Valid Redirect URIs alle möglichen URIs angeben, von denen auf KeyCloak zugegriffen werden soll. Dies können beispielsweise die URL zum BPC sein aber auch externe Anwendungen (INUBIT) die KeyCloak nutzen. Zum Beispiel:
Konfiguration BPC
Im BPC muss Keycloak unter den Backend Connections als Identity Provider angelegt und anschließend in den Core Services Einstellungen als zu verwendender Identity Provider festgelegt werden.
Beim initialen Start des BPC bzw. bei jedem Start, wenn nicht vorhanden, wird automatisch eine Backend Connection für den Keycloak als IdP angelegt.
Diese hat den Modul Namen Keycloak Local und die ID idp_keycloak .
|
“Identity Provider” Backend Connection anlegen
-
BPC Einstellungen → Backend Connections → Komponenten
-
Unten auf den “+” Button klicken um eine neue Komponente anzulegen, als Typ “identity_provider” auswählen
Name (Key) | Gruppe | Wert | Beschreibung |
---|---|---|---|
Module_Name |
module |
idp-keycloak-localhost |
Einen sprechenden und eindeutigen Namen vergeben |
IdentityProvider |
config |
keycloak |
Keycloak für die Backend Connection als IdP festlegen |
IdentityProvider_URL |
config |
Der OpenID Endpunkt des Keycloak Servers |
|
IdentityProvider_Configuration |
config |
|
Die Konfiguration für den Keycloak Zugriff. Die "*******" durch das Passwort des oben angelegten Admin Benutzers ersetzen und evtl. die Ports des Keycloak und BPC anpassen. |