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

ConceptDescription
Fournisseur d'identitéKeycloak — déployé et géré par l'opérateur Bob.
Sources d'utilisateursLes utilisateurs peuvent être créés directement dans Keycloak ou fédérés à partir d'un service LDAP ou Active Directory.
AuthentificationLes 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.
AutorisationL'accès aux fonctionnalités de Bob est régi par les rôles attribués aux utilisateurs dans Keycloak.
Surface de configurationL'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 vendorType d'annuaire
otherOpenLDAP et autres services d'annuaire génériques compatibles LDAPv3
adMicrosoft Active Directory
rhdsRed Hat Directory Server
tivoliIBM Security Directory Server (anciennement Tivoli Directory Server)
edirectoryNetIQ / 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

  1. L'utilisateur saisit ses identifiants.
  2. Keycloak authentifie l'utilisateur.
  3. Keycloak émet un code d'autorisation à courte durée de vie.
  4. bob-authn échange le code d'autorisation contre un jeton porteur Bob.
  5. 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 :

ModeuserSync.enabledComportement
À la demandefalse (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é)trueLorsqu'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 :

  1. L'utilisateur est importé dans Keycloak.
  2. L'utilisateur est provisionné dans Bob via SCIM.
  3. La première tentative de connexion échoue en raison de la latence de provisionnement.
  4. 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.

Remarque :

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 utilisateurAction Bob
Utilisateur créé ou première connexionProvisionne l'utilisateur et lui accorde l'accès à Bob
Utilisateur mis à jourSynchronise les modifications de profil
Utilisateur supprimé du LDAPRévoque l'accès à Bob tout en conservant les données de l'utilisateur
Remarque :

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 KeycloakRôle Keycloak accordéQui est ajouté
bob-usersbob-userTous 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-adminsbob-adminLes 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 :

  1. Ajoutez l'adresse e-mail de l'utilisateur à adminEmails dans le fichier de configuration IDP.
  2. Appliquez la modification : ./bobctl configure-idp --config my-idp.yaml

Pour révoquer des privilèges d'administrateur :

  1. Supprimez l'adresse e-mail de adminEmails.
  2. Réappliquez la configuration.
Important :

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

InterfaceURLRôle
Keycloak Admin Consolehttps://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 UIhttps://bob.<namespace>.<ingress-domain>/adminGé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.

Remarque :

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 keycloak

Ré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 && echo
oc get secret bob-keycloak-initial-admin \
  -n <instance-namespace> \
  -o jsonpath='{.data.password}' | base64 -d && echo
Avertissement :

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

RealmRôle
masterRéservé à l'administration de Keycloak. Les utilisateurs de ce realm peuvent administrer Keycloak mais ne peuvent pas accéder à Bob.
bobContient 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.

Remarque :

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-admin aux administrateurs du cluster.
  • Effectuez les tâches d'administration de Bob dans le realm bob.
  • Utilisez le realm master uniquement 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 BobLDAP au 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.

Comment trouvez-vous ce sujet ?