2 LDAP
Aperçu
L’authentification LDAP externe peut être utilisée pour vérifier les noms d’utilisateur et les mots de passe.
L’authentification LDAP de Zabbix fonctionne au moins avec Microsoft Active Directory et OpenLDAP.
Si seule la connexion LDAP est configurée, l’utilisateur doit également exister dans Zabbix, toutefois son mot de passe Zabbix ne sera pas utilisé. Si l’authentification réussit, Zabbix fera correspondre un nom d’utilisateur local avec l’attribut de nom d’utilisateur renvoyé par LDAP.
Provisionnement des utilisateurs
Il est possible de configurer le provisionnement JIT (just-in-time) pour les utilisateurs LDAP. Dans ce cas, il n'est pas nécessaire qu'un utilisateur existe déjà dans Zabbix. Le compte utilisateur peut être créé lorsque l'utilisateur se connecte à Zabbix pour la première fois.
Lorsqu'un utilisateur LDAP saisit son identifiant LDAP et son mot de passe, Zabbix vérifie sur le serveur LDAP par défaut si cet utilisateur existe. Si l'utilisateur existe et ne possède pas encore de compte dans Zabbix, un nouvel utilisateur est créé dans Zabbix et l'utilisateur peut se connecter.
Un utilisateur créé via le provisionnement JIT est associé au serveur LDAP (annuaire) défini par défaut au moment de sa création. Modifier ultérieurement le serveur LDAP par défaut ne modifie ni ne met à jour le serveur LDAP lié aux utilisateurs déjà provisionnés.
Si le provisionnement JIT est activé, un groupe d'utilisateurs pour les utilisateurs déprovisionnés doit être spécifié dans l'onglet Authentication.
Le provisionnement JIT permet également de mettre à jour les comptes utilisateurs provisionnés en fonction des modifications apportées dans LDAP. Par exemple, si un utilisateur est déplacé d'un groupe LDAP à un autre, l'utilisateur sera également déplacé d'un groupe à un autre dans Zabbix ; si un utilisateur est supprimé d'un groupe LDAP, il sera également supprimé du groupe dans Zabbix et, s'il n'appartient à aucun autre groupe, ajouté au groupe d'utilisateurs pour les utilisateurs déprovisionnés. Les comptes utilisateurs provisionnés sont mis à jour selon la période de provisionnement configurée ou lorsque l'utilisateur se connecte à Zabbix.
Notez que le provisionnement en arrière-plan est effectué par le frontend Zabbix lorsque l'utilisateur interagit avec celui-ci ou a au moins une page du frontend ouverte dans le navigateur. Il n'existe pas de processus d'arrière-plan dédiés au provisionnement des utilisateurs.
LDAP prend en charge trois façons de se lier à l'annuaire pour l'authentification et les recherches :
- Liaison anonyme — aucun Bind DN / Bind password n'est fourni et le serveur LDAP autorise les requêtes anonymes.
- Utilisateur de liaison dédié (compte de service) — un compte LDAP spécifique est défini dans Bind DN / Bind password et est utilisé par Zabbix pour la recherche et le provisionnement. Il s'agit de l'option recommandée et la plus flexible, car Zabbix peut effectuer des recherches et un provisionnement en arrière-plan sans les identifiants des utilisateurs finaux.
- Liaison directe de l'utilisateur — Zabbix effectue la liaison à l'aide des identifiants que l'utilisateur saisit lors de la connexion (aucun Bind DN / Bind password configuré) ; cela se configure en incluant un espace réservé tel que
uid=%{user}dans le DN de base. Dans ce mode, Zabbix n'a accès au mot de passe de l'utilisateur que pendant la connexion interactive. Par conséquent, les actions de provisionnement qui nécessitent une authentification auprès de LDAP en dehors de la session de connexion de l'utilisateur (par exemple, l'utilisation du bouton Provision now ou l'exécution du provisionnement en arrière-plan lorsque l'utilisateur n'est pas activement connecté) ne peuvent pas s'authentifier et ne fonctionneront donc pas. Le provisionnement et les mises à jour pour la liaison directe de l'utilisateur n'ont lieu qu'au moment où l'utilisateur se connecte.
Plusieurs serveurs
Plusieurs serveurs LDAP peuvent être définis, si nécessaire. Par exemple, un serveur différent peut être utilisé pour authentifier un autre groupe d’utilisateurs. Une fois les serveurs LDAP configurés, dans la configuration des groupes d’utilisateurs, il devient possible de sélectionner le serveur LDAP requis pour le groupe d’utilisateurs concerné.
Si un utilisateur appartient à plusieurs groupes d’utilisateurs et à plusieurs serveurs LDAP, le premier serveur de la liste des serveurs LDAP triés par nom par ordre croissant sera utilisé pour l’authentification.
Configuration

