LDA (Lightweight Directory Access Protocol) est un protocole de communication conçu pour l'accès à des bases de données hiérarchiques optimisées pour les requêtes. Contrairement aux bases relationnelles, les annuaires LDAP utilisent une structure arborescente (comme les systèmes de fichiers) et sont spécialisés dans les lectures rapides. Les termes clés incluent :
- DN (Distinguished Name) : identifiant unique d'un objet
- CN (Common Name) : nom commun
- OU (Organizational Unit) : unité organisationnelle
- DC (Domain Component) : composant du domaine
La syntaxe des chemins LDAP suit le modèle : ldap://serveur/DN où DN est composé de ces éléments. Par exemple : CN=test,OU=developer,DC=entreprise,DC=com indique que l'utilisateur test appartient à l'unité developer du domaine entreprise.com.
Pour installer openLDAP sous Windows :
- Télécharger la version 2.2.29 d'openLDAP pour Windows
- Installer en suivant les invites, par exemple dans C:\Program Files\OpenLDAP
- Configurer slapd.conf :
- Ajouter les schémas nécessaires après include ./schema/core.schema :
include ./schema/cosine.schema
include ./schema/inetorgperson.schema
include ./schema/nis.schema
- Modifier suffix et rootdn :
suffix "dc=entreprise,dc=com"
rootdn "cn=Administrateur,dc=entreprise,dc=com"
- Générer un mot de passe chiffré avec
slappasswd -h {SSHA}
- Démarrer le service :
cd C:\Program Files\OpenLDAP
slapd install OpenLDAP-slapd "Service Directoire OpenLDAP" auto
net start OpenLDAP-slapd
- Créer un fichier LDIF (LDAP Data Interchange Format) :
dn:dc=entreprise,dc=com
objectClass:top
objectClass:dcObject
objectClass:domain
dc: entreprise
dn:ou=utilisateurs,dc=entreprise,dc=com
objectClass:top
objectClass:organizationalUnit
ou: utilisateurs
dn:uid=admin,ou=utilisateurs,dc=entreprise,dc=com
objectClass:inetOrgPerson
cn: Administrateur
sn: Admin
uid: admin
userPassword: {SSHA}motdepassechiffre
- Importer les données :
- Avec
ldapadd(requiert Oracle installé) :
ldapadd -x -D "cn=Administrateur,dc=entreprise,dc=com" -w motdepasse -f donnees.ldif
- Ou avec
slapadd(nécessite d'arrêter slapd) :
slapadd -v -l donnees.ldif
- Tester la connexion avec Java :
package fr.openldap.test;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.directory.InitialDirContext;
public class TestConnexion {
public static void main(String[] args) {
Hashtable<String, String> props = new Hashtable<>();
props.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
props.put(Context.PROVIDER_URL, "ldap://192.168.1.100/dc=entreprise,dc=com");
props.put(Context.SECURITY_AUTHENTICATION, "simple");
props.put(Context.SECURITY_PRINCIPAL, "cn=Administrateur,dc=entreprise,dc=com");
props.put(Context.SECURITY_CREDENTIALS, "motdepasse");
try {
new InitialDirContext(props);
System.out.println("Connexion réussie");
} catch (Exception e) {
System.err.println("Échec de la connexion : " + e.getMessage());
}
}
}
- Créer un script de démarrage automatique :
@echo off
cd /d "C:\Program Files\OpenLDAP"
slapd -d 1
echo Service démarré. Appuyez sur une touche pour quitter.
pause >nul
Pour visualiser l'annuaire, utiliser un outil comme Apache Directory Studio avec les paramètres configurés dans slapd.conf.