Annuaires LDAP

GLPI peut s'interfacer avec un ou plusieurs annuaires LDAP afin d'authentifier les utilisateurs, de contrôler leur accès, de récupérer leurs informations personnelles et d'importer des groupes.

Tous les annuaires compatibles LDAP v3 sont supportés par GLPI. C'est ainsi le cas également pour l'Active Directory de Microsoft. Il n'y a pas de limite quant au nombre de annuaires renseignés. Cependant, plus ce nombre est élevé, plus la recherche d'un nouvel utilisateur à authentifier peut être longue.

Il est possible d'importer et de synchroniser les utilisateurs de 2 manières :

  • Lors de la première connexion, l'utilisateur est créé dans GLPI. À chaque connexion, ses informations personnelles sont synchronisées avec l'annuaire. Dans le cas où les récepteurs sont utilisés et qu'il y a un email non associé à un utilisateur existant, l'adresse email inconnue sera recherchée dans l'annuaire afin de créer l'utilisateur associé.

  • En masse soit via l'interface web, soit via la commande CLI glpi:ldap:synchronize_users.

Le processus d'authentification des utilisateurs est divisé en 3 parties : l'authentification, le contrôle d'accès et enfin la récupération des données personnelles.


Authentification LDAP

Au moment de la première connexion de l'utilisateur, GLPI va parcourir tous les annuaires configurés jusqu'à en trouver un qui contient l'utilisateur. Si l'option permettant d'importer les utilisateurs depuis une source externe est active, alors l'utilisateur est créé et l'identifiant de la méthode de connexion et du serveur LDAP sont stockés en base de données.

Ensuite, à chaque connexion l'utilisateur est authentifié sur l'annuaire dont l'identifiant est stocké dans GLPI. Les autres annuaires ne sont pas utilisés ; si un utilisateur est désactivé dans l'annuaire qu'il utilisait jusqu'alors pour se connecter, il ne pourra pas se connecter avec une autre source d'authentification.


Contrôle d'accès

Le contrôle d'accès est l'attribution de permissions à un utilisateur. Même si un utilisateur est authentifié sur l'annuaire, il n'est pas forcément autorisé à se connecter à GLPI.

Ce mécanisme repose sur l'utilisation de Règles d'attribution d'autorisation.


Annuaire LDAP

Annuaire LDAP

Il existe un modèle de pré-configuration Active Directory, qui pré-remplit un certain nombre de champs.

Pour le charger, cliquez sur le lien Active Directory lors de l'ajout d'un annuaire. Le lien Valeur(s) par défaut remettra les valeurs à leur état initial.

  • Serveur par défaut : Si vous avez plusieurs serveurs LDAP configurés, vous ne pouvez définir qu'un seul serveur par défaut. Choisir ce réglage le retirera du serveur où il était précédemment défini.

  • Actif : Vous pouvez désactiver un LDAP sans avoir à le supprimer.

  • Serveur et Port : Représentent l'adresse et le port de l'annuaire LDAP.

    : GLPI peut se connecter à un annuaire LDAP via une connexion LDAPS. Pour l'activer, préfixez votre champ serveur avec ldaps:// et changez le port pour celui de l'LDAPS de votre annuaire LDAP (par défaut 636).

  • Commentaires : Ajoutez une note, un commentaire à votre annuaire LDAP.

  • Filtre de connexion : Permet de restreindre la recherche d'utilisateurs dans l'annuaire. Par exemple, si seul un ensemble restreint d'utilisateurs a le droit de se connecter à GLPI, vous pouvez créer une condition pour restreindre la recherche à cet ensemble d'utilisateurs.

    Quelques exemples de filtres :

    • Un filtre LDAP classique : (objectclass=inetOrgPerson)

    • Un filtre Active Directory pour ne retourner que les utilisateurs activés : (&(objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))

    L'exemple de filtre Active Directory est automatiquement renseigné lorsque le modèle de pré-configuration Active Directory est sélectionné.

  • BaseDN : L'emplacement dans l'annuaire à partir duquel les recherches seront effectuées.

  • Utiliser bind : Permet d'indiquer si une opération bind basique doit être utilisée durant la connexion au serveur LDAP. Désactiver ce comportement peut être requis quand une opération bind LDAPS est utilisée.

  • RootDN : Le nom distinctif du compte utilisateur pour s'authentifier auprès de LDAP lorsque les liaisons anonymes ne sont pas utilisées.