Paramètres de configuration :
| Paramètre | Description |
|---|---|
| Activer l'authentification LDAP | Cochez la case pour activer l'authentification LDAP. |
| Activer le provisionnement JIT | Cochez la case pour activer le provisionnement JIT. |
| Serveurs | Cliquez sur Ajouter pour configurer un serveur LDAP (voir Configuration du serveur LDAP ci-dessous). |
| Connexion sensible à la casse | Décochez la case pour désactiver la prise en compte de la casse pour les noms d'utilisateur (activée par défaut). La désactivation de la prise en compte de la casse permet, par exemple, de se connecter en tant que « admin » même si l'utilisateur Zabbix est « Admin » ou « ADMIN ». Veuillez noter que si la prise en compte de la casse est désactivée et qu'il existe plusieurs utilisateurs Zabbix avec des noms d'utilisateur similaires (par exemple, Admin et admin), la connexion de ces utilisateurs sera toujours refusée avec le message d'erreur suivant : « Échec de l'authentification : les informations d'identification fournies ne sont pas uniques. » |
| Période de provisionnement | Définissez la période de provisionnement, c'est-à-dire la fréquence à laquelle l'utilisateur connecté sera provisionné pendant qu'il travaille avec l'interface web. |
Configuration du serveur LDAP

Paramètres de configuration du serveur LDAP :
| Parameter | Description |
|---|---|
| Name | Nom du serveur LDAP dans la configuration de Zabbix. |
| Host | Nom d’hôte, IP ou URI du serveur LDAP. Exemples : ldap.example.com, 127.0.0.1, ldap://ldap.example.com Pour un serveur LDAP sécurisé, utilisez le protocole ldaps et le nom d’hôte. Exemple : ldaps://ldap.example.com Avec OpenLDAP 2.x.x et versions ultérieures, un URI LDAP complet de la forme ldap://hostname:port ou ldaps://hostname:port peut être utilisé. |
| Port | Port du serveur LDAP. La valeur par défaut est 389. Pour une connexion LDAP sécurisée, le numéro de port est généralement 636. Non utilisé lors de l’utilisation d’URI LDAP complets. |
| Base DN | Chemin de base vers les comptes utilisateur sur le serveur LDAP : ou=Users,ou=system (pour OpenLDAP), DC=company,DC=com (pour Microsoft Active Directory) uid=%{user},dc=example,dc=com (pour la liaison directe de l’utilisateur, voir la note ci-dessous) |
| Search attribute | Attribut de compte LDAP utilisé pour la recherche : uid (pour OpenLDAP), sAMAccountName (pour Microsoft Active Directory) |
| Bind DN | Compte LDAP utilisé pour la liaison et la recherche sur le serveur LDAP, exemples : uid=ldap_search,ou=system (pour OpenLDAP), CN=ldap_search,OU=user_group,DC=company,DC=com (pour Microsoft Active Directory) La liaison anonyme est également prise en charge. Notez que la liaison anonyme peut potentiellement exposer la configuration du domaine à des utilisateurs non autorisés (informations sur les utilisateurs, ordinateurs, serveurs, groupes, services, etc.). Pour des raisons de sécurité, désactivez les liaisons anonymes sur les hôtes LDAP et utilisez à la place un accès authentifié. |
| Bind password | Mot de passe LDAP du compte utilisé pour la liaison et la recherche sur le serveur LDAP. |
| Description | Description du serveur LDAP. |
| Configure JIT provisioning | Cochez cette case pour afficher les options liées au provisionnement JIT. |
| Group configuration | Sélectionnez la méthode de configuration des groupes : memberOf - en recherchant les utilisateurs et leur attribut d’appartenance à un groupe groupOfNames - en recherchant les groupes via l’attribut member Notez que memberOf est préférable car plus rapide ; utilisez groupOfNames si votre serveur LDAP ne prend pas en charge memberOf ou si un filtrage des groupes est requis. |
| Group name attribute | Spécifiez l’attribut à partir duquel obtenir le nom du groupe pour tous les objets de l’attribut memberOf (voir le champ User group membership attribute)Le nom du groupe est nécessaire pour le mappage des groupes d’utilisateurs. |
| User group membership attribute | Spécifiez l’attribut qui contient les informations sur les groupes auxquels l’utilisateur appartient (par ex. memberOf).Par exemple, l’attribut memberOf peut contenir des informations comme ceci : memberOf=cn=zabbix-admin,ou=Groups,dc=example,dc=comCe champ n’est disponible que pour la méthode memberOf. |
| User name attribute | Spécifiez l’attribut qui contient le prénom de l’utilisateur. |
| User last name attribute | Spécifiez l’attribut qui contient le nom de famille de l’utilisateur. |
| User group mapping | Mappez un modèle de groupe d’utilisateurs LDAP à un groupe d’utilisateurs Zabbix et à un rôle utilisateur. Cela est nécessaire pour déterminer quel groupe/rôle l’utilisateur provisionné obtiendra dans Zabbix. Cliquez sur Add pour ajouter un mappage. Le champ LDAP group pattern prend en charge les caractères génériques. Le nom du groupe doit correspondre à un groupe existant. Si un utilisateur LDAP correspond à plusieurs groupes d’utilisateurs Zabbix, il devient membre de tous ces groupes. Si un utilisateur correspond à plusieurs rôles utilisateur Zabbix, il recevra celui ayant le niveau d’autorisation le plus élevé parmi eux. |
| Media type mapping | Mappez les attributs LDAP media de l’utilisateur (par ex. l’e-mail) aux médias utilisateur Zabbix pour l’envoi de notifications (la valeur de l’attribut est utilisée comme champ Send to du média). |
| Advanced configuration | Cliquez sur le libellé Advanced configuration pour afficher les options de configuration avancée (voir ci-dessous). |
| StartTLS | Cochez la case pour utiliser l’opération StartTLS lors de la connexion au serveur LDAP. La connexion échouera si le serveur ne prend pas en charge StartTLS. StartTLS ne peut pas être utilisé avec des serveurs qui utilisent le protocole ldaps. |
| Search filter | Définissez une chaîne personnalisée lors de l’authentification d’un utilisateur dans LDAP. Les espaces réservés suivants sont pris en charge :%{attr} - nom de l’attribut de recherche (uid, sAMAccountName)%{user} - valeur du nom d’utilisateur à authentifierPar exemple, pour effectuer une recherche sensible à la casse dans un environnement LDAP ou Microsoft Active Directory insensible à la casse, la chaîne peut être définie comme suit : (%{attr}:caseExactMatch:=%{user}).Si le filtre n’est pas personnalisé, LDAP utilisera la valeur par défaut : (%{attr}=%{user}). |
Pour configurer un serveur LDAP pour la liaison directe de l’utilisateur, ajoutez un attribut uid=%{user} au paramètre Base DN (par exemple,uid=%{user},dc=example,dc=com) et laissez les paramètres BindDN et Bind password vides.
Lors de l’authentification, l’espace réservé %{user} sera remplacé par le nom d’utilisateur saisi lors de la connexion.
Avec la liaison directe de l’utilisateur, Zabbix n’a accès aux informations d’identification de l’utilisateur que pendant la connexion interactive.
Par conséquent, les tâches de provisionnement qui s’exécutent sans connexion interactive (par exemple, le bouton Provision now ou la méthode API user.provision) ignoreront les utilisateurs qui s’authentifient à l’aide de la liaison directe de l’utilisateur, car Zabbix ne peut pas effectuer la liaison en leur nom.
Utilisez une liaison anonyme ou un utilisateur de liaison dédié (compte de service) si vous avez besoin que le provisionnement et les recherches LDAP fonctionnent depuis l’interface sans que l’utilisateur final soit connecté.
Les champs suivants sont spécifiques à "groupOfNames" comme méthode Group configuration :

