Benutzerverwaltung
Verwalte den Benutzerzugang für IBM Bob On-Premises mit Keycloak als Identitätsprovider, mit LDAP- oder Active-Directory-Federation oder lokal verwalteten Konten.
IBM Bob On-Premises enthält einen Keycloak-Identitätsprovider für Benutzerauthentifizierung und Zugriffsverwaltung. Benutzer können aus einer bestehenden LDAP- oder Active-Directory-Umgebung föderiert oder direkt in Keycloak erstellt werden. Unabhängig davon, wie sie bereitgestellt werden, muss Benutzern eine geeignete Bob-Rolle zugewiesen werden, bevor sie auf den Dienst zugreifen können.
Übersicht
| Konzept | Beschreibung |
|---|---|
| Identitätsprovider | Keycloak — vom Bob-Operator deployed und verwaltet. |
| Benutzerquellen | Benutzer können direkt in Keycloak erstellt oder aus einem LDAP- oder Active-Directory-Dienst föderiert werden. |
| Authentifizierung | Benutzer authentifizieren sich über Keycloak mittels OpenID Connect (OIDC). Keycloak stellt einen kurzlebigen Autorisierungscode aus, den bob-authn gegen ein Bob-Bearer-Token eintauscht. |
| Autorisierung | Der Zugriff auf Bob-Funktionen wird durch Rollen gesteuert, die Benutzern in Keycloak zugewiesen sind. |
| Konfigurationsoberfläche | Die LDAP-Integration wird über die benutzerdefinierte BobLDAP-Ressource mit dem Befehl bobctl configure-idp verwaltet. |
Unterstützte LDAP-Verzeichnistypen
Bob On-Premises unterstützt jeden LDAPv3-konformen Verzeichnisdienst. Der Parameter vendor in der LDAP-Konfiguration bestimmt die zu verwendende Keycloak-Provider-Vorlage, die die protokollspezifischen Einstellungen für den ausgewählten Verzeichnistyp definiert.
vendor-Wert | Verzeichnistyp |
|---|---|
other | OpenLDAP und andere generische LDAPv3-kompatible Verzeichnisdienste |
ad | Microsoft Active Directory |
rhds | Red Hat Directory Server |
tivoli | IBM Security Directory Server (früher Tivoli Directory Server) |
edirectory | NetIQ / Micro Focus eDirectory |
Authentifizierungs- und Federationsarchitektur
Wenn sich ein Benutzer anmeldet, leitet Bob die Anfrage an Keycloak weiter, das die Authentifizierung übernimmt. Alle Benutzer authentifizieren sich über Keycloak. Die LDAP-Federation ist optional und nur aktiv, wenn sie konfiguriert ist.
- LDAP-Federation aktiviert: Keycloak authentifiziert Benutzer direkt gegen das LDAP-Verzeichnis. Benutzerpasswörter verbleiben im LDAP-Verzeichnis und werden nicht in Keycloak gespeichert.
- LDAP-Federation deaktiviert: Keycloak authentifiziert Benutzer über den lokalen Keycloak-Benutzerspeicher.
Authentifizierungsablauf
- Der Benutzer gibt seine Anmeldeinformationen ein.
- Keycloak authentifiziert den Benutzer.
- Keycloak stellt einen kurzlebigen Autorisierungscode aus.
bob-authntauscht den Autorisierungscode gegen ein Bob-Bearer-Token ein.- Alle nachfolgenden API-Anfragen verwenden das von Bob ausgestellte Token.
Benutzersynchronisierungsverhalten
Bob On-Premises unterstützt zwei Synchronisierungsmodi, die über die Einstellung userSync.enabled in der LDAP-Konfiguration konfiguriert werden:
| Modus | userSync.enabled | Verhalten |
|---|---|---|
| Auf Abruf | false (Standard) | Benutzer werden erst in Keycloak importiert, wenn sie sich zum ersten Mal erfolgreich anmelden, wodurch die Notwendigkeit eines anfänglichen Verzeichnis-Scans entfällt. Diese Option wird für sehr große Verzeichnisumgebungen empfohlen. |
| Eager-Sync (empfohlen) | true | Wenn ein LDAP-Provider registriert wird, importiert eine einmalige vollständige Synchronisierung alle Benutzer aus dem Verzeichnis. Nach dem anfänglichen Import synchronisiert Keycloak automatisch alle fünf Minuten Benutzeraktualisierungen. Dieser Ansatz stellt sicher, dass alle Benutzer sofort verfügbar sind, und Administratorkonten, die über adminEmails angegeben werden, können bereitgestellt werden, ohne dass sich Benutzer zuerst anmelden müssen. |
Synchronisierung auf Abruf
Verwende diesen Modus für sehr große Verzeichnisse, in denen der sofortige Import aller Benutzer nicht praktikabel ist.
Beim ersten Authentifizierungsversuch:
- Der Benutzer wird in Keycloak importiert.
- Der Benutzer wird in Bob über SCIM bereitgestellt.
- Der erste Anmeldeversuch schlägt aufgrund der Bereitstellungslatenz fehl.
- Der Benutzer kann sich nach Abschluss der Bereitstellung erfolgreich anmelden.
Eager-Synchronisierung
Für die meisten Deployments empfohlen. Alle Benutzer werden sofort nach Abschluss der Synchronisierung verfügbar und müssen sich nicht anmelden, um bereitgestellt zu werden.
Das Synchronisierungsintervall ist derzeit fest auf 5 Minuten eingestellt.
Benutzer mit SCIM synchronisieren
IBM Bob On-Premises verwendet ein angepasstes SCIM-2.0-Plugin, das in Keycloak eingebettet ist, um Benutzerkonten zwischen Keycloak und Bob zu synchronisieren. Der Bob-Operator konfiguriert diese Integration automatisch, und es ist keine zusätzliche Konfiguration erforderlich.
Wie die Benutzersynchronisierung funktioniert
Wenn ein Benutzer-Lifecycle-Ereignis in Keycloak eintritt, sendet das SCIM-Plugin das entsprechende Ereignis an den bob-admin-Dienst. Bob aktualisiert dann den Benutzerzugang und die Profilinformationen basierend auf dem Ereignis.
Diese Synchronisierung gilt für alle von Keycloak verwalteten Benutzer, einschließlich LDAP-federierter Benutzer und Benutzer, die direkt in der Keycloak-Administrationskonsole erstellt wurden.
| Benutzerereignis | Bob-Aktion |
|---|---|
| Benutzer erstellt oder erste Anmeldung | Stellt den Benutzer bereit und gewährt Zugriff auf Bob |
| Benutzer aktualisiert | Synchronisiert Profiländerungen |
| Benutzer aus LDAP entfernt | Widerruft den Zugriff auf Bob, behält aber Benutzerdaten |
Das Entfernen eines Benutzers aus LDAP widerruft seinen Zugriff auf Bob, löscht aber nicht seine Daten. Wenn der Benutzer wieder zum Verzeichnis hinzugefügt wird, wird der Zugriff wiederhergestellt und zuvor erstellte Arbeiten bleiben verfügbar.
Synchronisierung überprüfen
Bob bietet derzeit keine Statusbedingung oder Integritätsprüfung, die bestätigt, dass die SCIM-Synchronisierung aktiv ist. Um zu überprüfen, ob die Bereitstellung funktioniert, erstelle oder importiere einen Testbenutzer und bestätige, dass der Benutzer in Bob erscheint, nachdem er sich zum ersten Mal angemeldet hat oder nach dem anfänglichen userSync-Import.
Rollen und Gruppenmitgliedschaft verwalten
IBM Bob verwendet Keycloak-Gruppen, um Benutzerrollen zu steuern. Der Bob-Operator erstellt und pflegt automatisch die erforderlichen Gruppen und Rollenzuordnungen.
| Keycloak-Gruppe | Gewährte Keycloak-Rolle | Wer wird hinzugefügt |
|---|---|---|
bob-users | bob-user | Alle authentifizierten Benutzer werden automatisch bei ihrer ersten erfolgreichen Anmeldung über die Standard-Gruppe des Realms hinzugefügt. |
bob-admins | bob-admin | Benutzer, die im Feld adminEmails der BobLDAP-Konfiguration angegeben sind, werden vom Operator während jedes Abstimmungszyklus automatisch zugewiesen. |
Administratorzugang
Alle authentifizierten Benutzer erhalten Standardzugang zu Bob.
Um Administratorrechte zu gewähren:
- Füge die E-Mail-Adresse des Benutzers zu
adminEmailsin der IDP-Konfigurationsdatei hinzu. - Wende die Änderung an:
./bobctl configure-idp --config my-idp.yaml
Um Administratorrechte zu entziehen:
- Entferne die E-Mail-Adresse aus
adminEmails. - Wende die Konfiguration erneut an.
bobctl configure-idp ist die einzige unterstützte Methode zur Verwaltung des Bob-Administratorzugangs. Das Hinzufügen einer E-Mail-Adresse zu adminEmails erstellt kein Benutzerkonto — der Benutzer muss bereits in Keycloak über LDAP-Federation oder direkte Benutzererstellung vorhanden sein.
Keycloak administrieren
Bob On-Premises enthält ein Keycloak-Deployment, das Identitäts- und Zugriffsverwaltungsdienste bereitstellt. Die Keycloak-Administration ist von der Bob-Administration getrennt, und jede Schnittstelle dient einem anderen Zweck.
Administrationsoberflächen
| Schnittstelle | URL | Zweck |
|---|---|---|
| Keycloak Admin Console | https://bob-keycloak.<namespace>.<ingress-domain> | Keycloak-Infrastruktur, Benutzer, Gruppen, Identitätsprovider und Federationseinstellungen verwalten. |
| Bob Admin UI | https://bob.<namespace>.<ingress-domain>/admin | Bob-Benutzer, Rollen, Einladungen und mandantenspezifische Einstellungen verwalten. |
Der Bob-Operator erstellt beide Routen automatisch während der Installation.
Aktivitätsprotokolle sind in der Bob-Admin-UI für dieses Release nicht verfügbar. Um auf Servicelogs zuzugreifen, rufe die Pod-Logs für den Authentifizierungsdienst, den Autorisierungsdienst und den Admin-Dienst direkt über die OpenShift Container Platform-Konsole oder CLI ab. Weitere Informationen findest du unter Bekannte Einschränkungen.
Zugriff auf die Keycloak Admin Console
So findest du die Keycloak-Route in deinem Cluster:
oc get route -n <instance-namespace> | grep keycloakAnfängliche Administratoranmeldeinformationen aus dem Cluster-Secret abrufen:
oc get secret bob-keycloak-initial-admin \
-n <instance-namespace> \
-o jsonpath='{.data.username}' | base64 -d && echooc get secret bob-keycloak-initial-admin \
-n <instance-namespace> \
-o jsonpath='{.data.password}' | base64 -d && echoÄndere das Secret bob-keycloak-initial-admin nicht. Der Bob-Operator verwendet diese Anmeldeinformationen während der Abstimmung. Das Ändern der gespeicherten Anmeldeinformationen kann operator-verwaltete Funktionen stören.
Wenn du ein persönliches Administratorkonto benötigst, melde dich mit den anfänglichen Administratoranmeldeinformationen an und erstelle einen separaten Benutzer im master-Realm für laufende Administrationsaufgaben.
Nach der Anmeldung wechsle zum bob-Realm mithilfe des Realm-Selektors in der oberen linken Ecke der Keycloak-Konsole. Alle Bob-Benutzer, Gruppen, Identitätsprovider und Federationsprovider werden aus diesem Realm heraus verwaltet.
Keycloak-Realms verstehen
Ein Realm ist eine isolierte Verwaltungsdomäne, die ihre eigenen Benutzer, Anmeldeinformationen, Rollen, Gruppen und Identitätsprovider enthält.
Bob On-Premises verwendet zwei Realms:
| Realm | Zweck |
|---|---|
| master | Reserviert für die Keycloak-Administration. Benutzer in diesem Realm können Keycloak administrieren, haben aber keinen Zugriff auf Bob. |
| bob | Enthält alle Bob-Benutzer, Gruppen, LDAP-Federationsprovider und Anwendungsclients. Der Bob-Operator erstellt und verwaltet diesen Realm. |
Die beiden Realms sind vollständig unabhängig. Mitgliedschaft oder Berechtigungen in einem Realm gewähren keinen Zugriff auf Ressourcen im anderen.
Der bob-Realm wird vom Operator verwaltet. Du kannst direkte Änderungen über die Keycloak-Konsole vornehmen, aber der IBM-Support beschränkt sich auf die Behebung von Problemen, die die Bob-Authentifizierung und den Zugriff betreffen.
LDAP-Federationsprovider verwalten
LDAP-Federationsprovider, die über bobctl configure-idp oder die benutzerdefinierte BobLDAP-Ressource konfiguriert wurden, sind im Abschnitt User Federation des bob-Realms sichtbar.
Der Bob-Operator registriert LDAP-Provider, wenn sie erstellt werden. Nachfolgende Änderungen, die direkt in der Keycloak-Konsole vorgenommen werden, werden nicht zurück zur entsprechenden benutzerdefinierten BobLDAP-Ressource synchronisiert.
Verwende für ein konsistentes Konfigurationsmanagement nach Möglichkeit die benutzerdefinierte BobLDAP-Ressource und bobctl configure-idp-Befehle.
Sicherheitsüberlegungen
Befolge diese Empfehlungen bei der Administration von Keycloak:
- Beschränke den Zugriff auf das Secret
bob-keycloak-initial-adminauf Cluster-Administratoren. - Führe Bob-Administrationsaufgaben im
bob-Realm durch. - Verwende den
master-Realm nur für die Keycloak-Infrastrukturadministration. - Erstelle keine zusätzlichen Realms oder Clients, es sei denn, dies ist ausdrücklich erforderlich und wird unterstützt.
- Verwalte LDAP-Federation über
BobLDAP-Ressourcen statt direkt über Provider-Einstellungen in der Keycloak-Konsole. - Behandle das anfängliche Administratorkonto als Notfall- oder Bootstrap-Konto und verwende dedizierte persönliche Administratorkonten für die routinemäßige Administration.
Direkte Keycloak-Benutzer verwalten
Benutzer können direkt in Keycloak erstellt und verwaltet werden, ohne ein LDAP-Verzeichnis zu integrieren. Dieser Ansatz eignet sich für Proof-of-Concept-Umgebungen, kleine Deployments oder Installationen, in denen kein LDAP-Server verfügbar ist. Für Produktionsumgebungen, die bereits einen Unternehmensverzeichnisdienst verwenden, ist die LDAP-Federation der empfohlene Ansatz.
Benutzer hinzufügen
Um einen lokalen Benutzer zu erstellen, öffne den Abschnitt Users im bob-Realm und erstelle ein neues Benutzerkonto. Nach dem Speichern des Benutzers konfiguriere ein Passwort und weise die entsprechenden Gruppenmitgliedschaften zu:
- Füge den Benutzer zu bob-users hinzu, um Standardzugriff zu gewähren.
- Füge den Benutzer sowohl zu bob-users als auch zu bob-admins hinzu, um Administratorzugriff zu gewähren.
Passwörter verwalten
Passwörter für lokal verwaltete Benutzer werden über die Keycloak-Administrationskonsole verwaltet. Öffne den Benutzerdatensatz und verwende die Registerkarte Credentials, um das Passwort des Benutzers zu erstellen, zu aktualisieren oder zurückzusetzen.
Benutzer entfernen
Um den Zugriff für einen Benutzer zu entfernen, öffne den Benutzerdatensatz in der Keycloak-Administrationskonsole und lösche oder deaktiviere das Konto. Deaktivierte Benutzer können sich nicht mehr authentifizieren, während ihre Benutzerinformationen im System verfügbar bleiben.