RootDN et BaseDN sont sensibles à la casse et ne doivent pas contenir d'espaces entre les parties. Exemples :

  • cn=Admin, ou=users, dc=mycompany : incorrect

  • cn=Admin,ou=users,dc=mycompany : correct

  • Mot de passe : Le mot de passe du compte spécifié (le cas échéant) dans le champ RootDN.

  • Champ de connexion : Le nom du champ dans l'annuaire LDAP correspondant à l'identifiant de l'utilisateur (Ex : uid en LDAP ou samaccountname en Active Directory).

  • Champ de synchronisation : Le nom du champ dans l'annuaire LDAP utilisé pour la synchronisation. Ce champ doit être unique pour chaque utilisateur (Ex : employeeuid en LDAP ou objectguid en Active Directory).

Les paramètres à renseigner sont simples. Par exemple :

  • Serveur : ldap.mycompany.fr

  • BaseDN : dc=mycompany,dc=fr

Cela devrait suffire si les liaisons anonymes sont autorisées. Sinon, et si tous les utilisateurs ne sont pas situés dans le même DN, vous devrez spécifier le DN d'un utilisateur autorisé et son mot de passe via les paramètres RootDN/Mot de passe. Pour Active Directory, il est requis de spécifier un compte qui a le droit de s'authentifier sur le domaine.

Si certains utilisateurs ont des restrictions de connexion à certaines machines configurées dans leur profil Active Directory, une erreur "utilisateur non trouvé" peut apparaître. La solution est d'ajouter le serveur Active Directory à la liste des ordinateurs auxquels l'utilisateur est autorisé à se connecter.


Test

Permet de tester la configuration définie dans l'onglet annuaire LDAP.

Le message Test de connexion réussi indique que GLPI a pu se connecter à l'annuaire LDAP avec les informations fournies (hôte, port, compte utilisateur).

Il reste maintenant à importer les utilisateurs. Pour cela, il est nécessaire de vérifier les autres paramètres (filtre de connexion, champ de connexion, etc.).


Utilisateurs

Permet de configurer la manière dont le lien entre les champs de l'annuaire et ceux de GLPI sera effectué. La plupart des champs sont automatiquement mappés pour vous mais peuvent néanmoins être modifiés.

Configuration des utilisateurs LDAP

Vous pouvez utiliser un nom de champ ou une expression contenant plusieurs %{nomDeChamp} Exemple pour le lieu : %{city} > %{roomnumber}


Groupes

Permet de configurer la méthode de récupération des groupes depuis l'annuaire LDAP.

