====== LDAP ====== LDAP (Lightweight Directory Access Protocol) est un protocole d'accès à un annuaire, dérivé d' X500, au dessus de TCP/IP. C'est une implémentation allégée du protocole ISO DAP. Il est devenu le standard des annuaires électroniques qui prennent de plus en plus d'importance dans les systèmes d'information des entreprises... ==== Pointeurs pour démarrer ==== *Le {{documentation:ldap:tutorial_ldap.pdf|tutorial LDAP}} de Laurent Mirtain, Christian Claveleira et Claude Gross (français, pdf, 170 pages) *La [[http://www.it-sudparis.eu/s2ia/user/procacci/ldap/index.html| présentation orientée mise en oeuvre]] de Jehan Procaccia *La [[http://listes.cru.fr/wws/info/ldap-fr|liste de diffusion francophone ldap-fr@cru.fr]] consacrée à tous les aspects de LDAP *Un [[ftp://kalamazoolinux.org/pub/pdf/ldapv3.pdf|tutorial sur LDAP et OpenLDAP]] de Adam Williams (en anglais, pdf, 500 pages, mars 2003) *L'[[http://www-sop.inria.fr/semir/personnel/Laurent.Mirtain/ldap-livre.html|article sur LDAP]] de Laurent Mirtain *[[http://www-sop.inria.fr/semir/personnel/Laurent.Mirtain/LDAP.html|La page de Laurent Mirtain]] : documentations, exemples d'annuaires, utilitaires,... *[[exemples_ldap|Des expériences d'utilisation de LDAP en France]] *[[http://www.KingsMountain.com/LDAPRoadmap/| An LDAP Roadmap & FAQ ]](anglais, version 2.0, moins complète, moins foure-tout et plus à jour que la [[http://www.KingsMountain.com/ldapRoadmap.shtml|version précédente]]) ==== Les RFCs ==== Le coeur de LDAP :\\ *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc4511.txt| RFC 4511]] : Lightweight Directory Access Protocol (v3) *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc4517.txt| RFC 4517]] : Lightweight Directory Access Protocol (v3): Syntaxes and Matching Rules *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc4514.txt| RFC 4514]] : Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc4515.txt| RFC 4515]] : The String Representation of LDAP Search Filters *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc4516.txt| RFC 4516]] : The LDAP URL Format *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc2256.txt| RFC 2256]] : A Summary of the X.500(96) User Schema for use with LDAPv3 *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc2829.txt| RFC 2829]] : Authentication Methods for LDAP *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc2830.txt| RFC 2830]] : Lightweight Directory Access Protocol (v3): Extension for Transport Layer Security *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc3377.txt| RFC 3377]] : Lightweight Directory Access Protocol (v3): Technical Specification *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc4518.txt| RFC 4518]] : Lightweight Directory Access Protocol (LDAP): Internationalized String Preparation Autour de LDAP : *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc2247.txt| RFC 2247]] : Using Domains in LDAP/X.500 Distinguished Names *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc2307.txt| RFC 2307]] : An Approach for Using LDAP as a Network Information Service *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc2377.txt| RFC 2377]] : Naming Plan for Internet Directory-Enabled Applications *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc2589.txt| RFC 2589]] : Lightweight Directory Access Protocol (v3): Extensions for Dynamic Directory Services *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc2596.txt| RFC 2596]] : Use of Language Codes in LDAP *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc2891.txt| RFC 2891]] : LDAP Control Extension for Server Side Sorting of Search Results *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc3062.txt| RFC 3062]] : LDAP Password Modify Extended Operation *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc3112.txt| RFC 3112]] : LDAP Authentication Password Schema *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc2044.txt| RFC 2044]] : UTF-8, a transformation format of Unicode and ISO 10646 *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc2849.txt| RFC 2849]] : The LDAP Data Interchange Format (LDIF) - Technical Specification *[[ftp://ftp.cru.fr/pub/reseau/RFCs/rfc3384.txt| RFC 3384]] : LDAPv3 Replication Requirements ==== Les serveurs ==== *Implémentations libres : *[[http://www.OpenLDAP.org/| OpenLDAP ]] *[[http://www.ilex.fr/openldap| OpenLDAP pour Windows]] d'Ilex *[[http://directory.fedora.redhat.com/wiki/Main_Page|Fedora Directory Server Project]] est le serveur LDAP de RedHat issu du serveur de Netscape *[[http://directory.apache.org/|ApacheDS]] est le serveur LDAP v3 en Java d'Apache Software foundation *Le [[http://javaldap.sourceforge.net/| JavaLDAP]] est un projet de serveur LDAP en Java (repris par Octet String, Inc.) *Implémentations commerciales : *[[http://www3.ca.com/solutions/collateral.asp?CID=33068&ID=316&CCT=|Computer Associates eTrust]] *[[http://www.novell.com/products/edirectory| Novell NDS eDirectory ]] *[[http://home.netscape.com/directory/v4.0/index.html| Netscape Directory Server]] *[[http://wwws.sun.com/software/product_categories/directory_servers_identity_mgmt.html| Ex Innosoft Directory Services ]] *[[http://www.microsoft.com/windows2000/technologies/directory/ad/default.asp| Microsoft Active Directory]] *[[http://wwws.sun.com/software/products/directory_srvr/home_directory.html|Sun ONE Directory Server]] *[[http://otn.oracle.com/products/oid/content.html|Oracle Internet Directory ]] *[[http://www.cp.net/solutions/directoryServer.html|CP[tm] Directory Server ]] de Critical Path *[[http://www.octetstring.com/products/products_vde_directory_server.html|VDE Directory Server Express]] de OctetString *[[http://www.syntegra.com/directories/portfolio/services.htm|Aphelion]] de Syntegra (orienté ISP et opérateurs télécom) *[[http://www.syntegra.com/directories/portfolio/services.htm|Global Directory Meta Edition]], annuaire X500 et LDAP v3 de Syntegra *[[http://www-3.ibm.com/software/network/directory/server/| IBM Directory Server]] ==== Des clients et des passerelles ==== *[[http://www.iit.edu/~gawojar/ldap/|LDAP Browser/Editor]] est un butineur graphique LDAP en Java *[[http://www.pegacat.com/jxplorer/main.html|JXplorer]] est un autre butineur graphique LDAP en Java *[[http://biot.com/gq/|GQ]] est un butineur graphique s'appuyant sur GTK *[[http://luma.sourceforge.net/|Luma]] est un gestionnaire graphique, basé sur python-ldap, extensible via des plugins *[[http://frood.sourceforge.net/|Frood]] est un butineur Gtk-Perl/PerLDAP *[[http://phpldapadmin.sourceforge.net/|phpLDAPadmin]] est un client web d'administration/exploration LDAP *[[http://www.mountpoint.ch/oliver/kldap/| KLDAP]] est un client ldap pour KDE *[[http://www.lichteblau.com/src.html|ldapvi]] ou comment modifier des entrées LDAP avec un éditeur de texte *[[http://www.tu-chemnitz.de/~fri/web500gw/|web500gw]] est une passerelle HTTP/LDAP autonome *[[http://sites.inka.de/ms/python/web2ldap/|web2ldap]] est une passerelle HTTP/LDAP en Python multi-plateformes (Unix/Windows) *[[http://www.sysadminsith.org/software/last/|LAST]] est un outil d'administration d'annuaire en http à base de scripts Perl et de CGI *[[http://freshmeat.net/redir/auth_ldap/488/url_homepage/|auth_ldap]] est un module d'authentification LDAP pour Apache *[[http://www.spidernet.tm.fr/wxd/frames_index.htm|WXD]] est une autre passerelle HTTP/LDAP autonome (commerciale) *[[http://www.calendra.com/fr/products/products_fr.htm|Calendra Directory Manager®]] est un gestionnaire de contenu d'annuaires orienté métiers *Meibo est un gestionnaire de contenu dédié de [[http://www.ilex.fr/|Ilex]] *[[http://directory.apache.org/studio/|Apache Directory Studio]] est un plugin/application RCP Eclipse (multi plate-formes donc) permettant la navigation dans un DIT et l'édition de données ainsi que de schémas. Il permet également d'éditer les ACIs du serveur Apache Directory Server ==== Connecteurs et meta-annuaires ==== * [[http://wiki.interldap.objectweb.org/xwiki/bin/view/Main/|InterLDAP]], le gestionnaire d'identités opensource *[[http://home.netscape.com/metadirectory/v1.0/index.html|Netscape Meta-Directory]] *[[http://wwws.sun.com/software/products/meta_directory/home_meta_dir.html|Sun ONE Meta-Directory ]] *[[http://www.cp.net/solutions/platform-ims-metadirectory.html|CP[tm] Meta-Directory Server]] de Critical Path *[[http://www.microsoft.com/windows2000/technologies/directory/MMS/default.asp|Microsoft Metadirectory Services]] *[[http://www.novell.com/products/nds/dirxml/|Novell DirXML]] *[[http://www.siemens.com/page/1,3771,208470-1-0_2_0-0,00.html|DirX ]] de Siemens *[[http://www.metamerge.com/bin_proj/tp.show?n=/metamerge/top/&tt=bottom&fr=top#|Metamerge Integrator]] *[[http://www.maxware.com/|MaXware]] a de nombreuses solutions (Virtual Directory, Data Synchronization Engine,...) *[[http://www.directories.syntegra.com/services.htm|Global Directory / Meta Edition (GD/ME)]] de Syntegra *[[http://www.directories.syntegra.com/|Directory Enhancement Modules (DEM)]], méta-annuaire modulaire de Syntegra ==== Authentification ==== *[[http://www.muquit.com/muquit/software/mod_auth_ldap/mod_auth_ldap.html|mod_auth_ldap]] : un module d'authentification pour Apache utilisant les mécanismes standard d'authentification HTTP *[[http://authzldap.othello.ch/|mod_authz_ldap]] : un module d'authentification/autorisation pour Apache exploitant les certificats X509 *[[http://lemonldap.sourceforge.net/|lemonLDAP]] : un reverse-proxy d'authenfication d'accès à des applications web ==== Tout sur les schémas standardisés ==== *Voir l'excellent [[http://ldap.akbkhome.com/|http://ldap.akbkhome.com]] qui propose un browser de classes d'objets et d'attributs *ou encore [[http://www.it.ufl.edu/projects/directory/ldap-schema/objectclasses.html| http://www.it.ufl.edu/projects/directory/ldap-schema/objectclasses.html]] *Le projet de [[http://www.terena.nl/tech/projects/SchemaRegistry/|Schema Registry]] de Terena ==== Développement ==== *En C *[[http://www.OpenLDAP.org/software/man.cgi?query=ldap|l'API d'OpenLDAP]] *[[http://wwws.sun.com/software/download/app_dev.html#sdks|Sun ONE Directory SDK for C]] *[[http://developer.netscape.com/tech/directory/downloads.html|Netscape Directory SDK pour C]] *[[http://www.innosoft.com/directory_solutions/ilc-sdk-descript.html|Innosoft LDAP Client Software Development Kit (ILC-SDK)]] *En Perl *[[http://developer.netscape.com/docs/articles/directory/perldap_central.html|PerLDAP]] : librairie en C et Perl fournissant une API Perl d'accès à un annuaire LDAP *[[http://www.linc-dev.com/Files/LDAP-README.txt|Net::LDAPapi]] : ancienne librairie Perl remplacée par PerLDAP *[[http://perl-ldap.sourceforge.net/|Perl-LDAP]] : librairie Perl avec API orientée objet *En Java *[[http://developer.netscape.com/tech/directory/downloads.html|Netscape Directory SDK pour Java]] *[[http://wwws.sun.com/software/download/app_dev.html#sdks|Sun ONE Directory SDK for Java]] *[[http://java.sun.com/products/jndi/| Java Naming and Directory Interface (JNDI)]], de SUN : API Java multi-annuaires (NIS, DNS, LDAP,...) *[[http://www.OpenLDAP.org/jldap/|JLDAP]] : classes LDAP Java, contribution de Novell pour OpenLDAP *Autres *[[http://www.php.net/manual/ref.ldap.php3| Extensions LDAP de PHP3]]: API LDAP pour le langage de script PHP *[[http://python-ldap.sourceforge.net/| Python-LDAP]] : API LDAP pour Python (en développement) ==== À propos du nommage ==== *[[https://www.ateliers.modernisation.gouv.fr/ministeres/domaines_d_expertise/architecture_fonctio/public/rgi/charte-nommage-internet9402/downloadFile/file/Annexe_3c_regles_nommage.pdf|La charte de nommage internet de l'administration française]] ==== L'intégration de LDAP dans Linux (en standard dans la plupart des distributions) ==== *[[http://uhp.u-nancy.fr/linux/linuxdoc/HOWTO/LDAP-HOWTO.html| le LDAP HOWTO]] *[[http://www.padl.com/software.html| pam_ldap]] : modules PAM utilisant LDAP *[[http://freshmeat.net/redir/nss_ldap/7270/url_homepage/|nss_ldap]] : extensions à la libc pour utiliser LDAP comme NIS *[[http://www.rage.net/ldap/| Linux Directory Services ]] (plus ou moins obsolète) ==== Plus loin ==== *[[http://www.ietf.org/html.charters/ldapext-charter.html| ldapext]] : le groupe de travail de l'IETF sur les extensions de ldap *[[http://www.ietf.org/html.charters/ldup-charter.html|ldup]] : le groupe de travail de l'IETF sur la duplication, la réplication et la mise à jour *[[http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=security|SAML]] (Security Assertion Markup Language) : méthodes d'échange d'informations d'authentification et d'autorisation *[[http://www.dsml.org/| Tout sur DSML]], le (futur) langage de présentation orienté annuaires basé sur XML *[[http://www.dsmltools.org/| DSML Tools]], utilitaires DSML en java *[[http://fdis.srv.gc.ca/dsml/dsml_f.htm|La passerelle DSML/LDAP]] du Service d'Infrastructure de Répertoire Fédéré canadien *Le [[http://www.opengroup.org/directory/| Directory Interoperability Forum]] s'occupe d'interopérabilité et de certification d'annuaires *Les [[http://www.dmtf.org/spec/denh.html|Directory Enabled Network (DEN) Standards]] et leur [[http://www.dmtf.org/pres/rele/denfaq.html|FAQ]] ==== Divers ==== *[[http://ares.cru.fr/src/get_oid.php|OIDs pour les annuaires des établissements d'enseignement supérieur]] *[[http://home.kabelfoon.nl/~hvdkooij/Netscape_and_OpenLDAP_v2/netscape-and-openldap-v2.html|Using NetScape with OpenLDAP v2.x]] *L'annuaire des établissements d'enseignement supérieur : [[http://ares.cru.fr/]] *Une librairie PHP pour faciliter le développement d'applications d'interrogation et de mise à jour d'annuaires : [[.lib_cruldap:index|CruLDAP]]