Vous pouvez utiliser l'espace de travail Authentification pour configurer des services d'annuaire SaltStack Config à l'aide du protocole LDAP. Ce protocole est utilisé pour la connexion à des services tels qu’Active Directory ou Microsoft Azure.

Note : Vous pouvez utiliser plusieurs systèmes à la fois pour authentifier des utilisateurs dans SaltStack Config si nécessaire. Par exemple, vous pouvez utiliser un fournisseur d'identité basé sur SAML ou un fournisseur d'identité basé sur LDAP tout en stockant simultanément des informations d'identification d'utilisateur nativement sur le serveur RaaS. Cependant, SaltStack Config n'autorise pas la configuration de plus de deux fournisseurs SAML ou deux fournisseurs LDAP en même temps.

SaltStack Config utilise le processus principal suivant pour authentifier les systèmes LDAP :

  • Aperçu : lorsque vous prévisualisez vos paramètres de connexion, SaltStack Config récupère un exemple de liste d'utilisateurs et de groupes à partir de votre serveur LDAP afin de vérifier que vous avez correctement entré les paramètres de configuration.
  • Connexion : lorsqu'un utilisateur entre des informations d'identification dans le formulaire de connexion de SaltStack Config, le serveur principal recherche alors une correspondance dans la base de données. Il initie ensuite un processus de recherche à plusieurs étapes et, dès qu'il trouve une correspondance, il authentifie l'utilisateur. Compte tenu de ce processus de recherche, les utilisateurs individuels activés dans les groupes activés ne figurent pas dans l'espace de travail Rôles avant la première connexion de l'utilisateur.
  • Tâches en arrière-plan : SaltStack Config exécute régulièrement une tâche d'arrière-plan pour rechercher chaque groupe et chaque utilisateur lié dans la connexion du service d'annuaire afin de s'assurer qu'il existe toujours. Si le groupe ou l’utilisateur a été supprimé, le serveur principal désactive son lien dans la base de données.
  • Groupes et utilisateurs archivés : tous les groupes que vous supprimez de votre connexion au service d'annuaire sont archivés. Même si ces groupes sont inactifs et que les utilisateurs ne peuvent pas se connecter, ils sont toujours visibles dans l'espace de travail Rôles et peuvent être sélectionnés. Cela s'applique également à tous les utilisateurs supprimés précédemment visibles dans l'espace de travail Rôles.
  • Groupes imbriqués : lorsque vous travaillez avec des groupes imbriqués, en activant un groupe parent, vous activez également tous les groupes enfants par défaut.

Configuration d'une connexion LDAP

Pour configurer une connexion LDAP, créez d'abord une connexion, puis activez des utilisateurs et des groupes LDAP spécifiques pour qu'ils puissent s'authentifier dans SaltStack Config. Une fois que vous avez activé des groupes ou des utilisateurs, vous pouvez définir leurs paramètres de contrôle d'accès basé sur les rôles (RBAC).

Vous pouvez choisir de préremplir les champs avec des paramètres par défaut personnalisés pour le service d'annuaire, tels qu'Active Directory ou OpenLDAP.

Note : Les étapes suivantes doivent être effectuées par un administrateur LDAP ou Active Directory expérimenté qui comprend la disposition globale du système LDAP. Pour obtenir de l'aide, contactez votre administrateur.

