Keycloak als Identity Provider
Identity Provider wie Keycloak können mittels OpenID Connect/OAuth2 über einen Reverse Proxy wie OpenResty zur Authentifizierung an enaio® gateway angebunden werden.
Installation und Konfiguration von Keycloak für ein solches Szenario sind hier in Grundzügen beschreiben.
Keycloak muss aus Sicherheits- und Wartungsgründen auf einem eigenen Server installiert werden.
Keycloak-Installation
Führen Sie die Installation anhand der Keycloak-Dokumentation durch.
Für den produktiven Einsatz wird empfohlen, Keycloak an ein anderes Relational Database Management System (RDBMS) anzubinden als an das standardmäßig eingebettete H2. Kompatible RDBMS werden von Keycloak empfohlen.
Keycloak: Mandant und Benutzer
Sie benötigen einen Mandanten und Benutzer.
Benutzer in Keycloak müssen ebenfalls in der enaio®-Benutzerverwaltung eingetragen sein.
Mandanten und Benutzer legen Sie mit folgenden Schritten an:
-
Die Keycloak Admin Console aufrufen: http://localhost:8080/auth/admin
-
Im Navigationsbereich über Master > Add realm einen neuen Mandanten anlegen.
-
Für den Mandanten über Users > Add user einen Benutzer anlegen und speichern.
-
Über die Benutzer-Seite auf dem Tab Credentials ein Password angeben, die Option Temporary auf Off stellen und über Set Password speichern.
Keycloak: Anbindung an OpenResty
Für die Anbindung legen Sie einen Client mit folgenden Schritten an:
-
Die Keycloak Admin Console aufrufen: http://localhost:8080/auth/admin
-
Den Mandaten auswählen und über Clients > Create einen neuen Client anlegen.
-
Eine Bezeichnung in der Feld Client ID eingeben, in das Feld Root URL die URL von OpenResty eintragen und speichern.
-
Über die Client-Seite auf dem Tab Settings folgendes einstellen:
-
Access Type > confidential
-
Authorization Enabled > ON
-
Valid Redirect URIs > Muster: http://<OpenResty>/*
Alle zu OpenResty führenden Basis-URLs müssen nach diesem Muster angegeben werden. Zusätzlich muss angegeben werden: http://127.0.0.1:*
-
-
Konfiguration über Save speichern.
Für die Konfiguration von OpenResty benötigen Sie folgende Daten:
- Die Client ID
- Das Secret, es wird auf der Client-Seite auf dem Tab Credentials angezeigt.
- Über Realm Settings auf dem Tab General im Feld Endpoints auf OpenID Endpoint Configuration klicken. Die URL, angepasst an den Keycloak-Host, wird für die Konfigurationsdatei von OpenResty benötigt.
Keycloak-Anmeldeseite in ein iFrame einbetten
Die Keycloak Anmeldeseite kann als iFrame in eine andere Webseite eingebettet werden, wenn sie über denselben Host-Namen veröffentlicht wird wie Keycloak. Wird die Webseite unter einem anderen Host-Namen veröffentlicht, dann muss dieser Host-Name in allen Keycloak-Mandanten legitimiert werden, die diese Webseite zur Anmeldung verwenden sollen:
-
Die Keycloak Admin Console aufrufen: http://localhost:8080/auth/admin/
-
Den Mandanten auswählen und den Host-Namen der Webseite hinzufügen über: Realm Settings > Security Defenses > Content-Security-Policy > frame-ancestors
Mehrere Host-Namen werden durch Leerzeichen getrennt.