Introduction à LDAP sous Linux

ArticleCategory: [Choose a category for your article]

System Administration

AuthorImage:[Here we need a little image form you]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in en Atif Ghaffar 

en to frGeorges Tarbouriech 

AboutTheAuthor:[A small biography about the author]

Atif est un caméléon. Il change de rôle, passant d'Administrateur système, à programmeur, instructeur, chef de projet, ou à quoi que ce soit d'autre permettant l'aboutissement d'un travail.
A l'occasion, il aime programmer sur son portable en regardant un film.
Atif pense qu'il doit beaucoup à Linux et à ce que lui ont enseigné la communauté opensource et ses projets.
Pour en savoir plus, visitez sa homepage

Abstract:[Here you write a little summary]

Dans cet article nous explorerons LDAP et ses applications en utilisant notre OS favori, Linux.

Il existe beaucoup de littérature disponible sur LDAP, par conséquent je ne la ressortirai pas ici, pas plus que je n'aborderai les termes avancés de LDAP, les schémas, les différences entre les versions 2 et 3, etc. En fait je ne connais pas grand chose les concernant. Je vais essayer au contraire, d'expliquer avec des mots simples ce qu'est LDAP, quels sont ses avantages et comment l'utiliser.

Je ne suis pas un expert en LDAP. En fait, je suis un débutant. En gros, je vais décrire ici ce que je fais avec LDAP et comment. Je vais essayer de ne pas vous embrouiller comme je l'ai été pendant très longtemps.

Question: si vous êtes un débutant, pourquoi écrire un article sur le sujet?
Récemment, j'ai eu besoin de l'aide d'un collègue sur un projet. Le projet était basé sur LDAP. Il pouvait m'aider pour Perl, les serveurs de courrier, etc, mais n'avait aucune connaissance de LDAP, et chaque fois qu'il se penchait sur LDAP, ça devenait de plus en plus confus.
Puisque le minimum requis pour le projet concernait la compréhension de LDAP, je lui ai donné un cours accéléré d'une demi-heure et tout est devenu clair. Les concepts étaient si évidents, tout était devant nos yeux et demandait simplement d'approfondir quelques exemples un peu particuliers.

Je vais essayer de faire de même dans cet article.

Vous trouverez de nombreux liens dans le chapitre référence pour en apprendre plus sur LDAP.

ArticleIllustration:[This is the title picture for your article]

openLDAP

ArticleBody:[The article body]

Qu'est-ce que LDAP?

LDAP signifie Lightweight Directory Access Protocol et c'est un service de répertoires, très semblable à celui du système de fichiers ou à un annuaire téléphonique auxquels nous sommes habitués, ou aux services de répertoires réseau tels que NIS (Network Information Service) de SUN, DNS (Domain Name Service), ou encore à l'arbre que vous voyez dans le jardin de votre voisin.

LDAP est une base de données spécialisée. Il est important de noter que LDAP n'est pas qu'une base de données de plus. LDAP est optimisé pour la recherche (lecture des données). Dans LDAP la lecture est beaucoup plus fréquente que l'écriture.

Qu'ont en commun tous ces services?
Ils renvoient tous une information lors d'une recherche selon un critère.

Exemples.

Répertoire du système de fichiers
ls /etc
Ceci renverra la liste des fichiers et sous-répertoires du répertoire /etc.

ls /etc/p*
Ceci renverra la liste des fichiers et sous-répertoires commençant par p.

find /usr/local/apache -name index.html
Ceci recherche un fichier/répertoire nommé index.html dans le système de fichiers, à partir de "/usr/local/apache"

Répertoire NIS
ypcat passwd
Ceci renvoie le nom d'utilisateur, le mot de passe, le numéro d'utilisateur contenus dans la base de données NIS

ypmatch atif passwd
Ceci retourne les entrées du fichier passwd pour l'utilisateur atif

Répertoire DNS
nslookup www.linuxfocus.org
Ceci renvoie l'adresse IP de l'entrée www.linuxfocus.org depuis la base de données DNS

