Dans les environnements informatiques d'entreprise, la gestion des identités et des accès (IAM) repose sur un annuaire centralisé. Si Active Directory domine dans les infrastructures Microsoft, OpenLDAP s'impose comme la référence incontournable pour les environnements Linux, les architectures open source et les organisations souhaitant éviter la dépendance à un éditeur propriétaire. Un annuaire LDAP bien configuré constitue la colonne vertébrale de l'authentification centralisée : il permet à des dizaines d'applications hétérogènes (Nextcloud, GitLab, Nginx, Grafana, services SSH) de partager la même base d'utilisateurs, simplifiant radicalement la gestion des comptes, des groupes et des droits. Debian 12 (Bookworm), avec sa stabilité éprouvée et son support à long terme, est la plateforme de prédilection pour héberger OpenLDAP en production. Ce guide complet couvre l'installation et la configuration d'OpenLDAP (slapd) sur Debian 12, depuis la définition de l'arborescence LDAP jusqu'à la sécurisation LDAPS avec TLS, en passant par l'administration graphique via phpLDAPadmin, l'intégration applicative et la réplication en mode MirrorMode pour la haute disponibilité.
LDAP vs Active Directory — quand choisir OpenLDAP
LDAP (Lightweight Directory Access Protocol) est un protocole standard ouvert (RFC 4511) pour accéder à des annuaires d'informations. Active Directory est l'implémentation propriétaire de Microsoft, qui intègre LDAP mais y ajoute de nombreuses couches (Kerberos, DNS, GPO, SYSVOL, etc.). OpenLDAP est l'implémentation open source de référence du protocole LDAP.
Quand choisir OpenLDAP
- Infrastructure Linux-first : serveurs Ubuntu/Debian/RHEL, conteneurs Docker, Kubernetes — OpenLDAP s'intègre nativement sans couche de compatibilité.
- Budget contraint : OpenLDAP est entièrement gratuit, sans CAL, sans licence serveur.
- Indépendance éditeur : pas de dépendance à Microsoft. Migration et portabilité simplifiées.
- Contrôle granulaire : les ACL OpenLDAP offrent un contrôle précis sur qui peut lire/modifier quels attributs, plus flexible que les délégations AD standards.
- Applications open source : GitLab, Nextcloud, Mattermost, Grafana, Jellyfin intègrent nativement LDAP — la configuration est documentée et éprouvée.
Quand préférer Active Directory
- Environnement majoritairement Windows (postes, serveurs).
- Besoins GPO, gestion des postes Windows, déploiement logiciels via SCCM/Intune.
- Authentification SSO complexe avec Kerberos (SharePoint, Exchange).
Les deux solutions peuvent coexister. Dans les environnements hybrides, OpenLDAP peut être synchronisé avec Active Directory via des outils comme lsc (LDAP Synchronization Connector) ou syncrepl.
Installer OpenLDAP (slapd) sur Debian 12
Sur Debian, OpenLDAP est disponible dans les dépôts officiels sous le nom de paquet slapd (Stand-alone LDAP Daemon).
Installation initiale
# Mettre à jour les paquets
apt update && apt upgrade -y
# Installer slapd et les utilitaires LDAP
apt install -y slapd ldap-utils
# L'installateur demande le mot de passe administrateur LDAP
# Saisir un mot de passe fort pour le compte cn=admin,dc=...
Reconfiguration post-installation
# Si le domaine n'a pas été correctement configuré lors de l'installation
dpkg-reconfigure slapd
# L'assistant pose plusieurs questions :
# "Omettre la configuration OpenLDAP ?" → Non
# "Nom de domaine DNS" → monentreprise.fr (donne dc=monentreprise,dc=fr)
# "Nom de l'organisation" → Mon Entreprise
# "Mot de passe administrateur" → mot de passe fort
# "Backend de base de données" → MDB (recommandé)
# "Supprimer la base de données lors de la purge ?" → Non
# "Déplacer ancienne base de données ?" → Oui
Vérification de l'installation
# Vérifier que slapd tourne
systemctl status slapd
# Tester la connexion LDAP en anonyme
ldapsearch -x -H ldap://localhost -b "dc=monentreprise,dc=fr"
# Tester avec les credentials admin
ldapsearch -x -H ldap://localhost -b "dc=monentreprise,dc=fr" -D "cn=admin,dc=monentreprise,dc=fr" -W
Configurer le DIT (Directory Information Tree) — base DN, arborescence OU
Le DIT (Directory Information Tree) est la structure hiérarchique de l'annuaire LDAP. Une bonne conception du DIT facilite l'administration et l'intégration applicative.
Structure recommandée
dc=monentreprise,dc=fr
├── ou=Utilisateurs
│ ├── uid=jdupont
│ ├── uid=mmartin
│ └── uid=aleblanc
├── ou=Groupes
│ ├── cn=admins
│ ├── cn=employes
│ └── cn=gitlab-users
├── ou=Services
│ ├── ou=Comptabilite
│ ├── ou=Informatique
│ └── ou=Commercial
└── ou=Systemes
├── uid=svc-nextcloud
└── uid=svc-gitlab
Créer l'arborescence avec LDIF
Les fichiers LDIF (LDAP Data Interchange Format) permettent d'importer des entrées dans l'annuaire.
# Fichier base.ldif — création des OU principales
dn: ou=Utilisateurs,dc=monentreprise,dc=fr
objectClass: organizationalUnit
ou: Utilisateurs
description: Utilisateurs de l'entreprise
dn: ou=Groupes,dc=monentreprise,dc=fr
objectClass: organizationalUnit
ou: Groupes
description: Groupes d'accès
dn: ou=Services,dc=monentreprise,dc=fr
objectClass: organizationalUnit
ou: Services
description: Services de l'entreprise
dn: ou=Systemes,dc=monentreprise,dc=fr
objectClass: organizationalUnit
ou: Systemes
description: Comptes de service système
# Importer le fichier LDIF
ldapadd -x -H ldap://localhost -D "cn=admin,dc=monentreprise,dc=fr" -W -f base.ldif
Ajouter des utilisateurs et groupes en LDIF
Créer un utilisateur
# Générer le hash du mot de passe
slappasswd -h {SSHA}
# Saisir le mot de passe → récupérer le hash {SSHA}...
# Fichier utilisateur.ldif
dn: uid=jdupont,ou=Utilisateurs,dc=monentreprise,dc=fr
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: jdupont
cn: Jean Dupont
sn: Dupont
givenName: Jean
mail: [email protected]
userPassword: {SSHA}hashgenerépar_slappasswd
uidNumber: 10001
gidNumber: 10000
homeDirectory: /home/jdupont
loginShell: /bin/bash
# Importer l'utilisateur
ldapadd -x -H ldap://localhost -D "cn=admin,dc=monentreprise,dc=fr" -W -f utilisateur.ldif
Créer un groupe
# Fichier groupe.ldif
dn: cn=employes,ou=Groupes,dc=monentreprise,dc=fr
objectClass: groupOfNames
cn: employes
description: Tous les employés
member: uid=jdupont,ou=Utilisateurs,dc=monentreprise,dc=fr
member: uid=mmartin,ou=Utilisateurs,dc=monentreprise,dc=fr
Modifier un attribut existant
# Changer le mot de passe d'un utilisateur
ldappasswd -H ldap://localhost -D "cn=admin,dc=monentreprise,dc=fr" -W -S "uid=jdupont,ou=Utilisateurs,dc=monentreprise,dc=fr"
# Modifier un attribut via LDIF de modification
dn: uid=jdupont,ou=Utilisateurs,dc=monentreprise,dc=fr
changetype: modify
replace: mail
mail: [email protected]
Sécuriser avec LDAPS (TLS/SSL) — générer et intégrer le certificat
Par défaut, LDAP communique en clair sur le port 389. En production, LDAPS (LDAP over TLS) sur le port 636 est indispensable pour chiffrer les credentials et les données.
Générer un certificat auto-signé (lab)
# Créer les répertoires
mkdir -p /etc/ldap/certs
cd /etc/ldap/certs
# Générer la clé privée et le certificat auto-signé
openssl req -new -x509 -nodes -out ldap.crt -keyout ldap.key -days 3650 \
-subj "/C=FR/ST=IDF/L=Paris/O=MonEntreprise/CN=ldap.monentreprise.fr"
# Ajuster les permissions
chown openldap:openldap ldap.crt ldap.key
chmod 640 ldap.key
chmod 644 ldap.crt
Configurer TLS dans slapd
# Fichier tls.ldif — configurer TLS via cn=config
dn: cn=config
changetype: modify
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ldap/certs/ldap.crt
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ldap/certs/ldap.crt
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ldap/certs/ldap.key
-
add: olcTLSVerifyClient
olcTLSVerifyClient: never
# Appliquer la configuration TLS
ldapmodify -Y EXTERNAL -H ldapi:/// -f tls.ldif
# Activer LDAPS dans /etc/default/slapd
# Modifier SLAPD_SERVICES pour inclure ldaps:///
sed -i 's|SLAPD_SERVICES="ldap:/// ldapi:///"|SLAPD_SERVICES="ldap:/// ldaps:/// ldapi:///"|' /etc/default/slapd
systemctl restart slapd
# Tester LDAPS
ldapsearch -x -H ldaps://localhost -b "dc=monentreprise,dc=fr" -D "cn=admin,dc=monentreprise,dc=fr" -W
Certificat Let's Encrypt (production)
Pour la production, utiliser un certificat Let's Encrypt via Certbot :
# Obtenir un certificat Let's Encrypt
apt install certbot
certbot certonly --standalone -d ldap.monentreprise.fr
# Configurer slapd avec le certificat Let's Encrypt
# Dans tls.ldif, remplacer les chemins par :
# /etc/letsencrypt/live/ldap.monentreprise.fr/chain.pem
# /etc/letsencrypt/live/ldap.monentreprise.fr/fullchain.pem
# /etc/letsencrypt/live/ldap.monentreprise.fr/privkey.pem
# Renouvellement automatique (cron)
echo "0 3 1 * * root certbot renew --quiet && systemctl restart slapd" > /etc/cron.d/certbot-ldap
Configurer les ACL OpenLDAP (contrôle d'accès)
Les ACL (Access Control Lists) OpenLDAP permettent de définir précisément qui peut lire ou modifier quels attributs de l'annuaire. Une configuration ACL robuste est indispensable pour respecter le principe de moindre privilège et protéger les données sensibles (mots de passe, données personnelles).
Syntaxe des ACL OpenLDAP
Les ACL sont définies dans la configuration OLC (cn=config) via l'attribut olcAccess. La syntaxe générale est :
access to <what> [by <who> <access> [control]]+
Les niveaux d'accès disponibles du plus restrictif au plus permissif sont : none (aucun accès), auth (authentification uniquement), compare, search, read, write, add, delete, manage.
ACL recommandées pour un annuaire d'entreprise
# Fichier acl.ldif — configuration des ACL
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcAccess
# Règle 1 : les utilisateurs peuvent changer leur propre mot de passe
olcAccess: to attrs=userPassword
by self write
by anonymous auth
by group.exact="cn=admins,ou=Groupes,dc=monentreprise,dc=fr" write
by * none
# Règle 2 : les utilisateurs peuvent voir leur propre profil complet
olcAccess: to dn.base="ou=Utilisateurs,dc=monentreprise,dc=fr" attrs=*
by self read
by group.exact="cn=admins,ou=Groupes,dc=monentreprise,dc=fr" write
by users read
by * none
# Règle 3 : accès général en lecture aux informations non sensibles
olcAccess: to *
by group.exact="cn=admins,ou=Groupes,dc=monentreprise,dc=fr" write
by users read
by * auth
# Appliquer les ACL
ldapmodify -Y EXTERNAL -H ldapi:/// -f acl.ldif
# Vérifier les ACL actives
ldapsearch -Y EXTERNAL -H ldapi:/// -b "olcDatabase={1}mdb,cn=config" olcAccess
Compte de service avec droits limités
Pour les applications qui se connectent à l'annuaire en lecture seule (Nextcloud, GitLab, Grafana), créer des comptes de service dédiés avec des droits minimalistes. Ces comptes sont placés dans ou=Systemes et se voient accorder uniquement le droit read sur les branches nécessaires :
# Créer le compte de service pour GitLab
dn: uid=svc-gitlab,ou=Systemes,dc=monentreprise,dc=fr
objectClass: inetOrgPerson
uid: svc-gitlab
cn: Service GitLab
sn: GitLab
mail: [email protected]
userPassword: {SSHA}hash_mot_de_passe_service
# ACL spécifique : svc-gitlab peut lire ou=Utilisateurs et ou=Groupes uniquement
olcAccess: to dn.subtree="ou=Utilisateurs,dc=monentreprise,dc=fr"
by dn.exact="uid=svc-gitlab,ou=Systemes,dc=monentreprise,dc=fr" read
by * break
Audit des accès LDAP
OpenLDAP peut activer un overlay d'audit qui journalise toutes les opérations de modification de l'annuaire dans un fichier LDIF :
# Activer l'overlay auditlog
dn: olcOverlay=auditlog,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcAuditLogConfig
olcOverlay: auditlog
olcAuditlogFile: /var/log/ldap/audit.ldif
Ce fichier de log permet de tracer qui a modifié quoi et quand, précieux pour la conformité RGPD et les audits de sécurité.
Installer phpLDAPadmin pour l'interface graphique
phpLDAPadmin est une interface web permettant de naviguer et gérer l'annuaire OpenLDAP sans ligne de commande. Utile pour les équipes moins familières avec LDIF.
# Installer phpLDAPadmin
apt install -y phpldapadmin
# Configuration : /etc/phpldapadmin/config.php
# Modifier les paramètres de connexion
# Dans /etc/phpldapadmin/config.php, configurer :
$servers->setValue('server','host','127.0.0.1');
$servers->setValue('server','port',389);
$servers->setValue('server','base',array('dc=monentreprise,dc=fr'));
$servers->setValue('login','auth_type','session');
$servers->setValue('server','tls',false);
// En LDAPS :
$servers->setValue('server','host','ldaps://ldap.monentreprise.fr');
$servers->setValue('server','port',636);
# phpLDAPadmin s'appuie sur Apache. Activer le module et recharger
a2enmod php8.2
systemctl restart apache2
# Accès : http://ldap.monentreprise.fr/phpldapadmin
Optimiser les performances OpenLDAP avec les index
Sans index, chaque recherche LDAP effectue un parcours séquentiel de toutes les entrées, ce qui devient problématique à partir de quelques milliers d'utilisateurs. La configuration des index est une optimisation critique souvent négligée.
Index recommandés pour un annuaire d'entreprise
Les attributs les plus fréquemment recherchés doivent être indexés. Pour un annuaire d'entreprise typique, les index essentiels sont :
# Fichier index.ldif — ajout des index
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: uid pres,eq
olcDbIndex: cn pres,eq,sub
olcDbIndex: sn pres,eq,sub
olcDbIndex: mail pres,eq,sub
olcDbIndex: memberOf eq
olcDbIndex: member eq
olcDbIndex: objectClass eq
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
# Appliquer les index
ldapmodify -Y EXTERNAL -H ldapi:/// -f index.ldif
# Reconstruire les index existants (si données déjà présentes)
systemctl stop slapd
slapindex -F /etc/ldap/slapd.d -n 1
chown -R openldap:openldap /var/lib/ldap
systemctl start slapd
# Vérifier les index actifs
ldapsearch -Y EXTERNAL -H ldapi:/// -b "olcDatabase={1}mdb,cn=config" olcDbIndex
Types d'index LDAP
Il existe plusieurs types d'index dans OpenLDAP, chacun optimisant un type de recherche différent. L'index eq (equality) accélère les recherches d'égalité exacte (uid=jdupont). L'index sub (substring) accélère les recherches partielles (cn=*dupont*). L'index pres (presence) accélère les vérifications d'existence d'un attribut (mail=*). Configurer uniquement les index réellement nécessaires, car chaque index consomme de l'espace disque et ralentit légèrement les opérations d'écriture.
Monitoring des performances LDAP
# Activer le backend cn=monitor pour les statistiques
dn: olcDatabase=monitor,cn=config
objectClass: olcDatabaseConfig
olcDatabase: monitor
olcAccess: to *
by dn.exact="cn=admin,dc=monentreprise,dc=fr" read
by * none
# Consulter les statistiques
ldapsearch -x -H ldap://localhost -D "cn=admin,dc=monentreprise,dc=fr" -W \
-b "cn=monitor" "(objectClass=*)" | grep -E "(Operations|Connections|Statistics)"
Intégrer OpenLDAP à des applications (Nextcloud, GitLab, Nginx auth)
Nextcloud
Dans Nextcloud → Paramètres → Intégrations → LDAP/AD :
- Serveur :
ldap.monentreprise.fr, port 636, LDAPS activé. - DN admin :
cn=admin,dc=monentreprise,dc=fr. - Base DN utilisateurs :
ou=Utilisateurs,dc=monentreprise,dc=fr. - Filtre utilisateurs :
(&(objectClass=inetOrgPerson)(memberOf=cn=nextcloud-users,ou=Groupes,dc=monentreprise,dc=fr))
GitLab
# Dans /etc/gitlab/gitlab.rb
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-EOS
main:
label: 'Mon Entreprise LDAP'
host: 'ldap.monentreprise.fr'
port: 636
uid: 'uid'
encryption: 'simple_tls'
verify_certificates: true
ca_file: '/etc/ssl/certs/ca-certificates.crt'
bind_dn: 'cn=svc-gitlab,ou=Systemes,dc=monentreprise,dc=fr'
password: 'mot-de-passe-service'
base: 'ou=Utilisateurs,dc=monentreprise,dc=fr'
user_filter: '(memberOf=cn=gitlab-users,ou=Groupes,dc=monentreprise,dc=fr)'
EOS
# Reconfigurer GitLab
gitlab-ctl reconfigure
Authentification Nginx avec mod_auth_ldap
# Nginx ne supporte pas LDAP nativement. Utiliser nginx-auth-ldap (module tiers)
# Alternative recommandée : authentification via un serveur Authelia ou Keycloak
# qui s'authentifie contre OpenLDAP et expose OAuth2/OIDC à Nginx
Configurer l'authentification SSH avec PAM et NSS (sssd)
SSSD (System Security Services Daemon) est le composant recommandé pour permettre l'authentification Linux via OpenLDAP, remplaçant l'ancienne combinaison libnss-ldap + libpam-ldap.
# Installer sssd et les packages nécessaires
apt install -y sssd sssd-ldap libpam-sss libnss-sss
# Configuration /etc/sssd/sssd.conf
[sssd]
services = nss, pam
config_file_version = 2
domains = monentreprise.fr
[domain/monentreprise.fr]
id_provider = ldap
auth_provider = ldap
ldap_uri = ldaps://ldap.monentreprise.fr
ldap_search_base = dc=monentreprise,dc=fr
ldap_default_bind_dn = cn=admin,dc=monentreprise,dc=fr
ldap_default_authtok = motdepasseadmin
ldap_tls_reqcert = demand
ldap_tls_cacert = /etc/ssl/certs/ldap.crt
cache_credentials = true
enumerate = false
# Permissions et démarrage sssd
chmod 600 /etc/sssd/sssd.conf
systemctl enable sssd && systemctl start sssd
# Configurer PAM pour utiliser sssd
pam-auth-update --enable mkhomedir
# Configurer NSS pour résoudre les utilisateurs LDAP
# Vérifier /etc/nsswitch.conf :
# passwd: files sss
# group: files sss
# shadow: files sss
# Tester
id jdupont
ssh jdupont@localhost
Réplication maître-esclave OpenLDAP (MirrorMode)
Pour la haute disponibilité, OpenLDAP supporte plusieurs modes de réplication. Le mode MirrorMode (deux maîtres qui se synchronisent mutuellement) est recommandé en production car il permet l'écriture sur les deux nœuds.
# Sur les deux serveurs (ldap1 et ldap2), configurer syncrepl
# Fichier replication.ldif à appliquer sur chaque serveur
# Sur ldap1 : configurer la réplication vers ldap2
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001
provider=ldaps://ldap2.monentreprise.fr
bindmethod=simple
binddn="cn=admin,dc=monentreprise,dc=fr"
credentials=motdepasseadmin
searchbase="dc=monentreprise,dc=fr"
scope=sub
schemachecking=on
type=refreshAndPersist
retry="5 5 300 5"
interval=00:00:05:00
-
add: olcMirrorMode
olcMirrorMode: TRUE
# Sur ldap2 : même configuration avec provider=ldaps://ldap1.monentreprise.fr
# et rid=002
# Vérifier la réplication
ldapsearch -x -H ldap://ldap2.monentreprise.fr -b "dc=monentreprise,dc=fr" "(uid=jdupont)"
En MirrorMode, un load balancer (HAProxy, keepalived) devant les deux nœuds assure la transparence pour les applications clientes. Voir aussi notre article sur la configuration réseau avec Windows Server RRAS pour des architectures hybrides.
Intégrer OpenLDAP à Keycloak pour le SSO
Keycloak est un serveur d'identité open source (soutenu par Red Hat) qui peut fédérer plusieurs sources d'identité — dont OpenLDAP — et exposer des protocoles modernes comme OAuth2, OpenID Connect (OIDC) et SAML 2.0. Cette approche permet aux applications modernes de bénéficier du SSO (Single Sign-On) tout en continuant à utiliser OpenLDAP comme annuaire de référence.
Fédération LDAP dans Keycloak
Dans Keycloak, la fédération LDAP se configure dans Administration Console → Realm → User Federation → Add provider → ldap. Les paramètres essentiels sont les suivants. Le Connection URL doit pointer vers ldaps://ldap.monentreprise.fr. Le Bind DN utilise le compte de service dédié (uid=svc-keycloak,ou=Systemes,dc=monentreprise,dc=fr). Le Users DN est ou=Utilisateurs,dc=monentreprise,dc=fr. Le Username LDAP attribute est uid. Une fois configuré, Keycloak synchronise les utilisateurs depuis OpenLDAP et permet l'authentification OAuth2/OIDC aux applications clientes.
Cette architecture — OpenLDAP comme source de vérité des identités, Keycloak comme broker SSO — est une bonne pratique pour les environnements applicatifs hétérogènes. Elle découple la gestion des identités des protocoles d'authentification applicatifs, simplifiant les migrations futures.
Avantages de l'intégration Keycloak + OpenLDAP
L'un des principaux avantages de combiner Keycloak avec OpenLDAP est la possibilité d'ajouter des fonctionnalités avancées sans modifier l'annuaire LDAP lui-même. Keycloak peut ainsi ajouter le 2FA (TOTP, WebAuthn), la gestion des sessions OAuth2, le consentement utilisateur, la gestion des rôles applicatifs, et les flux d'inscription et de réinitialisation de mot de passe en self-service. Les applications s'authentifient via OIDC/OAuth2 contre Keycloak, qui valide les credentials contre OpenLDAP de manière transparente. L'expérience utilisateur bénéficie d'un portail SSO unifié, réduisant le nombre de mots de passe à mémoriser et les risques de phishing.
Synchronisation bidirectionnelle
Keycloak peut être configuré en mode READ_ONLY (lecture seule depuis LDAP) ou WRITABLE (modifications répercutées dans LDAP). En mode WRITABLE, la création d'un utilisateur dans Keycloak crée automatiquement l'entrée correspondante dans OpenLDAP, ce qui simplifie l'onboarding des nouveaux collaborateurs via le portail Keycloak. Attention cependant : les attributs non mappés dans Keycloak ne sont pas synchronisés, et certains schémas LDAP métier peuvent nécessiter des mappings personnalisés.
Sauvegarder et restaurer un annuaire OpenLDAP
Sauvegarde avec slapcat
# Exporter l'annuaire complet en LDIF (service peut rester actif)
slapcat -n 1 -l /backup/ldap-$(date +%Y%m%d).ldif
# Exporter la configuration cn=config
slapcat -n 0 -l /backup/ldap-config-$(date +%Y%m%d).ldif
# Automatiser via cron
echo "0 2 * * * root slapcat -n 1 -l /backup/ldap-\$(date +\%Y\%m\%d).ldif && gzip /backup/ldap-\$(date +\%Y\%m\%d).ldif" > /etc/cron.d/ldap-backup
Restauration avec slapadd
# Arrêter slapd avant la restauration
systemctl stop slapd
# Supprimer la base de données existante
rm -rf /var/lib/ldap/*
# Restaurer depuis le fichier LDIF
slapadd -n 1 -F /etc/ldap/slapd.d -l /backup/ldap-20260610.ldif
# Rétablir les permissions
chown -R openldap:openldap /var/lib/ldap
# Redémarrer slapd
systemctl start slapd
La documentation officielle OpenLDAP est disponible sur openldap.org/doc/ et des ressources LDAP approfondies sur ldap.com. Pour l'intégration de l'annuaire LDAP avec la gestion des identités dans un contexte de sécurité avancée, nos experts en RSSI externalisé peuvent vous accompagner dans la conception de votre architecture IAM. Pour les environnements où OpenLDAP coexiste avec des solutions de sauvegarde Linux, consulter notre guide rsync pour la sauvegarde Linux.
Besoin d'un accompagnement expert ?
Nos consultants sécurisent et optimisent votre infrastructure.
Contacter nos experts →Quelle est la différence entre slapd et OpenLDAP ?
slapd (Stand-alone LDAP Daemon) est le démon serveur qui constitue le cœur d'OpenLDAP. OpenLDAP est le projet global qui regroupe slapd, les bibliothèques clientes (libldap), les utilitaires en ligne de commande (ldapsearch, ldapadd, ldapmodify) et la documentation. Quand on parle d'installer "OpenLDAP sur Debian", on installe principalement le paquet slapd accompagné des utilitaires ldap-utils.
OpenLDAP peut-il remplacer complètement Active Directory ?
OpenLDAP peut remplacer AD pour les fonctions d'annuaire (authentification, gestion des utilisateurs et groupes) dans un environnement Linux. En revanche, il ne reproduit pas les fonctionnalités Windows-spécifiques d'AD : GPO, jonction de domaine Windows, Kerberos Windows natif, SYSVOL. Pour les environnements mixtes, Samba 4 (qui implémente AD complet en open source) est une alternative intéressante.
Comment réinitialiser le mot de passe admin OpenLDAP si perdu ?
Arrêter slapd, puis modifier directement le fichier de configuration cn=config. Générer un nouveau hash avec slappasswd, puis modifier l'attribut olcRootPW dans le fichier /etc/ldap/slapd.d/cn=config/olcDatabase={1}mdb.ldif. Redémarrer slapd. Cette opération nécessite un accès root au serveur.
OpenLDAP supporte-t-il le 2FA (authentification à deux facteurs) ?
OpenLDAP seul ne supporte pas le 2FA nativement. Pour ajouter le 2FA, il faut passer par une couche intermédiaire : Keycloak, Authelia ou FreeIPA (qui intègre OpenLDAP) peuvent ajouter TOTP ou FIDO2 en amont de l'authentification LDAP. Les applications s'authentifient alors via OAuth2/OIDC plutôt que LDAP direct.
Quelle est la limite de taille d'un annuaire OpenLDAP ?
OpenLDAP avec le backend MDB (basé sur LMDB) supporte des annuaires de plusieurs millions d'entrées sans dégradation significative des performances. La taille maximale théorique d'une base MDB est configurable (paramètre olcDbMaxSize, défaut 1 Go, extensible à plusieurs téraoctets). En pratique, les limites sont celles des ressources système (RAM, disque) plutôt que d'OpenLDAP lui-même.
À retenir
- OpenLDAP est la référence open source pour la gestion d'annuaire en environnement Linux, sans coût de licence.
- LDAPS (TLS sur port 636) est indispensable en production pour chiffrer les credentials et données LDAP.
- SSSD remplace avantageusement nss-ldap/pam-ldap pour l'authentification SSH et système sur Debian.
- Le MirrorMode offre la haute disponibilité avec deux maîtres en écriture synchronisés.
- slapcat/slapadd permettent des sauvegardes/restaurations complètes de l'annuaire en format LDIF standard.
À propos de l'auteur
Ayi NEDJIMI
Auditeur Senior Cybersécurité & Consultant IA
Expert Judiciaire — Cour d'Appel de Paris
Habilitation Confidentiel Défense
[email protected]
Ayi NEDJIMI est un vétéran de la cybersécurité avec plus de 25 ans d'expérience sur des missions critiques. Ancien développeur Microsoft à Redmond sur le module GINA (Windows NT4) et co-auteur de la version française du guide de sécurité Windows NT4 pour la NSA.
À la tête d'Ayi NEDJIMI Consultants, il réalise des audits Lead Auditor ISO 42001 et ISO 27001, des pentests d'infrastructures critiques, du forensics et des missions de conformité NIS2 / AI Act.
Conférencier international (Europe & US), il a formé plus de 10 000 professionnels.
Domaines d'expertise
Ressources & Outils de l'auteur
Testez vos connaissances
Mini-quiz de certification lié à cet article — propulsé par CertifExpress
Articles connexes
Un projet cybersécurité ? Parlons-en.
Pentest, conformité NIS 2, ISO 27001, audit IA, RSSI externalisé… nos experts répondent sous 24h pour évaluer votre besoin et vous proposer un accompagnement sur mesure.
Commentaires
Aucun commentaire pour le moment. Soyez le premier à commenter !
Laisser un commentaire