Il directory service del mondo open source
OpenLDAP è l’implementazione open source di riferimento del protocollo LDAPv3 (Lightweight Directory Access Protocol). Il progetto nasce nel 1998 come evoluzione del codice LDAP sviluppato all’Università del Michigan e fornisce un directory service completo per la gestione centralizzata di identità, credenziali e politiche di accesso.
La versione corrente, OpenLDAP 2.2, introduce miglioramenti significativi in termini di prestazioni, replica e flessibilità dei backend di archiviazione. Su infrastrutture Linux, FreeBSD e Solaris, OpenLDAP è il componente che centralizza l’autenticazione dove Active Directory non è presente.
Il modello dati: schema e DIT
Un directory LDAP organizza le informazioni in una struttura gerarchica ad albero chiamata DIT (Directory Information Tree). Ogni nodo dell’albero è un entry, identificata univocamente dal proprio DN (Distinguished Name) — ad esempio, uid=mrossi,ou=people,dc=example,dc=com.
Lo schema definisce le classi di oggetti e gli attributi ammessi: una entry di tipo inetOrgPerson conterrà attributi come cn, mail, userPassword. Lo schema è estensibile: le organizzazioni possono definire classi e attributi personalizzati per modellare strutture specifiche.
Il protocollo LDAP è ottimizzato per le letture: i directory service gestiscono carichi in cui le operazioni di ricerca superano di ordini di grandezza le operazioni di scrittura. Questa caratteristica li rende ideali per l’autenticazione, dove ogni login genera una lettura ma le modifiche alle credenziali sono rare.
Backend e overlay
OpenLDAP separa il motore del protocollo dal sistema di archiviazione attraverso un’architettura a backend. Il backend predefinito è BDB (Berkeley DB), che offre transazioni ACID e recupero dopo crash. Alternative come LDBM e SQL permettono di adattare lo storage a requisiti specifici.
Gli overlay sono moduli che si inseriscono nella pipeline di elaborazione delle richieste, modificando il comportamento del server senza alterare il backend. L’overlay syncrepl implementa la replica del contenuto tra server, permettendo architetture multi-master e provider-consumer. L’overlay ppolicy gestisce le politiche sulle password — scadenza, complessità, blocco account — direttamente nel directory.
Autenticazione centralizzata
Il caso d’uso principale di OpenLDAP è la centralizzazione dell’autenticazione. Sistemi operativi, server di posta, applicazioni web e VPN possono verificare le credenziali degli utenti interrogando un unico directory, eliminando la duplicazione di account e password su sistemi diversi.
L’integrazione avviene attraverso PAM (Pluggable Authentication Modules) sui sistemi Unix, SASL per l’autenticazione sicura e moduli specifici per applicazioni come Apache, Postfix e Squid. Il supporto nativo a TLS protegge le comunicazioni tra client e server, rendendo sicuro il transito delle credenziali sulla rete.
In un’infrastruttura eterogenea, OpenLDAP è il tessuto connettivo dell’identità: un singolo punto di gestione per utenti, gruppi e permessi che attraversa i confini tra sistemi operativi e applicazioni.