Pour configurer un service d'annuaire LDAP :

  1. (Facultatif) Avant de configurer LDAP, il peut être utile de tester votre connexion et vos requêtes à l'aide d'un outil tiers. Pour les utilisateurs AD, vous pouvez utiliser LDP ou ADSI Edit. Pour les utilisateurs Linux, l'outil recommandé est ldapsearch.
    Note : Pour plus d'informations sur les tests avec ces outils, reportez-vous à l'article Vérification et dépannage d'une connexion à un service d'annuaire dans le centre de support.
  2. Dans le menu latéral, cliquez sur Administration > Authentification.
  3. Cliquez sur Créer.
  4. Dans le menu Configuration, sélectionnez LDAP.
  5. (Facultatif) Sous Paramètres, cliquez sur Préremplir les valeurs par défaut, puis sélectionnez le service d'annuaire dans la liste déroulante.

    Les entrées par défaut sont remplies en fonction de votre sélection. Cependant, certaines entrées, telles que DN de recherche d'utilisateurs sont incomplètes. Assurez-vous de vérifier que les entrées correspondent à votre schéma de service d'annuaire et de remplacer le texte d'espace réservé par les valeurs correctes pour votre service.

  6. Entrez ou vérifiez les informations de votre connexion LDAP.

    De base

    Champ Description
    Nom Nom de la connexion LDAP. Étant donné qu'il s'agit uniquement d'un nom d'affichage, il est utile d'entrer n'importe quel nom pour différencier ce serveur d'authentification principal des autres.
    Hôte Adresse du serveur hôte LDAP, formatée en tant que nom de domaine complet ou adresse IP.
    dest. Port sur lequel le serveur LDAP est configuré. La valeur par défaut est 389 pour LDAP non chiffré et 636 pour LDAP sur SSL.
    Synchronisation en arrière-plan SaltStack Config valide tous les utilisateurs et groupes par rapport au serveur d'authentification principal à un intervalle défini (en minutes) ici.
    SSL
    Activer SSL
    Sélectionnez cette configuration pour vous connecter au serveur LDAP sur une couche SSL (Secure Sockets Layer) à l'aide du certificat spécifié dans les paramètres de votre serveur RaaS. Si aucune configuration n'est fournie, le magasin de certificats système est utilisé pour valider la connexion SSL. Pour plus d'informations sur la configuration du serveur RaaS, reportez-vous à la section Configurer les certificats SSL du guide Installation et configuration de SaltStack Config.
    Important : Il est préférable de sélectionner Activer SSL. Lorsque cette option n'est pas sélectionnée, SaltStack Config transmet les informations en texte clair sur une connexion non sécurisée.
    Valider le certificat
    Sélectionnez cette fonction pour vous assurer que les certificats SSL sont validés lors de la connexion. Laissez cette fonction non sélectionnée pour ignorer la validation, par exemple lors de l'utilisation de certificats auto-signés (non recommandé pour les environnements de production).

    Authentification

    Champ Description
    Nom unique de base d'authentification

    Nom unique LDAP de base. Il s'agit des groupes d'emplacements et des utilisateurs qui sont interrogés, par exemple depuis DC=sse,DC=example,DC=com.

    Note : La page de détails LDAP inclut des champs d'entrée distincts pour la classe d'objet de personne, le nom d'attribut de compte, la classe de groupe, le nom d'attribut du groupe et la planification de la synchronisation, comme décrit ci-dessous. Par conséquent, n'incluez pas ces objets dans le champ Nom unique de base.
    Nom unique de liaison d'administrateur Nom unique de l'administrateur configuré pour le serveur LDAP. SaltStack Config l'utilise pour s'authentifier dans l'annuaire pour les recherches d'utilisateurs et de groupes. Entrez une entrée basée sur la syntaxe suivante : cn=Administrator,cn=Users,dc=example,dc=com.
    Mot de passe du nom unique de liaison d'administrateur

    Mot de passe individuel de l’administrateur.

    Il est stocké chiffré dans la base de données. Il n'est pas stocké en texte brut.

    Filtre de noms uniques de liaison d'authentification

    Filtre appliqué pour sélectionner un utilisateur spécifique. Le résultat de cette recherche est un nom unique d'utilisateur que SaltStack Config utilise pour se lier à l'annuaire et accorder à l'utilisateur l'accès à SaltStack Config. Cela est utile pour limiter le nombre de résultats renvoyés à partir d’une recherche donnée.

    Note : Comme la syntaxe du filtre peut devenir assez complexe, il est préférable de tester l'entrée à l'aide de LDP, ldapsearch ou d'un outil similaire pour valider l'entrée et effectuer des ajustements avant de remplir ce champ.

    L'exemple de filtre suivant renvoie uniquement un compte correspondant au nom d'utilisateur fourni appartenant aux groupes DevOps ou Niveau II.

    (&(objectclass=user)(sAMAccountName={username})(|(memberOf=CN=DevOps,OU=Groups,OU=TestCompanyHQ,DC=adtest,DC=com)(memberOf=LevelII,OU=Groups,DC=adtest,DC=com)))

    Si vous utilisez des valeurs par défaut préremplies, assurez-vous de remplacer le texte d'espace réservé par les valeurs correspondant à votre service d'annuaire.

    Note : Lors de la configuration d’une structure de forêt, laissez ce champ vide.
    Nom d'attribut d'ID unique distant Nom de la valeur utilisée pour identifier les entrées uniques. Il s'agit de l'attribut d'ID unique pour toutes les entrées. Dans AD, il s'agit de ObjectGUID.

    Groupes

    Champ Description
    Nom unique de recherche de groupes Base de recherche des groupes. Par exemple, dans AD, il peut s'agir de cn=Groups,dc=example,dc=com. Indique où rechercher des groupes dans l'annuaire. À utiliser avec l'étendue de recherche de groupes ci-dessous.
    Étendue de recherche de groupes

    Indique la profondeur de recherche d'annuaire dans la base indiquée dans le nom unique de recherche de groupe et peut prendre l'une des quatre valeurs ci-dessous :

    baseObject
    Valeur 0, souvent appelée base. Utilisez cette valeur pour rechercher uniquement cet objet et aucun autre.
    singleLevel
    Valeur 1, souvent appelée one. Utilisez cette valeur pour tenir uniquement compte des enfants immédiats de l'entrée de base pour les correspondances.
    wholeSubtree
    Valeur 2 (ou SUBTREE dans ldap3), souvent appelée sub. Utilisez cette fonction pour effectuer une recherche dans la base et toutes ses subordonnées à toute profondeur.
    subordinateSubtree
    Valeur 3, souvent appelée subordinates. Cette valeur est identique à wholeSubtree, mais l'entrée de recherche de base est ignorée.
    Filtre de nom unique de recherche de groupe Filtre de recherche pour extraire des groupes de l’annuaire. Il s'agit généralement de (objectClass=group), mais dans certaines configurations AD il peut s'agir de (objectCategory=group). À utiliser en complément de la classe de groupe pour plus de granularité.
    Classe de groupe Nom de classe d'objet utilisé pour définir des groupes, par exemple groupOfNames.
    Attribut Nom de groupe Nom de l’attribut que vous souhaitez utiliser pour le nom de groupe. Entrez un attribut à valeur unique et non à valeurs multiples.
    Attribut d’appartenance au groupe Nom de l'attribut dans l'entrée d'utilisateur qui contient le nom de groupe, par exemple, memberOf.

    Utilisateurs

    Champ Description
    Nom unique de recherche d'utilisateur La base de recherche des utilisateurs, par exemple, cn=Users,dc=example,dc=com dans AD ou cn=people,cn=accounts,dc=example,dc=com dans d'autres services d'annuaire. Indique où rechercher des utilisateurs dans l'annuaire. Utilisez avec Étendue de recherche d'utilisateurs ci-dessous.
    Étendue de recherche d'utilisateur Indique la profondeur de recherche d'annuaire depuis la base indiquée dans Nom unique de recherche d'utilisateur et peut prendre l'une des quatre valeurs appropriées. Reportez-vous aux quatre valeurs décrites dans Étendue de recherche de groupe.
    Filtre Nom unique de recherche d'utilisateur Filtre de recherche pour extraire des utilisateurs de l'annuaire. Il s'agit généralement de (objectClass=person), mais dans certaines configurations AD, il peut s'agir de (objectCategory=user).
    Classe de personne Nom de classe de service d'annuaire contenant les utilisateurs que vous souhaitez autoriser à se connecter. La plupart des systèmes (notamment Active Directory) utilisent person, mais certains préfèrent user ou inetOrgPerson.
    Attribut ID d'utilisateur Nom unique de l’attribut de compte d’utilisateur. Pour AD, il s'agit de sAMAccountName. Pour les autres services, il s'agit souvent de uid ou de memberUid.
    Attribut d’appartenance de l’utilisateur Nom de l’attribut dans l’entrée de groupe qui contient le nom d’utilisateur. Les exemples possibles incluent member ou uniquemember.
  7. Pour prévisualiser les paramètres sans enregistrer, cliquez sur Aperçu de mise à jour.

    La fenêtre d'aperçu montre les utilisateurs et les groupes sélectionnés pour votre connexion. Vous pouvez sélectionner l'onglet Groupes ou Utilisateurs pour prévisualiser les utilisateurs et les groupes associés au service si nécessaire.

  8. Cliquez sur Enregistrer.

    La configuration LDAP a été enregistrée. Pour vérifier que la configuration est correcte, vous pouvez essayer de vous connecter à SaltStack Config à partir d'un compte d'utilisateur de test. Si vous n'êtes pas en mesure de vous connecter, reportez-vous à la section Dépannage pour obtenir des conseils.

    Note : Pour les configurations LDAP, SaltStack Config stocke les paramètres de connexion, y compris les groupes et les utilisateurs identifiés. Il récupère uniquement les groupes et les utilisateurs dans l'étendue que vous avez définie et ne synchronise pas l'intégralité de l'annuaire.

    Vous devrez peut-être de temps à autre actualiser ou resynchroniser votre annuaire LDAP. Par exemple, vous devez mettre à jour votre annuaire si vous avez ajouté de nouveaux utilisateurs et que vous souhaitez les activer dans SaltStack Config.

