Il protocollo LDAP
Il protocollo LDAP

In informatica LDAP (Lightweight Directory Access Protocol) è un protocollo standard per l'interrogazione e la modifica dei servizi di directory, come ad esempio un elenco aziendale di email, una rubrica telefonica, l’accesso in lettura/scrittura da parte di applicativi agli oggetti ed attributi di Active Directory o più in generale qualsiasi raggruppamento di informazioni che può essere espresso come record di dati e organizzato in modo gerarchico.

Ad oggi, tutte le implementazioni dei directory server sono basati su LDAP versione 3.

Come funziona il protocollo:

Il client inizia una sessione LDAP collegandosi ad un server LDAP (chiamato anche DSA, Directory System Agent), sono comunemente definite due porte TCP per la connessione in chiaro (porta 389) e la connessione cifrata (porta 636).

Le comunicazioni sono sempre iniziate dal client che invia una richiesta alla quale il server risponde.  

Il client può richiedere le seguenti operazioni:

  • Bind — esegue l'autenticazione
  • Search — esegue una ricerca
  • Compare — esegue un test di confronto tra un valore e il valore assegnato ad un attributo
  • Add - aggiunge un nuovo oggetto
  • Delete - cancella un oggetto
  • Modify - modifica gli attributi di un oggetto
  • Modify Distinguished Name (DN) — sposta o rinomina un oggetto
  • Abandon — annulla una richiesta inviata in precedenza
  • Extended Operation — richiesta di operazioni estese (definite in altre RFC)
  • Unbind — indica al server di chiudere la connessione (non è esattamente l'inverso della Bind)
  • StartTLS— estensione per utilizzare Transport Layer Security(TLS) per eseguire la Bind

Il termine di uso comune "directory LDAP" può essere fuorviante, in quanto LDAP definisce un protocollo d'accesso e non una base di dati.

Nessun tipo specifico di directory è una "directory LDAP", si potrebbe usare il termine per descrivere qualsiasi directory accessibile tramite LDAP e che possa identificare gli oggetti contenuti tramite nomi X.500.

Struttura di LDAP

L'informazione all'interno di una directory è organizzata in elementi chiamati entry, gli elementi di una directory LDAP presentano una struttura gerarchica.

Nella struttura ad albero, ad ogni livello esiste un Relative Distinguished Name (RDN) che identifica l'elemento in relazione ad un altro (ad esempio ou=utenti). L'unione di tutti i RDN, presi in successione dal nodo foglia fino alla radice, costituisce il Distinguished Name (DN), una stringa che rappresenta univocamente una entry nella directory.

Un Distinguished Name può essere ad esempio: "cn=Adriano Celentano,ou=utenti,dc=dominiotest,dc=it"

Ciascuna entry ha una serie di attributi, costituiti dall'associazione attributo-valore; per ogni attributo possono esserci più valori (si veda l'esempio appena mostrato). Ognuno degli attributi dell'elemento è definito come membro di una classe di oggetti, raggruppati in uno schema.

Ogni elemento nella directory è associato a una o più classi di oggetti, che definiscono se un attributo sia opzionale o meno, e che tipo di informazioni questo contenga.

I nomi degli attributi solitamente sono scelti per essere facilmente memorizzabili, per esempio "cn" per common name, o "mail" per un indirizzo e-mail.  

Ogni attributo ha una propria definizione che include anche una specifica del tipo di dato e delle regole di matching.  

URL di LDAP

Esiste un formato per una URL che identifica una operazione LDAP e che solitamente viene utilizzato per effettuare ricerche o per consentire al server di restituire dei "referrals" cioè riferimenti ad un altro server che contiene le informazioni richieste dal client:

ldap://host:port/DN?attributes?scope?filter?extensions

Non tutte le parti della URL sono obbligatorie.

  • ldap:// indica lo scheme della URL e identifica il protocollo LDAP;
  • host è il FQDNo l'indirizzo IP del server LDAP;
  • port è la porta sulla quale contattare l'host;
  • DN è il nome completo ("distinguished name") utilizzato per identificare la base (il punto di partenza) della ricerca;
  • attributes è la lista (con gli elementi separati da virgole) di attributi da recuperare;
  • scope specifico l'ambito d'azione della ricerca (può essere "base", "one" oppure "sub");
  • filter è il filtro di ricerca;
  • extensions sono estensioni alla richiesta LDAP.

È comunemente utilizzato una URL del tipo "ldaps://" che, sebbene deprecato, indica una connessione LDAP over SSL, questo è completamente differente dall'utilizzo dell'operazione StartTLS che invece utilizza l’URL standard ldap://.

Si ringrazia lo staff di WikiPedia per questo articolo fornito in Licenza Creative Commons.