nslookup -type MX linuxfocus.org
Ceci renvoie l'information MX de la base de données DNS dans laquelle le nom d'hôte correspond à linuxfocus.org

Répertoire LDAP
(nous verrons cela plus en détail ci-dessous)

ldapsearch uid=aghaffar
Ceci renvoie toutes les informations publiques concernant l'utilisateur aghaffar
Similaire à la commande unix find / -uid aghaffar

ldapsearch uid=aghaffar mail
Ceci ne retourne que l'identification de courrier de l'utilisateur aghaffar

Répertoire de base ou Root

Dans chaque service d'annuaire mentionné ci-dessus, il y a toujours un point de départ à partir duquel vous pouvez démarrer la navigation ou la recherche. Ce point de départ est souvent nommé "racine". Il est similaire à la racine de l'arbre.
Chaque arbre a une racine, des branches, d'autres branches, des feuilles, des fleurs, etc.

Chaque racine peut avoir plus de branches (comme l'arbre du jardin de votre voisin), pour un système de fichiers par exemple ces branches peuvent être un autre sous-répertoire ou un fichier.
Chacune de ces branches peut avoir des attributs.
Par exemple les branches de l'arbre du système de fichiers (sous-répertoires et fichiers) ont les attributs suivants. Ci-dessous vous trouverez un diagramme qui montre un répertoire de système de fichiers.
Les attributs représentent la sortie de la commande unix ls -ld /usr
drwxr-xr-x 29 root root 749 Jun 17 23:45 /usr

Maintenant le diagramme d'un répertoire LDAP

Nous en reparlerons plus tard.

Nom distinct

A la différence de l'arbre végétal, chaque branche d'un répertoire de système de fichiers/LDAP/Annuaire a au moins un attribut unique, ce qui nous permet de les différencier.

Dans les systèmes de fichiers, cet attribut unique n'est autre que le nom du fichier et son chemin. Par exemple
/etc/passwd Ici, le nom de fichier passwd doit être unique dans ce chemin. Bien sûr, nous pouvons avoir /usr/passwd, /opt/passwd qui sont uniques en raison de leur nom complet.
De manière équivalente, le système DNS possède son FQDN (Fully Qualified Domain Name) qui est une entrée unique (bien sûr, vous pouvez attribuer différentes adresses IP à ce FQDN!).

Dans LDAP le nom complet d'une entrée est appelé "dn" ou Distinguished name (nom distinct). Ce nom est toujours unique dans un répertoire. Par exemple mon dn est "uid=aghaffar, ou=People, o=developer.ch"
Il n'est pas possible d'avoir une autre entrée portant le même dn, mais nous pouvons bien sûr avoir un dn tel que "uid=aghaffar, ou=Administrators, o=developer.ch"
Ceci est l'équivalent des entrées des systèmes de fichiers /etc/passwd et /usr/passwd
Nous avons un attribut unique nommé uid dans l'arbre "ou=Administrators, o=developer.ch" et un autre dans l'arbre "ou=People, o=developer.ch".
Ils ne sont donc pas en conflit.

Serveurs LDAP

De nombreux serveurs LDAP sont disponibles sur le marché aujourd'hui et ils fonctionneront quasiment tous sous Linux.
Pour cet article nous utiliserons openLDAP.

Pourquoi j'ai choisi openLDAP? Pourquoi devriez-vous choisir openLDAP?

open LDAP est disponible sur http://www.openldap.org. Vous pouvez soit télécharger le code source et le compiler soit vérifier si le paquet n'existe pas déjà dans votre distribution Linux. S'il existe, prenez la peine d'installer la version précompilée.
J'ai testé openLDAP avec SuSE6.x et RedHat6.x.

Créer le répertoire LDAP

Dans ce chapitre nous allons installer un serveur LDAP pas à pas.
Etapes à suivre:

Télécharger et installer openLDAP

Comme mentionné précédemment, téléchargez le source depuis www.openldap.com et installez selon la documentation ou installez un paquet précompilé (l'installation de paquets ou un Howto sur la compilation d'applications n'entrent pas dans le cadre de cet article)

Configurer le serveur LDAP

Pour cet exemple, je vais créer un répertoire LDAP pour linuxfocus.org.
Vous pouvez modifier les noms pour les faire correspondre à votre site. Pour installer le serveur principal, vous devez éditer les fichiers slapd.conf et ldap.conf avec votre éditeur favori.
Sur mes serveurs, ce fichier se trouve dans /etc/openldap. Le votre pourrait se trouver dans /usr/local/etc/openldap ou ailleurs selon votre distribution Linux ou les options de configuration données avant compilation.

	
######### /etc/openldap/slapd.conf ###################################
# ce qui suit est défini par défaut dans ma distribution suse 6.4 
# Nous en reparlerons dans les parties II et III de cet article
# A ce moment-là, je saurai peut-être ce que ça signifie:)
      
include		/etc/openldap/slapd.at.conf
include		/etc/openldap/slapd.oc.conf
schemacheck	off

pidfile		/var/run/slapd.pid
argsfile	/var/run/slapd.args

#######################################################################
# ldbm database definitions
#######################################################################

# ceci détermine le type de base de données à utiliser. Conserver ldbm
database	ldbm

# suffixe ou répertoire racine. C'est le noeud supérieur de votre répertoire LDAP
suffix		"o=linuxfocus.org"

# l'endroit où seront conservées les bases ldap 
directory	/var/lib/ldap

# le nom distinct du gestionnaire de répertoire
rootdn		"cn=Manager, o=linuxfocus.org"

# c'est une mauvaise idée de conserver le mot de passe en texte clair mais
# nous l'utiliserons ainsi au début pour nous familiariser à LDAP
rootpw		secret    


# C'est tout pour l'instant.

Editer /etc/openldap/ldap.conf
Ce fichier se trouve sur le client ldap (nous utiliserons la même machine en tant que client et serveur. Ce peut être la même machine ou une autre)
Ce fichier est souvent lu par des utilitaires ldap tels que ldapdelete , ldapadd, etc

##########/etc/openldap/ldap.conf#########
#
# LDAP Defaults
#

# Voir ldap.conf(5) pour plus de détails
# Ce fichier doit être lisible par tout le monde.

# ceci définit le serveur ldap; vous pouvez utiliser un nom d'hôte ou une adresse IP
host 127.0.0.1

# ceci représente le répertoire racine à partir duquel nous voulons commencer la recherche. 
# nous utiliserons le noeud supérieur dans notre configuration
# il n'est pas nécessaire d'utiliser le noeud supérieur du répertoire, par exemple
# nous pouvons choisir comme base = ou=users, o=linuxfocus.ch
# si nous faisons ce choix toutes nos recherches commenceront à partir de cette branche de l'arbre
base  o=linuxfocus.org
# c'est tout
Démarrons maintenant le serveur ldap.
Si vous utilisez le serveur openldap préinstallé de SuSE, vous pouvez le démarrer en tapant
/etc/rc.d/ldap start
Sur RedHat, je crois qu'il faut taper
/etc/rc.d/init.d/ldap start
Si vous l'avez compilé et installé vous-même avec les paramètres par défaut, vous pouvez taper
/usr/local/libexec/slapd & ou un autre chemin si vous l'avez installé ailleurs. Il suffit de trouver slapd et de le démarrer

Ajouter des données au serveur LDAP venant d'être installé

Vous avez maintenant un serveur ldap en service prêt à recevoir des informations.
La méthode standard pour fournir des informations au serveur ldap consiste à créer un fichier LDIF (LDAP Directory Interchange Format)*. Lisez la page de manuel ldif pour en savoir plus.
Pour simplifier, ldif est la représentation au format texte des entrées ldap. Ces entrées sont directement lisibles et sont interchangeables entre des serveurs LDAP de différents concepteurs, utilisant différents gestionnaires de base de données ou fonctionnant sous des systèmes d'exploitation différents.
* Oui, encore un autre format. Je ne comprends pas pourquoi XML n'est pas utilisé à la place de LDIF

Créons donc simplement ce fichier ldif. Quelques points à noter.

  • Les enregistrements/entrées du fichier ldif sont séparés par une ligne vierge.
  • Les espaces dans les valeurs sont très importants."Atif Ghaffar" est différent de "Atif Ghaffar "
    Le fichier ldif linuxfocus.org.ldif
    dn: o=linuxfocus.org
    o: linuxfocus.org
    objectclass: top
    objectclass: organization
    
    dn: ou=editors, o=linuxfocus.org
    ou: editors
    objectclass: organizationalUnit
    
    dn: uid=aghaffar, ou=editors, o=linuxfocus.org
    uid: aghafar
    cn: Atif Ghaffar
    sn: Ghaffar
    givenname: Atif
    objectclass: person
    userpassword: {CRYPT}yIvSBWSuLs2N2
    mailacceptinggeneralid: aghaffar@linuxfocus.org
    ou: editors
    
    dn: uid=mkempe, ou=editors, o=linuxfocus.org
    uid: mkempe
    cn: Magnus Kempe 
    sn: Kempe
    givenname: Magnus
    objectclass: person
    userpassword: clearpass
    mailacceptinggeneralid: mkempe@linuxfocus.org
    maildrop: mkempe@developer.ch
    preferredlanguage: fr
    ou: editors
    
    Nous devons maintenant ajouter ces informations dans le répertoire ldap. Utilisez la commande nommée ldapadd

    ldapadd -D "cn=Manager, o=linuxfocus.org" -w secret < linuxfocus.org.ldif
    Cette commande utilise "cn=Manager, o=linuxfocus.org" en tant que gestionnaire de dn (nom distinct) et secret en tant que mot de passe, lit les informations du fichier linuxfocus.org.ldif et les intègre dans le répertoire ldap.
    Si tout s'est bien passé, vous pouvez maintenant lancer des requêtes sur votre répertoire ldap, dans le cas contraire, vous vous sentez l'envie de "bomber" ma boîte aux lettres ;)

    Pour la "santé" de mon serveur de courrier, j'espère que tout a bien fonctionné.

    Avant de continuer, examinons ce fichier ldif ligne par ligne.

    1. Cette ligne définit le dn de notre entrée principale. elle représente la racine de l'arborescence du répertoire.
      Il est impératif de la définir.
    2. Sur cette ligne nous définissons l'o (organisation) et lui donnons la valeur "linuxfocus.org"
    3. Cette ligne sert à définir la classe de l'objet, top dans notre exemple.
    4. Ici nous définissons le type de l'objet (C'est un objet organisation)
    5. La ligne vierge utilisée comme séparateur
    6. Le dn du groupe editors (c'est la branche correspondant aux éditeurs de linuxfocus)
      Nous pourrions en avoir d'autres pour différents usages. Par exemple une branche pour les hôtes et leurs données, une branche pour les sites miroir etc, etc, etc.
    7. Ici, nous définissons l'attribut ou (organizational unit) pour les éditeurs.
      Ces attributs servent de critères de recherche, par exemple, si vous voulez obtenir la liste des utilisateurs qui sont éditeurs, votre requête sera "show all dn where ou=editors". Si ces attributs ne sont pas définis, la requête sur cette entrée/enregistrement n'aboutira pas.
    8. Ici, nous définissons une autre classe d'objet (organizationalUnit)
    9. La ligne vierge de séparation
    10. Le dn de l'utilisateur aghaffar dans le groupe editors
    11. L'uid (vérifiez qu'elle est unique) de l'utilisateur
    12. Le cn (common name) de l'utilisateur. Par exemple Je préfère écrire "Prénom Nom", d'autres préfèrent "Nom Prénom".
    13. sn: Surname
    14. nom donné (Prénom)
    15. classe de l'objet (Personne)
    16. mot de passe (crypté). La chaîne {CRYPT} signifie que ce mot de passe est crypté par l'algorithme crypt. Ce qui suit est le mot de passe crypté "yIvSBWSuLs2N" qui n'est autre que "test" encodé par salt "yI".
    17. Cette ligne définit l'adresse de courrier sur laquelle je peux recevoir des messages.
    18. ou. Ceci précise que je fais partie de l'organizationalUnit editors.
    19. La ligne vierge de séparation
    20. Le dn d'une nouvelle entrée. username mkempe, ou editors
    21. common name /display name
    22. Surname
    23. Firstname
    24. objectclass
    25. userpassword: ici nous utilisons un mot de passe en texte clair. Pour chaque utilisateur, vous choisissez la méthode préférée. Cela se définit par entrée et non par base de données. Ainsi, un utilisateur peut avoir son mot de passe en texte clair, un autre peut l'encoder avec CRYPT, un autre peut préférer SHA etc.
    26. L'adresse de courrier de l'utilisateur. (Généralement, c'est pour le serveur de courrier)
    27. maildrop: c'est encore pour le serveur de courrier. Ceci détermine la localisation des boîtes aux lettres des utilisateurs. Dans cet exemple, le serveur reçoit des messages pour l'adresse "mkempe@linuxfocus.org", le serveur de courrier vérifie alors sur le serveur. "Est-ce qu'une boîte aux lettres accepte les messages pour l'adresse "mkempe@linuxfocus.org". Le serveur ldap renvoie la valeur de l'attribut maildrop. Le serveur de courrier envoie alors le message à cette boîte aux lettres. Vous en saurez plus sur le sujet une autre fois. Je suis en train de créer une infrastructure de prestataire Internet dans laquelle j'utilise beaucoup LDAP pour gérer des domaines virtuels ainsi que toutes les informations concernant les domaines et leurs utilisateurs. Si ce genre de chose vous intéresse, envoyez-moi un message.
    28. Langue préférée. Ici, nous avons un attribut supplémentaire qui nous donne la langue choisie par l'utilisateur. Nous pouvons utiliser cette information ou d'autres préférences pour les enregistrer dans LDAP et fournir ainsi un meilleur service à cet utilisateur. Par exemple, cet utilisateur est toujours redirigé sur les versions françaises des pages.
      Remarquez aussi que l'enregistrement précédent n'a pas d'attibuts (langue préférée, alias de courrier, etc). C'est aussi une des forces de LDAP. Il n'y a pas de structure fixe comme dans un tableau de base de données. Vous pouvez avoir une entrée contenant seulement 3 attributs alors qu'une autre peut en avoir 30.
    29. ou. unit editors

    Recherche dans la base ldap

    Cherchons toutes les données concernant l'utilisateur mkempe
    ldapsearch uid=mkempe

    Cherchons le dn de tous les éditeurs

    ldapsearch '(&(objectclass=person)(ou=editors))' dn

    Pour d'autres exemples, consultez les pages de manuel de ldapsearch

    Avantages de LDAP

    Quels sont donc les avantages dans le choix de LDAP.

    LDAP est un standard ouvert. Presque toutes les nouvelles applications seront capables de rechercher des informations dans la base LDAP. Même Windows 2000 utilise LDAP pour ses services de répertoire.
    Centraliser toutes les informations dans un endroit donné offre des avantages considérables: un seul point d'administration, moins de risques d'erreurs, moins de données redondantes dans tous les coins et le souci de les sauvegarder.

    Exemple d'applications LDAP

    Je pourrais être un "neuneu" de chez Compaq et essayer de vous vendre LDAP en vous disant que vous pouvez l'utiliser comme "gestionnaire de contacts". Mais je ne travaille pas pour Compaq. Je vais donc essayer de vous proposer des applications plus intéressantes de LDAP.

    SOURCE UNIQUE D'AUTHENTIFICATION
    Comptes utilisateurs centralisés.
    Vous pouvez choisir une arborescence ldap pour gérer vos utilisateurs, leur mot de passe et bien plus d'informations que vous ne pourriez en mettre dans un simple fichier /etc/passwd. Cette information peut s'appliquer à des utilisateurs de Microsoft Windows / Unix /Mac.
    Suggestion Vous pouvez éventuellement modifier /etc/pam.d/login de manière à ce que l'authentification se fasse à partir des informations LDAP et non d'un fichier shadow ou de nis.
    Suggestion Vous pouvez créer une petite interface web pour permettre aux utilisateurs de modifier leur mot de passe sans avoir à se loger puisque l'information se trouve dans LDAP et non sur le système. Pour cela vous devrez utiliser pam_ldap. Voir le chapitre ressources pour l'url de pam_ldap.

    NOTE
    Source unique d'authentification != Authentification unique.
    De nombreux concepteurs de LDAP essaient de le vendre en disant que si vous choisissez LDAP vous pourrez bénéficier de l'authentification unique.
    Ce n'est qu'à moitié vrai. L'authentification unique est un autre genre d'animal et un mot très à la mode aujourd'hui chez les Responsables informatique.
    Un exemple d'authentification unique:

    Vous pouvez bien sûr vous servir de LDAP comme source d'informations des utilisateurs, mais le côté magique de la gestion des sessions entre différents programmes se nomme "authentification unique" et n'a absolument rien à voir avec LDAP.
    Ceci peut se faire avec LDAP, NIS, des comptes de contrôleur de domaine NT, des bases de données, des fichiers.

    Suggestion Vous voulez fournir des comptes courrier à vos utilisateurs sur vos serveurs mais vous ne voulez pas créer de comptes unix. Pas de problèmes. Je me sers d'une combinaison de LDAP+Postfix MailServer+ serveur Cyrus IMAP/POP pour gérer des milliers d'utilisateurs et aucun d'entre eux n'a un compte système.

    Suggestion Vous voulez centraliser les préférences de différentes applications. Par exemple, les préférences de Netscape, les bookmarks peuvent être enregistrés dans LDAP, et l'utilisateur peut passer d'une machine à une autre, il reçoit toujours ses préférences du serveur LDAP. L'utilisateur peut passer de Netscape sous Windows NT à Netscape sous Linux/Solaris/Macintosh il bénéficie toujours de la même information. (Désolé Microsoft... Je sais que ce n'est pas une bonne chose pour vous)

    Scénario Je déteste remplir des formulaires encore et encore que ce soit sur le web ou sur papier. Je ne comprends pas pourquoi les gens veulent toujours et encore savoir mon âge, ma date de naissance, mon adresse dans les bureaux de l'administration alors que je les leur ai déjà donnés une fois. Chez mon dernier employeur nous avons du préparer des formulaires énormes qui étaient équivalents à 75%. (Prénom, Nom, Titre, Boîte postale, Etage, Nom du responsable, Service). Au lieu d'em...bêter vos utilisateurs et risquer d'être attaqué une nuit noire par des étrangers qui vous paraissent familiers, contentez-vous de demander à vos utilisateurs les informations strictement nécessaires. Par exemple, demandez leur id d'utilisateur et récupérez le reste des informations par LDAP, ensuite, ne leur réclamez que ce qui manque.

    Suggestion Si par exemple mon téléphone ne fonctionne pas, la seule nouvelle information que je puisse vous donner, c'est "mon téléphone ne fonctionne pas".

    Un utilisateur sera moins bien embêté par l'Intranet si:

  • Il tape l'URL correspondant au formulaire des problèmes (Ou s'il clique sur un lien ou choisit dans ses bookmarks)
  • La page propose une fenêtre de login avec le nom et le mot de passe. (seulement une fois par session. Lors des visites suivantes de cette page ou d'autres zones protégées les informations sont conservées)
  • La page possède 2 éléments 1) une zone de texte dans laquelle le problème peut être décrit, 2) un bouton d'envoi.

    Ecrire des articles: Instruire/Apprendre

    J'espère qu'avec cet article j'ai pu vous aider d'une manière ou d'une autre, ou que j'ai pu nourrir votre cerveau affamé de 10011001001001.
    Vous voyez, il n'est pas nécessaire d'être un expert pour faire partager vos connaissances à la communauté. Vous n'avez pas non plus besoin d'être professeur pour écrire des tutoriels. Toute information, aussi minime soit-elle, peut aider les utilisateurs.
    Personnellement, je trouve facile d'apprendre lorsque j'essaie d'enseigner à quelqu'un ce que je sais déjà. Vous pourriez essayer cette méthode.

    Heureusement, aujourd'hui beaucoup de monde parle de Linux; je vois de nombreuses personnes l'essayer, quelques uns laissent tomber très vite, d'autres sont plus tenaces. Ces utilisateurs peuvent n'avoir aucune expérience de la ligne de commande d'unix et de son concept, et quelques uns peuvent rester coincés sur un problème pendant un bon moment.
    Si vous avez rencontré ce type de problème récemment, alors vous pouvez devenir le meilleur professeur qui soit.

    Si vous pensez que vous n'avez pas de sujet sur lequel écrire et que vous souhaitiez malgré tout aider la communauté Linux, vous pouvez vous proposer pour traduire ces articles dans votre propre langue.

    Ressources

    Module PAM LDAP
    Le module pam_ldap offre aux stations Solaris et Linux le moyen de s'authentifier à partir de répertoires LDAP, et de modifier leur mot de passe dans ces répertoires.
    openLDAP
    Le OpenLDAP Project est un travail de collaboration pour le développement d'une suite d'applications et d'outils LDAP robuste, de qualité commerciale, riche en fonctionnalités, et open source. Le projet est géré par une communauté mondiale de volontaires utilisant l'Internet pour communiquer, planifier et développer la Suite OpenLDAP et sa documentation.
    Excellent Navigateur/Editeur LDAP basé sur Java
    Le Navigateur/Editeur LDAP offre une interface conviviale aux répertoires LDAP avec des capacités de navigation et d'édition bien intégrées. Il est entièrement écrit en Java à l'aide de JFC (SwingSet) et des bibliothèques de classes JNDI. Il communique avec les serveurs LDAP v2 et v3.
    kldap
    kldap est un client LDAP (navigateur) pour KDE. Vous pouvez naviguer dans l'arborescence comme avec l'Administrateur Novell.
    http://freshmeat.net/search.php3?query=ldap
    Nombreux outils LDAP disponibles sur Freshmeat
    http://www.redbooks.ibm.com/abstracts/sg245110.html
    LDAP Implementation Cookbook, d'IBM
    Vous pouvez le consulter en ligne ou commander une version papier
    ypldapd - nis 2 ldap gateway
    Ypldapd est un serveur Network Information Service (NIS) qui utilise LDAP comme source d'information. Avec ypldapd, les clients NIS existants peuvent utiliser LDAP de manière transparente pour la résolution d'information utilisateur, groupe et hôte. Les entreprises peuvent ainsi mesurer les avantages de LDAP, ainsi que sa distribution et son dimensionnement, sans modifier les clients. Utilisé en relation avec des technologies serveur LDAP telles que Netscape Directory Server, ypldapd peut fournir une authentification unique pour les clients NT et UNIX.
    Introduction à SLAPD et Guide de l'Administrateur SLURPD
    A lire absolument. Des tonnes d'informations sur le protocole et les serveurs LDAP
    Une carte LDAP & FAQ
    Un tutoriel pour naviguer dans les Services de Répertoires LDAP et X.500 sur l'Internet
    http://www.umich.edu/~dirsvcs/ldap/index.html
    Lightweight Directory Access Protocol