| Parameter | Description |
|---|---|
| Group base DN | Chemin de base vers les groupes sur le serveur LDAP. |
| Group name attribute | Spécifiez l’attribut à partir duquel obtenir le nom du groupe dans le chemin de base spécifié vers les groupes. Le nom du groupe est nécessaire pour le mappage des groupes d’utilisateurs. |
| Group member attribute | Spécifiez l’attribut qui contient les informations sur les membres du groupe dans LDAP (par ex. member). |
| Reference attribute | Spécifiez l’attribut de référence pour le filtre de groupe (voir le champ Group filter). Utilisez ensuite %{ref} dans le filtre de groupe pour obtenir les valeurs de l’attribut spécifié ici. |
| Group filter | Spécifiez le filtre pour récupérer le groupe dont l’utilisateur est membre. Par exemple, (member=uid=%{ref},ou=Users,dc=example,dc=com) correspondra à "User1" si l’attribut member du groupe est uid=User1,ou=Users,dc=example,dc=com et renverra le groupe dont "User1" est membre. |
En cas de problème avec les certificats, pour faire fonctionner une connexion LDAP sécurisée (ldaps), vous devrez peut-être ajouter une ligne TLS_REQCERT allow au fichier de configuration /etc/openldap/ldap.conf.
Cela peut réduire la sécurité de la connexion au catalogue LDAP.
Il est recommandé de créer un compte LDAP distinct (Bind DN) pour effectuer la liaison et la recherche sur le serveur LDAP avec des privilèges minimaux dans LDAP, au lieu d’utiliser de vrais comptes utilisateur (utilisés pour se connecter à l’interface Zabbix).
Une telle approche offre davantage de sécurité et ne nécessite pas de modifier le Bind password lorsque l’utilisateur change son propre mot de passe sur le serveur LDAP.
Dans le tableau ci-dessus, il s’agit du nom de compte ldap_search.
Test de l'accès
Le bouton Test permet de tester l'accès de l'utilisateur :
| Parameter | Description |
|---|---|
| Login | Nom d'utilisateur LDAP à tester (prérempli avec le nom d'utilisateur actuel du frontend Zabbix). Ce nom d'utilisateur doit exister sur le serveur LDAP. Zabbix n'activera pas l'authentification LDAP s'il n'est pas en mesure d'authentifier l'utilisateur de test. |
| User password | Mot de passe de l'utilisateur LDAP à tester. |