Activation de groupes et d'utilisateurs

Après avoir configuré votre connexion LDAP, vous devez ensuite configurer des groupes de services d'annuaire et vous assurer que les utilisateurs peuvent se connecter à SaltStack Config. Pour configurer des groupes de services d’annuaire :

  1. Dans l'espace de travail Authentification, sélectionnez la configuration LDAP requise.
  2. Sélectionnez l'onglet Groupes pour voir une liste de groupes récupérés de votre configuration LDAP.
    Note : Si vous récupérez un grand nombre de groupes, le chargement de la page peut prendre jusqu'à une minute.
  3. Sélectionnez les groupes que vous souhaitez activer dans SaltStack Config.
  4. Sélectionnez l'onglet Utilisateurs pour voir la liste des utilisateurs récupérés à partir de votre configuration LDAP.
    Note : Si vous récupérez un grand nombre d'utilisateurs, le chargement de la page peut prendre jusqu'à une minute.
  5. Sélectionnez les utilisateurs que vous souhaitez activer dans SaltStack Config.
    Note : Tous les utilisateurs inclus dans les groupes activés sont déjà sélectionnés et ne peuvent pas être désélectionnés.
    directory-service-users-enabled-group
  6. Cliquez sur Enregistrer.

    Vous pouvez maintenant définir des paramètres de contrôle d'accès basé sur les rôles (RBAC) pour les groupes sélectionnés. Toutefois, l'espace de travail Rôles vous permet de gérer les paramètres des utilisateurs individuels inclus dans les groupes sélectionnés uniquement après la première connexion de l'utilisateur. Pour supprimer des groupes ou des utilisateurs, désélectionnez le groupe ou l'utilisateur, puis cliquez sur Enregistrer.

    Pour plus d'informations sur le contrôle d'accès basé sur les rôles (RBAC) dans SaltStack Config, reportez-vous à la section Définition des rôles d'utilisateur.

