Journal LDAP pour les nuls

Posté par  .
Étiquettes : aucune
0
22
jan.
2005
Bonjour à tou(te)s,

Suite à la dépêche récemment publiée sur LemonLDAP ( https://linuxfr.org/2005/01/21/18127.html(...) ), je souhaite découvrir un peu les annuaires LDAP et ce qu'ils ont à offrir au développeur que je suis.

Seulement, n'y connaissant que quelques bases théoriques (tant sur le protocole LDAP que sur l'utilité réelle de la bête), je ne sais pas trop par ou commencer. Je sais qu'un annuaire LDAP est facilement accessible via le réseau, je sais qu'on peut lui soumettre plein de requêtes, je connais (très) vaguement la syntaxe...

Je souhaiterais avoir de la part de ceux qui connaissent bien le domaine des pistes pour débuter et apprendre. Aussi, si ces mêmes personnes pourraient m'expliquer dans quel cas la présence d'un LDAP se trouve justifiée (pour quels usages, quel volume de données), ainsi que quelques bénéfices particuliers à un annuaire LDAP par rapport à un autre serveur de stockage de données (notamment les SGBD). Egalement, si il y a un ou plusieurs outils incontournables dont je devrais m'équiper, je suis ouvert à toute suggestion...

Bref, tout est dans le titre du journal. Merci par avance à ceux qui prendront le temps d'y répondre.
  • # LDAP en quelque mots

    Posté par  (site web personnel) . Évalué à 10.

    Bonjour,

    LDAP ( Lightweight Directory Access Protocol ) est surtout et avant tout un protocole pour l'interrogation et la manipulation de manière synchrone ou assynchrone d'annuaires.

    Pour l'histoire un annuaire respectant les normes ISO-X500 est une tres grosse usine à gaz, l'idée fut d'inventé juste un protocole qui soit très proche structurellement de la norme ISO-X500 mais qui reste humainement accessible.

    un annuaire (interrogé par) LDAP n'est donne une représentation arborescente de l'information. pour te donner une idée analogique, l'arborescence devfs de ton /dev est :
    - sous une forme d'arbre
    - chaque entrée peut etre divisé en sous noeuds contenant des informations plus spécifique/précise dans la thématique courante

    qq différences sont à noter :
    - dans une fs unix un dossier n'est pas considéré exactement comme un fichier, alors que dans ldap toute fiche est en meme temps un dossier en puissance et vice versa.
    - chaque fiche de ton LDAP est un objet au sens POO
    - ces objets sont multiclassé ( comme un barbare barde ou un mage berserk )
    - tu peux définir tes classes comme tu veux

    apres, quand tu cherches dans ton annuaire, tu le fais à coup d'équivalent de find & rgrep .

    l'interet du truc est d'avoir une base de données orientées lecture, accessible sur un modele navigationnelle et non relationnelle pour gérer tout ce qui se rapproche de la notion d'annuaires/inventaire. un LDAP est tres facilement, simplement et rapidement extensible.

    les exemples les plus courant sont : l'authentification chez ton ISP, le NetInfo/OpenDirectory d'Apple ou l'Active Directory de Microsoft.

    mon lien favori sur le sujet est http://www.cru.fr/ldap/(...)
    mon outil favori : GQ
    • [^] # Précision

      Posté par  . Évalué à 6.

      - dans une fs unix un dossier n'est pas considéré exactement comme un fichier, alors que dans ldap toute fiche est en meme temps un dossier en puissance et vice versa.


      il faut néanmoins préciser qu'une notion existe sous Novell eDirectory et Active Directory qui indique les objets ayant le droit d'en contenir d'autres, et le type d'objet pouvant être contenu pour chacun.

      J'ajouterai aux exemples que les principales implémentations de LDAP sont les suivantes :
      - OpenLDAP : l'implémentation Open Source de référence
      supporté uniquement sous Unix, un portage Windows existe mais n'est pas officiel et il est incomplet (buggué, pas de support de SASL)

      - Sun Directory Server (anciennement iPlanet Directory Server) : l'annuaire de SUN, servant à l'authentification système des réseaux SUN

      - Microsoft Active Directory : l'annuaire sur lequel repose toute l'administration système sous Windows 2000/2003/XP

      - Novell eDirectory : le serveur d'annuaire de Novell Directory Server

      - Oracle Internet Directory : le serveur utilisé pour l'authentification des différents produits Oracle


      Les grosses différences entre les serveurs LDAP du marché sont principalement tout ce qui ne fait pas partie du standard LDAP :
      - le contrôle d'accès : définit pour chaque entrée de l'annuaire qui peut y accéder et de quelle manière
      pour OpenLDAP, il se définit dans un fichier de configuration.
      pour les autres serveurs, il est stocké dans l'annuaire dans un attributs spécial de chaque entrée, indiquant qui a le droit d'y accéder et comment

      - la modification du schéma de l'annuaire (les différentes classes et les attributs disponibles, si tu veux ajouter les tiennes) :
      pour OpenLDAP elle se fait dans une série de fichiers de configuration définissant les objets
      pour Active Directory chaque classe et chaque attribut est un objet de l'annuaire, situé dans une branche spéciale, on peut ajouter et modifier ces objets via le protocole LDAP
      pour les autres implémentations (iPlanet, eDirectory, ...), on modifie l'entrée publiant le schéma de l'annuaire, dans laquelle les classes et les attributs sont stockés dans deux attributs multivalués, objectclasses et attributetypes (je crois), dans une syntaxe particulière et imbitable. Cette entrée n'est pas modifiable sous OpenLDAP et Active Directory.

      Ensuite les différences sont les classes utilisées pour stocker les utilisateurs, car chacun fait ce qu'il veut, les attributs internes stockant l'indentifiant unique de chaque entrée (identifiant qui ne change pas quand on déplace l'entrée, ce qui est important si tu fais une application qui lie des données à des entrées LDAP, il te faut un identifiant pour retrouver l'entrée à coup sûr), etc...
      • [^] # Re: Précision sur les précisions

        Posté par  (Mastodon) . Évalué à 0.

        Dans la liste des annuaires, il est intéressant d'ajouter Netscape Directory Server (détenu par AOL suite à son rachat de Netscape), récement racheté par ... Red Hat (même base que Sun Directory Server, voir http://www.redhat.com/about/presscenter/2004/press_neighbor.html(...)).

        A noter qu'OpenLDAP permet AUSSI de spécifier les contrôles d'accès dans l'annuaire lui même (voir notamment http://www.openldap.org/faq/data/cache/634.html(...))

        Comme dans TOUS les annuaires LDAP, le schéma d'OpenLDAP est accessible (en lecture seule) en ... LDAP. C'est une caractéristique intéressante de "découverte" de la structure de l'annuaire, qui est automatisable.

        A noter : tout objet de l'annuaire doit être une instance d'une et une seule classe d'objet dite "structurelle", mais il peut être représentatif d'autant de classes dites "auxiliaires" que désiré. C'est assez logique dans le cadre du // fait plus haut avec la POO.

        Une autre GROSSE différence entre annuaires de différents éditeurs, outre les capacités en charge, c'est la variation dans les extensions supportées. LDAP est un standard qui a pour caractéristique d'être naturellement extensible, et les différents produits implémentent les extensions qui les intéresses. Voir, pour OpenLDAP : http://www.openldap.org/faq/data/cache/645.html(...)

        Enfin, et c'est très important, LDAP défini également des classes standards qu'il est très vivement recommandé d'utiliser (plutôt que des classes définies spécifiquement). Tous les annuaires du marché supportent ces classes et elles permettent (comme organizationalPerson ou account) un accès banalisé aux annuaires courants.
    • [^] # Re: LDAP en quelque mots

      Posté par  . Évalué à 3.

      mon lien favori sur le sujet est http://www.cru.fr/ldap/(...(...))

      Très bon lien, merci beaucoup.
  • # Navigateurs/clients LDAP

    Posté par  (site web personnel) . Évalué à 1.

    Il existe des navigateurs de base LDAP. Personnellement, j'ai utilisé, pas plus tard qu'hier, celui-ci en JAVA : http://www-unix.mcs.anl.gov/~gawor/ldap/index.html(...) qui est simple d'utilisation et assez pratique et pour une fois que je préfère un clickware à de la ligne de commande c'est à noter :).
    Google me sussure qu'il existe aussi ceci qui est GTK-based : http://biot.com/gq/(...) mais je l'ai pas essayé.

    \_o<

    • [^] # Re: Navigateurs/clients LDAP

      Posté par  . Évalué à 2.

      il est pratique, en GTK2, mais hélas il est abandonné :(
    • [^] # Re: Navigateurs/clients LDAP

      Posté par  . Évalué à 1.

      Cela fait également quelques années que j'utilise LDAPBrowser (le premier cité), et je n'ai jamais eu le moindre problème avec. Il est vraiment bien foutu.
    • [^] # Re: Navigateurs/clients LDAP

      Posté par  . Évalué à 2.

      si tu dispose d'un serveur web avec PHP, il y a phpldapadmin, qui est vraiment excellent

      ARRGH : il est devenu payant :))
      mais il est toujours sous GPL
      si des gens pauvres le veulent, qu'ils m'envoient un mail sur mon adresse DLFP, je vais voir si j'ai le tarball quelque part

      c'est un très bon produit, il mérite même d'être acheter, car il est sous GPL et mérite d'être supporté financièrement
      • [^] # Re: Navigateurs/clients LDAP

        Posté par  . Évalué à 2.

        Le lien qui va bien :

        http://www.phpldapadmin.com

        A noter que d'après le site il est téléchargeable gratuitement pour une utilisation personnelle, la version payante ajoute le support.
  • # LDAP, PHP et photos...

    Posté par  . Évalué à 1.

    Bonjour,

    j'aurais voulu savoir si certains on déjà essayer de coupler du php avec LDAP et si on pouvait gérer des photos dans un annuaire LDAP ?
    • [^] # Re: LDAP, PHP et photos...

      Posté par  . Évalué à 3.

      j'aurais voulu savoir si certains on déjà essayer de coupler du php avec LDAP

      moi, et plein de gens
      http://fr.php.net/manual/fr/ref.ldap.php(...)
      c'est très simple quand on maitrise LDAP un minimum

      et si on pouvait gérer des photos dans un annuaire LDAP ?


      oui tout à fait, l'attribut jpegPhoto en standard dans LDAP permet de stocker une photo directement dans l'annuaire
      • [^] # Re: LDAP, PHP et photos...

        Posté par  . Évalué à 2.

        je précise que si tu veux l'utiliser, tu peux soit utiliser la classe inetOrgPerson qui inclut cet attribut pour stocker la photo de la personne, ou alors créer toi même une classe incluant cet attribut, ainsi que des attributs pour stocker les information EXIF, la description, des commentaires, etc...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.