Il existe de nombreux logiciels propriétaires permettant de créer un serveur LDAP sur Windows, mais soit ils sont chers, soit ils ne respectent pas les standards (Active Directory).
OpenLDAP est un serveur LDAP Opensource très répandu sur plate-forme Unix, il serait donc très intéressant de pouvoir l'utiliser sur Windows.
Grâce à Lucas Bergman, de FiveSight , c'est possible. Il a en effet effectué les modifications nécessaires aux sources et propose une version binaire windows prête à l'emploi d'OpenLDAP. La version initiale n'est plus accessible sur le site de FiveSight, mais Lucas Bergman a continué à travaillé sur le portage et propose maintenant une version à jour avec installeur ( http://lucas.bergmans.us/hacks/openldap/ ). Lucas ayant maintenant la chance de travailler principalement sur Unix, c'est Matthias Mohr qui a pris la suite et publie les mises à jour sur : http://download.bergmans.us/openldap/openldap-2.2.29/openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe .
Pour les impatients, ou ceux qui ne veulent pas avoir à connaître les détails des fichiers de configuration, la société Ilex a créé une version incluant un installeur un peu plus complet que le précédent, mais sur une version plus ancienne d'OpenLDAP. Cette version est disponible à l'adresse : http://www.ilex.fr/openldap.htm .
Télécharger la version binaire installable d'OpenLDAP à l'adresse : http://download.bergmans.us/openldap/openldap-2.2.29/openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe .
Lancer l'installation, choisir la langue, accepter la licence et
choisir le répertoire d'installation, par défaut
C:\Program Files\OpenLDAP
. Par principe, il faut éviter les espaces dans les noms
répertoire, indiquer par exemple :
c:\openldap
Les améliorations de Matthias permettent d'enregistrer directement OpenLDAP en service Windows, et d'installer les outils BDB. Ces derniers sont utiles pour réparer la base de données après un crash système.
L'installeur propose de choisir le mode de démarrage du service
(manuel ou automatique) et génère automatiquement une configuration valide.
Les fichiers de démarrage d'OpenLDAP sont créés dans le répertoire
c:\openldap\run
, les données de l'annuaire seront stockées dans
c:\openldap\data
.
La configuration du serveur OpenLDAP se trouve dans
le fichier
slapd.conf
. Avant de lancer le
serveur, il est nécessaire d'éditer ce fichier.
Ceci n'est qu'une introduction rapide, se référer à la documentation OpenLDAP pour plus d'informations.
- Indiquer le chemin vers les tables Unicodes,
par défaut
./ucdata
. - Spécifier les schémas LDAP utilisés, un schéma définit la structure de l'annuaire, un peu comme les tables et les colonnes pour une base de données. Le schéma core est indispensable, ajouter le schéma java si le serveur doit être utilisé comme annuaire JNDI.
- Spécifier les chemins des fichiers pid et args créés par slapd au démarrage. Le premier contient l'id du processus, le second la ligne de commande de lancement du serveur.
- Indiquer le type de base de données, le format bdb (Berkeley DB) est choisi par défaut.
- Choisir le suffixe du serveur. Toutes les entrées de
l'annuaire seront rattachées à ce suffixe, il représente
la racine LDAP du serveur. Par exemple, avec
suffix "dc=guessant,dc=org"
le nom complet de toutes les entrées du serveur se terminera pardc=guessant,dc=org
. - Définir le nom de l'entrée administrateur du serveur,
la
rootdn
, ainsi que son mot de passerootpw
. C'est le super-utilisateur du serveur. La valeur derootdn
doit être en accord avec le suffixe. En effet, comme indiqué précédemment, toutes les entrées de l'annuaire doivent être rattachées à la racine, et lerootdn
est une entrée de l'annuaire.
Exemple de fichier de configuration :
ucdata-path ./ucdata include ./schema/core.schema pidfile ./run/slapd.pid argsfile ./run/slapd.args database bdb suffix "dc=guessant,dc=org" rootdn "cn=Manager,dc=guessant,dc=org" rootpw secret directory ./data
L'exécutable
slapd.exe
est le serveur
OpenLDAP. Il suffit de le lancer en ligne de commande
ou par double-clic. Aucun message ne s'affiche, mais
le démarrage est pratiquement instantané. Ne pas fermer cette
fenêtre pendant les tests suivants. Pour obtenir les messages
de déboguage, utiliser le paramètre
-d
:
slapd -d 1
Un premier test du serveur peut être effectué avec les outils ligne de commande fournis avec OpenLDAP. Par exemple en exécutant la commande de recherche :
ldapsearch -x -s base (objectclass=*) namingContexts
Pour fonctionner, cette commande doit être lancée dans
un nouvelle fenêtre et après s'être positionné dans le
répertoire d'installation d'OpenLDAP. Utiliser la
commande
ldapsearch -?
pour plus d'informations sur les options de recherche.
Pour aller plus loin, il est plus facile d'utiliser un client LDAP, comme par exemple le LDAP Browser/Editor de Jarek Gawor, disponible sur : http://www.iit.edu/~gawojar/ldap
Lancer le client et fournir les informations de connection :
La connexion doit réussir, mais un message d'erreur
List Failed
s'affiche. Ce message est dû au fait
qu'il n'y a pas encore d'entrée dans l'annuaire, double cliquer sur le message
d'erreur pour obtenir plus de détails.
Pour créer les premières entrées dans l'annuaire, créer un
fichier
init.ldif
texte contenant les
informations suivantes (en remplaçant les noms par ceux
choisis lors de la configuration initiale de l'annuaire :
dn: dc=guessant,dc=org objectclass: top objectclass: dcObject objectclass: organization o: Guessant dc: guessant dn: cn=Manager,dc=guessant,dc=org objectclass: organizationalRole cn: Manager
Ce fichier peut être créé directement dans le répertoire d'installation OpenLDAP ou dans n'importe où après avoir ajouté ce répertoire au PATH global de la machine.
Charger ce fichier dans l'annuaire (spécifier les chemins d'accès à slapd.conf et init.ldif si nécessaire) :
slapadd -f slapd.conf -l init.ldif
La commande
slapadd
accède directement à la
base BDB, sans passer par le serveur LDAP, il faut
donc redémarrer ce dernier.
Une nouvelle connexion avec le client Ldap Browser permet de vérifier le bon chargement de l'annuaire. Décocher la case Anonymous Bind et renseigner la partie User Info pour pouvoir créer de nouvelles entrées dans l'annuaire.
Avec l'exemple de configuration précédent, indiquer
cn=Manager
, cocher la case
append base DN
et utiliser le password
secret
.
Installation en tant que service
Afin de permettre le démarrage automatique d'OpenLDAP au boot de la machine, il est nécessaire de l'installer en tant que service NT. Si l'option n'a pas été choisie lors de l'installation, cela se fait simplement par la commande :
slapd install
Pour le désinstaller :
slapd remove
Il est possible de modifier les paramètres de démarrage du service en créant les clés de registre correspondantes. Enregistrer le contenu qui suit dans un fichier .reg et le lancer par double clic :
REGEDIT4 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\OpenLDAP-slapd\Parameters] "DebugLevel"=dword:00000000 "ConfigFile"=".\\slapd.conf" "Urls"="ldap:///"
Voir le fichier README.txt inclus dans la distribution pour plus de détails sur le mode de recherche des clés de registre.
DebugLevel
permet de changer le niveau de traces,
ConfigFile
est le fichier de configuration et
Urls
est l'équivalent de l'option -h.
En particulier, pour modifier le port d'écoute openldap,
Urls
doit contenir : ldap://localhost:port/