LDAP, pour Lightweight Directory Access Protocol, est un protocole d'interrogation et de modification de service d'annuaire. Le terme LDAP est souvent utilisé pour faire référence à l'annuaire lui-même. Un LDAP peut être utilisé pour référencer n'importe quel type de données du moment où vous avez un gros besoin de lecture dessus.
A MiNET, notre LDAP est utilisé comme annuaire de personnes. Il contient les informations des membres actifs (pseudo, nom/prénom, mail, mot de passe…) ainsi que les groupes auxquels appartiennent ces membres (pour filtrer les accès à certains services). On s'en sert principalement pour centraliser l'authentification à (presque) tous nos services. Mais pas que personnes ! Notre LDAP contient également des entrées pour des services tels que Postfix et Cyrus afin de pouvoir réaliser des tâches annexes tel que la création automatique des mailbox des nouveaux membres (on y reviendra dessus ;) )
On peut aussi stocker les informations des utilisateurs sur une base de données relationnelle, sauf que ce n'est pas fait pour: Les requêtes de type authentification sont assez redondantes sur notre réseau, et LDAP a été conçu à l'origine dans cette optique, c'est-à-dire que c'est optimisé pour gérer un grand nombre de lectures sur ses entrées (et peu d'écritures) de façon très rapide.
LDIF (LDAP Data Interchange Format) est le format de données standard pour les entrées LDAP. Les enregistrements sont représentées comme un groupe de couples attribut:valeur Les entrées sont séparées par une ligne vide, et les commentaires sont précédés par le caractère “#”
Un exemple illustrant le format LDIF:
# Yassine Tioual, users, 2015-2016, equipe, minet.net dn: cn=Yassine Tioual,ou=users,ou=2015-2016,ou=equipe,dc=minet,dc=net sn: Tioual givenName: Yassine uid: nisay cn: Yassine Tioual homeDirectory: /home/nisay loginShell: /bin/bash uidNumber: 1090 gidNumber: 1001 mail: nisay@minet.net gosaMailServer: imap gosaMailAlternateAddress: yassine.tioual@minet.net gecos: Yassine Tioual gosaMailDeliveryMode: [LC] gender: M objectClass: gosaMailAccount objectClass: posixAccount objectClass: shadowAccount objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: gosaAccount preferredLanguage: en_US gosaMailQuota: 500
L'arborescence LDAP choisie à MiNET est la suivante:
dc=net | dc=minet |__________________________________________________________ | | | | ou=equipe ou=groups ou=systems ou=config