Introduzione a OpenLDAP

Perchè OpenLDAP

In presenza di reti di dimensioni elevate spesso si pone il problema di dover avere accesso a diverse macchine per scopi diversi e ciò comporta la gestione da parte degli utenti di numerose password.In una situazione del genere l’amministratore si troverà a far fronte a situazioni di potenziale pericolo per la sicurezza della rete quali: account validi non usati,  account dimenticati,  password smarrite,  password da verificare su macchine diverse... Inoltre talvolta è impossibile per gli utenti gestire o risalire a oggetti presenti all’interno della rete quali: computer, utenze, stampanti, file server e directory condivise.

Una soluzione possibile a problematiche di questo tipo è l’uso del protocollo LDAP.

Il protocollo LDAP (Lightweight Directory Access Protocol) è uno standard aperto per l’erogazione di servizi di directory tramite una rete Intranet o Internet. È basato sullo standard X.500 e su TCP/IP, rappresenta un’evoluzione del protocollo DAP ed è stato reso standard dal RFC 2251.Attualmente ne esistono diverse implementazioni tra le quali spiccano Microsoft Active Directory, IBM Directory Server e Oracle Directory Service in ambito commerciale e OpenLDAP  disponibile come free-software. 

OpenLDAP è un'implementazione “Open Source” di strumenti a supporto del protocollo LDAP, la versione cui ci riferiremo nel seguito è la 2.1.19 (Maggio 2003).OpenLDAP è stata adottato dalle maggiori distribuzioni Linux e usato soprattutto per l’autenticazione in ambienti di calcolo distribuiti ,  inoltre supporta la distribuzione dei carichi di lavoro, fornisce brevi tempi di risposta e permette la replica delle informazioni.Le principali applicazioni della suite OpenLDAP sono slapd e slurpd.Si tratta di due demoni che gestiscono le informazioni contenute nella directory(slapd) e  la replica delle stesse(slurpd).

Panoramica di LDAP                            

La gestione delle informazioni in LDAP è basata sul concetto di entry. Un'entry è una raccolta di attributi che fanno riferimento ad un Distinguished Name (DN). Il DN è unico ed è usato per riferirsi inequivocabilmente all'entry. Ogni attributo ha un tipo ed uno o più  valori. I tipi sono tipicamente sequenze mnemoniche,  come "cn" per nome comune o "mail" per un indirizzo e-mail. La sintassi dei valori dipende dal tipo di attributo. Per esempio,  un attributo tipo "cn" dovrebbe contenere il nome di un utente. Il funzionamento di LDAP si basa sul paradigma client-server e su una gestione gerarchica degli oggetti presenti nella directory.Con LDAP è possibile ottenere una distribuzione uniforme dei dati ,  anche su server distinti ,  tempi di risposta ridotti nella lettura del contenuto degli oggetti e la possibilità di replicare le informazioni su server distinti per un bilanciamento del carico di lavoro nella rete. L’unico inconveniente può essere dato dal verificarsi di inconsistenze temporali nei database replicati  dei server LDAP dovute ad aggiornamenti non sincronizzati dei dati.

Servizio di Directory

Una directory è un database ottimizzato per la ricerca e la lettura di informazioni riguardanti oggetti presenti all’interno di una rete.Le informazioni  sono basate su attributi .Un servizio di directory deve permettere sofisticate funzioni di ricerca su tali informazioni e fornire tempi di risposta molto brevi. I servizi di directory possono essere di 2 tipi:locali e distribuiti .I servizi di directory locali permettono di accedere ad informazioni in un contesto molto ristretto(es. servizio finger su un singolo host ). I servizi di directory distribuiti permettono la partizione e la replica dei dati su differenti macchine per bilanciare il carico di lavoro(es. DNS).

 

Albero di directory LDAP

 

LDAP X.500 e DAP

LDAP come DAP è un protocollo di accesso ad un servizio di directory X.500. DAP è un protocollo molto complesso basato sul modello OSI (7 strati)e richiede un ammontare significativo di risorse. LDAP è progettato per funzionare su TCP/IP (solo 4 strati)ed offre la maggior parte della funzionalità di DAP ad un costo ridotto.