Configuration des groupes LDAP
  • Type de recherche : permet de rechercher les groupes dans les utilisateurs, dans les groupes (pour les groupes imbriqués par exemple), ou les 2.

  • Attribut utilisateur indiquant ses groupes : Indiquer l'attribut utilisé pour la recherche (par exemple memberof)

  • Filtre pour la recherche dans les groupes : Filtrez la recherche pour éviter la remontée de certains groupes (par exemple ne pas remonter les groupes créer par défaut par Windows (&(objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2))) )

  • Attribut des groupes contenant les utilisateurs : Attribut utilisé pour la recherche des utilisateurs (par exemple member)

  • Utiliser le DN pour la recherche : Si cette option est activée, GLPI utilisera le DN complet (Distinguished Name) de l’utilisateur dans la requête LDAP pour retrouver les groupes dont il est membre. GLPI recherche les groupes où l’attribut member (ou équivalent) contient ce DN complet. Si cette option est désactivée, GLPI utilise à la place un identifiant simple (souvent l'uid ou sAMAccountName selon le schéma LDAP).


Informations avancées

Configuration des paramètres avancés LDAP
  • Utiliser TLS : utiliser le protocole TLS pour la synchronisation LDAP(S)

  • Fuseau horaire de l'annuaire LDAP : dans le cas où le serveur hébergeant l'annuaire LDAP se trouve dans un fuseau horaire différent de celui de GLPI, il est nécessaire de modifier la variable Fuseau horaire pour tenir compte de la différence.

Limite du nombre d'enregistrements retournés

Il existe souvent deux limites quant au nombre d'enregistrements retournés par requête.

  • La limite client (définie par exemple sur Debian/Ubuntu dans /etc/ldap/ldap.conf)

  • La limite serveur : Si la limite serveur est inférieure à la limite client, alors c'est cette dernière qui est la limite effective.

Il est possible de contourner la limitation en activant la Pagination des résultats dans l'onglet Informations avancées de l'annuaire LDAP dans GLPI. Cela permettra de découper les requêtes en requêtes plus petites qui sont sous la limite configurée.

  • Utiliser les résultats paginés : Oui / Non

  • Taille de la page : sélectionnez un nombre afin de limiter le nombre de résultat par page

  • Nombre maximum de résultats : limiter le nombre total de résultat à afficher

Sur un annuaire OpenLDAP, la limite par défaut est de 500 et sur Active Directory, elle est de 1000.

Sur Active Directory il est possible de modifier la valeur de

MaxPageSize avec les commandes suivantes (Cette modification est globale pour tout l'annuaire) :

C:> ntdsutil
ntdsutil: ldap policies
ldap policy: connections
  server connections: connect to server 192.168.1.1 ( ici quelques messages concernant la connectivité sont affichés)
server connections : q
ldap policy : show values ( ici nous verrons toutes les valeurs y compris MaxPageSize qui est actuellement de 1000)
ldap policy : set maxpagesize to 5000
ldap policy : commit changes
ldap policy : q
ntdsutil : q
  • Traitement des alias LDAP : indiquez comment GLPI doit se comporter lorsque des alias sont trouvés. Par exemple : uid=admin qui pointe vers uid=jean.dupont,ou=Utilisateurs,dc=entreprise,dc=fr.

    • Jamais déréférencés (défaut) : GLPI ignore complètement les alias dans les recherches.

    • Toujours déréférencés : considère les alias comme des entrées réelles.

    • Déréférencés pendant la recherche (si localisé) : suit uniquement les alias pointant vers d’autres objets pendant la recherche.

    • Déréférencés pendant la localisation (pas pendant la recherche) : suit uniquement les alias dans la base de recherche (le DN). Peut être utilise quand les alias existent dans le même conteneur.

  • Nom de domaine utilisé par l'outil d'inventaire pour lier l'utilisateur :

  • TLS Certfile / TLS Keyfile : indiquez les chemins des certificats si nécessaire.

  • Version TLS : Indiquer la version du protocole TLS (de 1.0 à 1.3).

  • Timeout : indiquez le timeout pour la connexion à votre LDAP(S).

Répliques

Si un annuaire LDAP n'est pas accessible, les utilisateurs fournis par celui-ci ne pourront pas se connecter à GLPI.

Pour aider à éviter cette situation, des répliques peuvent être déclarées dans GLPI. Ce sont des serveurs LDAP qui possèdent les mêmes données que le serveur principal, mais qui sont disponibles à une adresse différente.

Les répliques ne sont utilisées que lorsque la connexion au serveur principal est perdue. L'ajout de répliques dans GLPI se fait en renseignant un Nom qui s'affichera dans GLPI, ainsi qu'un Serveur, un Port et un Timeout dans l'onglet Réplicats de l'annuaire LDAP.

Pour activer LDAPS, préfixez votre entrée serveur avec ldaps:// et changez le port pour celui de LDAPS de votre annuaire LDAP (par défaut 636). Il n'y a pas de limite au nombre de répliques par annuaire LDAP.

Historique

L'onglet Historique permet de visualiser toutes les modifications apportées à un élément. Les informations suivantes concernant les modifications sont disponibles :

  • ID de la modification.

  • Date et heure de la modification.

  • Utilisateur ayant effectué la modification. Si ce champ n'est pas renseigné, cela signifie que l'action a été effectuée automatiquement (Exemple : mise à jour automatique de l'inventaire).

  • Champ qui a été modifié.

  • Description de la modification qui a été effectuée.

La description de la modification représente soit la différence entre l'ancienne et la nouvelle valeur (Exemple avec le champ localisation : Changement de HQ vers Bureau distant A), soit l'explication de l'action qui a été réalisée (Exemple : Désinstallation d'un logiciel : "Gimp 2.0").

Pour les listes déroulantes ou les objets ayant une relation parent/enfant, la modification d'un enfant apparaîtra dans l'historique de l'élément parent.

Tous

Pour un élément, toutes les informations sont affichées sur une seule page depuis l'onglet Toutes. Cela permet de visualiser tous les onglets du formulaire d'un objet en une seule vue, les uns en dessous des autres.

Mis à jour