Gestion des utilisateurs
Gérez l'accès des utilisateurs pour IBM Bob on-premises à l'aide de Keycloak comme fournisseur d'identité, avec fédération LDAP ou Active Directory ou comptes gérés localement.
IBM Bob on-premises inclut un fournisseur d'identité Keycloak pour l'authentification des utilisateurs et la gestion des accès. Les utilisateurs peuvent être fédérés à partir d'un environnement LDAP ou Active Directory existant, ou créés directement dans Keycloak. Quelle que soit la méthode de provisionnement, un rôle Bob approprié doit être attribué aux utilisateurs avant qu'ils ne puissent accéder au service.
Présentation
| Concept | Description |
|---|---|
| Fournisseur d'identité | Keycloak — déployé et géré par l'opérateur Bob. |
| Sources d'utilisateurs | Les utilisateurs peuvent être créés directement dans Keycloak ou fédérés à partir d'un service LDAP ou Active Directory. |
| Authentification | Les utilisateurs s'authentifient via Keycloak à l'aide d'OpenID Connect (OIDC). Keycloak émet un code d'autorisation à courte durée de vie que bob-authn échange contre un jeton porteur (bearer token) Bob. |
| Autorisation | L'accès aux fonctionnalités de Bob est régi par les rôles attribués aux utilisateurs dans Keycloak. |
| Surface de configuration | L'intégration LDAP est gérée via la ressource personnalisée BobLDAP à l'aide de la commande bobctl configure-idp. |
Types d'annuaires LDAP pris en charge
Bob on-premises prend en charge tout service d'annuaire conforme à LDAPv3. Le paramètre vendor dans la configuration LDAP détermine le modèle de fournisseur Keycloak à utiliser, qui définit les paramètres spécifiques au protocole pour le type d'annuaire sélectionné.
Valeur de vendor | Type d'annuaire |
|---|---|
other | OpenLDAP et autres services d'annuaire génériques compatibles LDAPv3 |
ad | Microsoft Active Directory |
rhds | Red Hat Directory Server |
tivoli | IBM Security Directory Server (anciennement Tivoli Directory Server) |
edirectory | NetIQ / Micro Focus eDirectory |
Architecture d'authentification et de fédération
Lorsqu'un utilisateur se connecte, Bob transmet la requête à Keycloak, qui gère l'authentification. Tous les utilisateurs s'authentifient via Keycloak. La fédération LDAP est facultative et n'est active que lorsqu'elle est configurée.
- Fédération LDAP activée : Keycloak authentifie les utilisateurs directement auprès de l'annuaire LDAP. Les mots de passe des utilisateurs restent dans l'annuaire LDAP et ne sont pas stockés dans Keycloak.
- Fédération LDAP désactivée : Keycloak authentifie les utilisateurs à l'aide du magasin d'utilisateurs local de Keycloak.
Flux d'authentification
- L'utilisateur saisit ses identifiants.
- Keycloak authentifie l'utilisateur.
- Keycloak émet un code d'autorisation à courte durée de vie.
bob-authnéchange le code d'autorisation contre un jeton porteur Bob.- Toutes les requêtes d'API ultérieures utilisent le jeton émis par Bob.
Comportement de synchronisation des utilisateurs
Bob on-premises prend en charge deux modes de synchronisation, configurés via le paramètre userSync.enabled dans la configuration LDAP :
| Mode | userSync.enabled | Comportement |
|---|---|---|
| À la demande | false (par défaut) | Les utilisateurs ne sont importés dans Keycloak que lors de leur première connexion réussie, ce qui élimine la nécessité d'une analyse initiale de l'annuaire. Cette option est recommandée pour les environnements d'annuaire très volumineux. |
| Synchronisation immédiate (Eager sync) (recommandé) | true | Lorsqu'un fournisseur LDAP est enregistré, une synchronisation complète unique importe tous les utilisateurs de l'annuaire. Après l'importation initiale, Keycloak synchronise automatiquement les mises à jour des utilisateurs toutes les cinq minutes. Cette approche garantit que tous les utilisateurs sont immédiatement disponibles et que les comptes administrateurs spécifiés via adminEmails peuvent être provisionnés sans nécessiter une première connexion des utilisateurs. |
Synchronisation à la demande
Utilisez ce mode pour les très grands annuaires où l'importation immédiate de tous les utilisateurs n'est pas pratique.
Lors de la première tentative d'authentification :
- L'utilisateur est importé dans Keycloak.
- L'utilisateur est provisionné dans Bob via SCIM.
- La première tentative de connexion échoue en raison de la latence de provisionnement.
- L'utilisateur peut se connecter avec succès une fois le provisionnement terminé.
Synchronisation immédiate (Eager sync)
Recommandée pour la plupart des déploiements. Tous les utilisateurs deviennent disponibles immédiatement après la fin de la synchronisation et n'ont pas besoin de se connecter pour être provisionnés.
L'intervalle de synchronisation est actuellement fixé à 5 minutes.
Synchronisation des utilisateurs avec SCIM
IBM Bob on-premises utilise un plugin SCIM 2.0 personnalisé intégré dans Keycloak pour synchroniser les comptes utilisateurs entre Keycloak et Bob. L'opérateur Bob configure cette intégration automatiquement, et aucune configuration supplémentaire n'est requise.
Fonctionnement de la synchronisation des utilisateurs
Lorsqu'un événement de cycle de vie utilisateur se produit dans Keycloak, le plugin SCIM envoie l'événement correspondant au service bob-admin. Bob met ensuite à jour l'accès et les informations de profil de l'utilisateur en fonction de l'événement.
Cette synchronisation s'applique à tous les utilisateurs gérés par Keycloak, y compris les utilisateurs fédérés LDAP et les utilisateurs créés directement dans la console d'administration Keycloak.
| Événement utilisateur | Action Bob |
|---|---|
| Utilisateur créé ou première connexion | Provisionne l'utilisateur et lui accorde l'accès à Bob |
| Utilisateur mis à jour | Synchronise les modifications de profil |
| Utilisateur supprimé du LDAP | Révoque l'accès à Bob tout en conservant les données de l'utilisateur |
La suppression d'un utilisateur de LDAP révoque son accès à Bob mais ne supprime pas ses données. Si l'utilisateur est rajouté à l'annuaire, l'accès est rétabli et le travail créé précédemment reste disponible.
Vérification de la synchronisation
Bob ne fournit pas actuellement de condition d'état ni de contrôle de santé confirmant que la synchronisation SCIM est active. Pour vérifier que le provisionnement fonctionne, créez ou importez un utilisateur de test et confirmez que l'utilisateur apparaît dans Bob après sa première connexion ou après l'importation initiale userSync.
Gestion des rôles et de l'appartenance aux groupes
IBM Bob utilise les groupes Keycloak pour contrôler les rôles des utilisateurs. L'opérateur Bob crée et gère automatiquement les groupes et mappages de rôles requis.
| Groupe Keycloak | Rôle Keycloak accordé | Qui est ajouté |
|---|---|---|
bob-users | bob-user | Tous les utilisateurs authentifiés sont automatiquement ajoutés lors de leur première connexion réussie via le groupe par défaut du realm. |
bob-admins | bob-admin | Les utilisateurs spécifiés dans le champ adminEmails de la configuration BobLDAP sont automatiquement attribués par l'opérateur lors de chaque cycle de réconciliation. |
Accès administrateur
Tous les utilisateurs authentifiés reçoivent un accès standard à Bob.
Pour accorder des privilèges d'administrateur :
- Ajoutez l'adresse e-mail de l'utilisateur à
adminEmailsdans le fichier de configuration IDP. - Appliquez la modification :
./bobctl configure-idp --config my-idp.yaml
Pour révoquer des privilèges d'administrateur :
- Supprimez l'adresse e-mail de
adminEmails. - Réappliquez la configuration.
bobctl configure-idp est la seule méthode prise en charge pour gérer l'accès administrateur Bob. L'ajout d'une adresse e-mail à adminEmails ne crée pas de compte utilisateur — l'utilisateur doit déjà exister dans Keycloak via la fédération LDAP ou la création directe d'utilisateurs.
Administration de Keycloak
Bob on-premises inclut un déploiement Keycloak qui fournit des services de gestion des identités et des accès. L'administration de Keycloak est distincte de l'administration de Bob, et chaque interface répond à un objectif différent.
Interfaces d'administration
| Interface | URL | Rôle |
|---|---|---|
| Keycloak Admin Console | https://bob-keycloak.<namespace>.<ingress-domain> | Gérer l'infrastructure Keycloak, les utilisateurs, les groupes, les fournisseurs d'identité et les paramètres de fédération. |
| Bob Admin UI | https://bob.<namespace>.<ingress-domain>/admin | Gérer les utilisateurs, les rôles, les invitations et les paramètres spécifiques au tenant Bob. |
L'opérateur Bob crée automatiquement les deux routes lors de l'installation.
Les journaux d'activité ne sont pas disponibles dans l'Admin UI de Bob pour cette version. Pour accéder aux journaux des services, consultez directement les journaux des pods pour le Service d'authentification, le Service d'autorisation et le Service d'administration depuis la console OpenShift Container Platform ou la CLI. Pour plus d'informations, voir Limitations connues.
Accéder à la Keycloak Admin Console
Pour trouver la route Keycloak dans votre cluster, exécutez :
oc get route -n <instance-namespace> | grep keycloakRécupérez les identifiants d'administrateur initiaux depuis le secret du cluster :
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 && echoNe modifiez pas le secret bob-keycloak-initial-admin. L'opérateur Bob utilise ces identifiants lors de la réconciliation. Modifier les identifiants stockés peut perturber les fonctionnalités gérées par l'opérateur.
Si vous avez besoin d'un compte administrateur personnel, connectez-vous avec les identifiants d'administrateur initiaux et créez un utilisateur distinct dans le realm master pour les tâches administratives courantes.
Après vous être connecté, basculez vers le realm bob à l'aide du sélecteur de realm situé dans le coin supérieur gauche de la console Keycloak. Tous les utilisateurs, groupes, fournisseurs d'identité et fournisseurs de fédération de Bob sont gérés depuis ce realm.
Comprendre les realms Keycloak
Un realm est un domaine de gestion isolé qui contient ses propres utilisateurs, identifiants, rôles, groupes et fournisseurs d'identité.
Bob on-premises utilise deux realms :
| Realm | Rôle |
|---|---|
| master | Réservé à l'administration de Keycloak. Les utilisateurs de ce realm peuvent administrer Keycloak mais ne peuvent pas accéder à Bob. |
| bob | Contient tous les utilisateurs, groupes, fournisseurs de fédération LDAP et clients d'application Bob. L'opérateur Bob crée et gère ce realm. |
Les deux realms sont totalement indépendants. L'appartenance ou les privilèges dans un realm ne confèrent pas d'accès aux ressources de l'autre.
Le realm bob est géré par l'opérateur. Vous pouvez effectuer des modifications directes via la console Keycloak, mais le support IBM est limité à la résolution des problèmes affectant l'authentification et l'accès à Bob.
Gérer les fournisseurs de fédération LDAP
Les fournisseurs de fédération LDAP configurés via bobctl configure-idp ou la ressource personnalisée BobLDAP sont visibles dans la section User Federation du realm bob.
L'opérateur Bob enregistre les fournisseurs LDAP lors de leur création. Les modifications ultérieures apportées directement dans la console Keycloak ne sont pas synchronisées vers la ressource personnalisée BobLDAP correspondante.
Pour une gestion de configuration cohérente, utilisez la ressource personnalisée BobLDAP et les commandes bobctl configure-idp chaque fois que possible.
Considérations de sécurité
Suivez ces recommandations lors de l'administration de Keycloak :
- Restreignez l'accès au secret
bob-keycloak-initial-adminaux administrateurs du cluster. - Effectuez les tâches d'administration de Bob dans le realm
bob. - Utilisez le realm
masteruniquement pour l'administration de l'infrastructure Keycloak. - Ne créez pas de realms ou de clients supplémentaires sauf si cela est explicitement requis et pris en charge.
- Gérez la fédération LDAP via des ressources
BobLDAPau lieu de modifier directement les paramètres du fournisseur dans la console Keycloak. - Considérez le compte administrateur initial comme un compte d'urgence ou d'amorçage, et utilisez des comptes administrateurs personnels dédiés pour l'administration courante.
Gestion directe des utilisateurs Keycloak
Les utilisateurs peuvent être créés et gérés directement au sein de Keycloak sans intégrer d'annuaire LDAP. Cette approche convient aux environnements de démonstration de faisabilité (PoC), aux déploiements à petite échelle ou aux installations où aucun serveur LDAP n'est disponible. Pour les environnements de production utilisant déjà un service d'annuaire d'entreprise, la fédération LDAP est l'approche recommandée.
Ajouter un utilisateur
Pour créer un utilisateur local, ouvrez la section Users dans le realm bob et créez un nouveau compte utilisateur. Après avoir enregistré l'utilisateur, configurez un mot de passe et attribuez les appartenances aux groupes appropriées :
- Ajoutez l'utilisateur à bob-users pour accorder un accès standard.
- Ajoutez l'utilisateur à la fois à bob-users et à bob-admins pour accorder un accès administrateur.
Gérer les mots de passe
Les mots de passe des utilisateurs gérés localement sont administrés via la console d'administration Keycloak. Ouvrez la fiche de l'utilisateur et utilisez l'onglet Credentials pour créer, mettre à jour ou réinitialiser le mot de passe de l'utilisateur.
Supprimer un utilisateur
Pour révoquer l'accès d'un utilisateur, ouvrez la fiche de l'utilisateur dans la console d'administration Keycloak et supprimez ou désactivez le compte. Les utilisateurs désactivés ne peuvent plus s'authentifier, tandis que leurs informations utilisateur restent disponibles dans le système.