Keycloak
Mithilfe des con terra Technologies Identity Service kann smart.finder SDI die Authentifizierung von Personen an Keycloak delegieren. Dies bedeutet, dass diese sich mit ihrem Keycloak-Account bei smart.finder SDI anmelden können.
Durch eine Verbindung mit Keycloak entstehen folgende Möglichkeiten:
-
Vergabe von Rollen für die Nutzung des Job Managers
-
Vergabe von Rollen für die Nutzung des Solr Admin Client
-
Vergabe von Rollen für die Einschränkung des Suchindexes für bestimmte Benutzer
Um smart.finder SDI mit Keycloak zu betreiben muss mindestens die Version 1.5.0 des con terra Technologies Identity Service verwendet werden. |
Verbindung zwischen smart.finder SDI und Keycloak herstellen
Die Verbindung von smart.finder SDI mit Keycloak erfolgt in zwei Schritten.
Schritt 1: Identity Service installieren und konfigurieren
In diesem Schritt installieren und konfigurieren Sie den Identity Service als separate Web Anwendung. Folgen Sie dazu diesen Schritten aus der Dokumentation des Identity Service:
-
Installieren Sie den Identity Service.
-
Verbinden Sie den Identity Service mit Keycloak.
-
Konfigurieren Sie Dienste, die mit einem Zugriffstoken angefragt werden sollen, als vertrauenswürdige Dienste im Identity Service.
Die vertrauenswürdigen Dienste des {product_name} sind die Endpunkte der Web-Anwendungen smartfinder-sdi
, smartfinder-search
und smartfinder-editor
. Diese sind standardmäßig unter folgenden URLs erreichbar:
Diese werden über das Property security.oauth.tokenRules
im Identity Service konfiguriert, z.B.:
# comma separated list of trusted services
security.oauth.tokenRules=https://www.example.com/smartfinder-sdi,https://www.example.com/smartfinder-search,https://www.example.com/smartfinder-editor
https://www.example.com
muss entsprechend Ihrer Umgebung angepasst werden.
Wird smart.finder SDI in einer map.apps Instanz betrieben, so ersetzen Sie die URL https://www.example.com/smartfinder-sdi
mit der URL der map.apps Instanz.
Schritt 2: smart.finder SDI konfigurieren
Um die Delegation der Anmeldung an den Identity Service zu aktivieren, setzen Sie die folgenden Parameter in der globalen Konfiguration:
security.mode=IDENTITY
security.login.base=https://www.example.com/identity
security.oauth.provider=keycloak
security.oauth.provider.url=https://www.example.com/keycloak
security.oauth.provider.keycloak.realm=ct
security.oauth.clientId=identity-service
security.oauth.clientSecret=abcdefg123456
Wenn der verwendete Identity Service auf einem anderen Host oder Port bereitgestellt wird als smart.finder SDI, muss folgendes Property zusätzlich im smart.finder SDI gesetzt werden.
# comma separated list of trusted services
cors.request.trustedServers=https://www.example.com/identity-service
https://www.example.com/identity-service
ist als Beispiel der Basis-URL des Identity Service zu verstehen.
Die aufgelisteten Eigenschaften sollten in einer globalen |
security.mode
-
Der Wert
IDENTITY
legt fest, dass die Authentifizierung über den Identity Service delegiert werden soll. security.login.base
-
Basis URL des Identity Service.
security.oauth.provider
-
Die Art des Identity-Anbieters.
Der Wert für Keycloak ist
keycloak
. security.oauth.provider.url
-
Basis-URL des Identity-Anbieters.
Beispiel:
https://www.example.com/authn
security.oauth.provider.keycloak.realm
-
Der Name des Keycloak-Realm, für den Zugriffe erlaubt sind.
security.oauth.clientId
-
OAuth Client-ID, die im Rahmen der Registrierung des {product_name} am Identitätsanbieter vergeben wurde.
security.oauth.clientSecret
-
OAuth Client-Secret, das im Rahmen der Registrierung des {product_name} am Identitätsanbieter vergeben wurde.
cors.request.trustedServers
-
Liste von URLs zu Backenddiensten, für die die Übergabe von sicherheitskritischen Informationen mittels CORS aktiviert wird.
Dies ist beispielsweise bei Cookies und Autorisierung-Header der Fall.
Beispiel:
https://example.com,https://example.net
Schritt 3: Client im Keycloak vorbereiten
Um Zugriff auf die Benutzer, Gruppen und Rollen in Keycloak zu ermöglichen, muss der verwendete Client mit einem speziellen Anmeldeverfahren und zusätzlichen Rechten ausgestattet werden.
Melden Sie sich hierfür als Administrator am Keycloak an. Gehen Sie dann wie folgt vor:
-
Wählen Sie den Realm aus, in dem der Client registriert wurde.
-
Klicken Sie auf Clients in der Navigation.
-
Klicken Sie auf den Client in der tabellarischen Übersicht, der für den
identity-service
verwendet wird. -
Gehen Sie Tab Settings zum Abschnitt Capability config
-
Aktivieren Sie Client authentication
-
Aktivieren Sie Service accounts roles
-
Klicken Sie auf Save
-
Klicken Sie auf Service Account Roles in den Einstellungen des Clients
-
Klicken Sie auf Assign Roles
-
Wählen Sie im Filter-Drop-Down-Menü den Wert Filter by clients aus
-
Wählen Sie die folgenden Rollen aus:
-
(realm-management) view-users
-
(realm-management) view-clients
-
-
Klicken Sie auf Assign
Der Client identity-service
ist nun vorbereitet.
Schritt 4: Benutzer, Gruppen und Rollen einrichten
Legen Sie nun die Benutzer, Gruppen und Rollen für smart.finder SDI an bzw. weisen Sie diese zu.
Neue Rollen können Sie in Keycloak folgendermaßen anlegen:
-
Wählen Sie im Bereich Clients den Tab Clients list und klicken Sie auf den Client
identity-service
. -
Wählen Sie den Tab Roles und klicken Sie auf Create role.
-
Fügen Sie nacheinander die für smart.finder SDI benötigten Rollen hinzu. Beachten Sie hierzu das rollenbasierte Rechtekonzept.
Die angelegten Rollen können Sie nun Benutzern und Gruppen zuweisen. Dies erfolgt in den Bereichen Users und Groups.
Bitte beachten Sie bei der Zuweisung von Gruppen, dass jeder Benutzer nur Mitglied einer einzigen Gruppe sein kann. Mitgliedschaften eines Benutzers in mehreren Gruppen werden von smart.finder SDI nicht unterstützt. |
Eine detaillierte Anleitung zur Benutzerverwaltung in Keycloak finden Sie in der Keycloak-Dokumentation .