Dépannage de votre connexion LDAP

Si vous ne pouvez pas prévisualiser correctement votre connexion, suivez cette procédure de dépannage.
Problème Description Solution
Je ne peux pas prévisualiser ma connexion

Si vous ne pouvez pas prévisualiser vos groupes et utilisateurs, cela est souvent dû à un problème de connexion entre votre serveur LDAP et SaltStack Config ou à une entrée non valide dans le formulaire de configuration LDAP.

  1. Assurez-vous que les connexions TCP de SaltStack Config au port sélectionné sur le serveur LDAP sont autorisées.
  2. Vérifiez à nouveau vos entrées de formulaire et validez la syntaxe à l'aide d'un outil tiers. Reportez-vous à la section Vérification et dépannage d'une connexion au service d'annuaire.
  3. Si aucun des éléments précédents ne permet de résoudre le problème, reportez-vous à la section Autres problèmes ci-dessous.
  4. Si aucun des éléments ci-dessus ne vous aide, contactez le support client.
Lorsque vous essayez de prévisualiser la connexion, la page reste bloquée lors du chargement Si le chargement de la page reste bloqué pendant plus de deux minutes, redémarrez le service RaaS, puis supprimez et recréez la configuration.
  1. Ouvrez le journal RaaS.
    tail -f /var/log/raas/raas

    Le journal contient une erreur semblable à ce qui suit :

    [ERROR    :256][ForkPoolWorker-2:10253][ldap_preview_background_task(some_uuid)]
    Task ldap preview_background_task[some_uuid]raised unexpected: KeyError('ad-1_preview')
  2. Arrêtez, puis redémarrez le service RaaS.
    systemctl stop raas
    systemctl start raas
  3. Revenez à l'interface utilisateur de SaltStack Config et supprimez la connexion LDAP.
    Note :

    Vous pouvez copier et coller vos entrées de configuration dans un fichier texte de sauvegarde avant la suppression.

  4. Recréez la configuration LDAP.
