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

KonzeptBeschreibung
IdentitätsproviderKeycloak — vom Bob-Operator deployed und verwaltet.
BenutzerquellenBenutzer können direkt in Keycloak erstellt oder aus einem LDAP- oder Active-Directory-Dienst föderiert werden.
AuthentifizierungBenutzer authentifizieren sich über Keycloak mittels OpenID Connect (OIDC). Keycloak stellt einen kurzlebigen Autorisierungscode aus, den bob-authn gegen ein Bob-Bearer-Token eintauscht.
AutorisierungDer Zugriff auf Bob-Funktionen wird durch Rollen gesteuert, die Benutzern in Keycloak zugewiesen sind.
KonfigurationsoberflächeDie 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-WertVerzeichnistyp
otherOpenLDAP und andere generische LDAPv3-kompatible Verzeichnisdienste
adMicrosoft Active Directory
rhdsRed Hat Directory Server
tivoliIBM Security Directory Server (früher Tivoli Directory Server)
edirectoryNetIQ / 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

  1. Der Benutzer gibt seine Anmeldeinformationen ein.
  2. Keycloak authentifiziert den Benutzer.
  3. Keycloak stellt einen kurzlebigen Autorisierungscode aus.
  4. bob-authn tauscht den Autorisierungscode gegen ein Bob-Bearer-Token ein.
  5. 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:

ModususerSync.enabledVerhalten
Auf Abruffalse (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)trueWenn 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:

  1. Der Benutzer wird in Keycloak importiert.
  2. Der Benutzer wird in Bob über SCIM bereitgestellt.
  3. Der erste Anmeldeversuch schlägt aufgrund der Bereitstellungslatenz fehl.
  4. 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.

Hinweis:

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.

BenutzerereignisBob-Aktion
Benutzer erstellt oder erste AnmeldungStellt den Benutzer bereit und gewährt Zugriff auf Bob
Benutzer aktualisiertSynchronisiert Profiländerungen
Benutzer aus LDAP entferntWiderruft den Zugriff auf Bob, behält aber Benutzerdaten
Hinweis:

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-GruppeGewährte Keycloak-RolleWer wird hinzugefügt
bob-usersbob-userAlle authentifizierten Benutzer werden automatisch bei ihrer ersten erfolgreichen Anmeldung über die Standard-Gruppe des Realms hinzugefügt.
bob-adminsbob-adminBenutzer, 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:

  1. Füge die E-Mail-Adresse des Benutzers zu adminEmails in der IDP-Konfigurationsdatei hinzu.
  2. Wende die Änderung an: ./bobctl configure-idp --config my-idp.yaml

Um Administratorrechte zu entziehen:

  1. Entferne die E-Mail-Adresse aus adminEmails.
  2. Wende die Konfiguration erneut an.
Wichtig:

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

SchnittstelleURLZweck
Keycloak Admin Consolehttps://bob-keycloak.<namespace>.<ingress-domain>Keycloak-Infrastruktur, Benutzer, Gruppen, Identitätsprovider und Federationseinstellungen verwalten.
Bob Admin UIhttps://bob.<namespace>.<ingress-domain>/adminBob-Benutzer, Rollen, Einladungen und mandantenspezifische Einstellungen verwalten.

Der Bob-Operator erstellt beide Routen automatisch während der Installation.

Hinweis:

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 keycloak

Anfängliche Administratoranmeldeinformationen aus dem Cluster-Secret abrufen:

oc get secret bob-keycloak-initial-admin \
  -n <instance-namespace> \
  -o jsonpath='{.data.username}' | base64 -d && echo
oc get secret bob-keycloak-initial-admin \
  -n <instance-namespace> \
  -o jsonpath='{.data.password}' | base64 -d && echo
Warnung:

Ä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:

RealmZweck
masterReserviert für die Keycloak-Administration. Benutzer in diesem Realm können Keycloak administrieren, haben aber keinen Zugriff auf Bob.
bobEnthä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.

Hinweis:

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-admin auf 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.

Wie ist dieses Thema?