Autres problèmes divers

Si vous avez déjà configuré et enregistré votre connexion LDAP, mais que les utilisateurs ne peuvent pas se connecter ou si vous rencontrez d'autres problèmes, consultez les journaux de raas en activant au préalable le débogage étendu pour vous aider à déterminer la cause principale.

Pour activer le débogage étendu :

  1. Sur RaaS, ouvrez /etc/raas/raas.
  2. Apportez les modifications suivantes :
    • Sous Loggingoptions, annulez la mise en commentaire de log_file_loglevel:debug
    • Sous AD/LDAPdriverconfiguration, annulez la mise en commentaire de log_level et définissez cette option sur log_level:EXTENDED
  3. Arrêtez, puis redémarrez le service RaaS.
    systemctl stop raas
    systemctl start raas
  4. Affichez le journal raas.
    tail -f /var/log/raas/raas

Exemples d'erreurs courantes pouvant figurer dans les journaux :

  • Paramètres erronés pour la connexion (SSL). Ajustez vos paramètres SSL.
    [raas.utils.validation.schemas.settings][DEBUG   :546 ][Webserver:9096]
    Error while connecting to AD/LDAP Server. SSL connection issues: socket
    ssl wrapping error: [Errno 104] Connection reset by peer
  • Mot de passe incorrect pour nom unique de liaison d'administrateur. Vérifiez et entrez à nouveau votre mot de passe.
    [raas.utils.rpc   ][DEBUG   :284 ][Webserver:9095]
    Processed RPC request(129360670417695). Response:
    {'riq': 129360670417695, 'ret': None, 'error': {'code': 3004, 'message':
    'Request validation failure.', 'detail': {'_schema':
    ['Credentials are not valid']}}, 'warnings': []}
  • Le filtre de nom unique de liaison d'authentification par défaut prérempli crée un conflit. Laissez le champ vide ou utilisez {username} plutôt que {{username}}.
    Note :

    Vous pouvez rencontrer cette erreur lorsque vous avez déjà enregistré votre connexion LDAP, mais que les utilisateurs ne peuvent pas se connecter.

    [var.tmp._MEIBCyG76.raas.mods.auth.ldap][DEBUG   :903 ][Webserver:9096]
    Running _get_auth_backend_user with this search_filter: (&(objectclass=person)(sAMAccountName={username}))
    
    [var.tmp._MEIBCyG76.raas.mods.auth.ldap][DEBUG   :931 ][Webserver:9096]
    Could not find any user using '(&(objectclass=person)(sAMAccountName={username}))'
    as the search filter in the ldap backend under the ad-1 configuration.
    Trying remote_uid 'None'
    
    [var.tmp._MEIBCyG76.raas.mods.auth.ldap][DEBUG   :963 ][Webserver:9096]
    Could not find any user using '(&(objectClass=person)(objectGUID=None))'
    as the search filter in the ldap backend under the ad-1 configuration.