Il protocollo LDAP

LDAP (Lightweight Directory Access Protocol è un protocollo standard che permette di gestire degli annuari, cioè di accedere a dei datainfo sugli utenti di una rete attraverso dei protocolli TCP/IP.

I datainfo sono generalmente relativi a degli utenti, ma possono essere talvolta usati con altri fini come per la gestione dell'harware in un'azienda. Il protocollo LDAP, sviluppato nel 1993 dall'università del Michigan, aveva come scopo di soppiantare il protocollo DAP (che serviva per accedere al servizio dell'annuario X.500 dell'OSI), integrandolo al seguito TCP/IP. Partendo dal 1995, LDAP è diventato un annuario nativo (standalone LDAP), affinché non servisse più unicamente per accedere a degli annuari di tipo X500. LDAP è quindi una versione alleggerita del protocollo DAP, da cui deriva il suo nome di Lightweight Directory Access Protocol.

Presentazione del LDAP

Il protocollo LDAP definisce il metodo d'acceso ai dati sul server a livello del client, e non il modo in cui le informazioni vengono memorizzate. Il protocollo LDAP è attualmente alla versione 3 e è stato normalizzato dall'IETF (Internet Engineering Task Force). Così, esiste un RFC per ogni versione del LDAP, che costituisce un documento di riferimento:

RFC 1777 per LDAP v.2 standard;

RFC 2251 per LDAP v.3 standard.

Così LDAP fornisce all'utente dei metodi che gli permettono di connettersi, disconnettersi, cercare delle informazioni, paragonare delle informazioni, inserire delle entry, modificare degli entry,cancellare degli entry.

D'altra parte il protocollo LDAP (nella sua versione 3) propone dei meccanismi di codificazione (SSL, ecc.) e di autenticazione (SASL) che permettono di sicurizzare l'accesso alle informazioni memorizzate nel datainfo.

L'arborescenza delle informazioni (DIT)

LDAP presenta le informazioni sotto forma di un'arborescenza di informazioni gerarchica chiamata DIT (Directory Information Tree), nella quale le informazioni, dette dati (o ancora DSE, Directory Service Entry), sono rappresentate sotto forma di rami. Un ramo posto alla radice di una ramificazione è detto radice o suffisso (in inglese root entry).

Ogni immissione dell'annuario LDAP corrisponde ad un oggetto astratto o reale (ad esempio una persona, un oggetto materiale, dei parametri, ecc.). Ogni entry è costituita da un insieme di coppie chiave/valore dette attributi:

Directory Information Tree di LDAP

Gli attributi delle entry

Ogni entry è costituita da un insieme di attributi (coppie chiave/valore) che permettono di caratterizzare l'oggetto definito dall'entry. Esistono due tipi di attributi:

Gli attributi normali, si tratta degli attributi abituali (cognome, nome, ecc.) che caratterizzano l'oggetto;

Gli attributi operativi, questi sono degli attributi ai quali solo il server può accedere per manipolare i dati dell'annuario (date di modifica, ecc.).

Un'entry è indicizzata da un nome distinto (DN, distinguished name) che permette di identificare in maniera univoca un elemento dell'arborescenza.

Un DN si costruisce prendendo il nome dell'elemento, detto Relative Distinguished Name (RDN, cioè il percorso dell'entry rispetto ad uno dei suoi vicini), e aggiungendogli l'insieme dei nomi delle entry vicine. Si tratta di usare una serie di coppie chiave/valore che gli permettono di individuare un'entry in modo univoco. Ecco una serie di chiavi generalmente usate:

uid (userid), si tratta di un identificativo unico obbligatorio;

cn (common name), si tratta del cognome della persona;

givenname, si tratta del nome della persona;

sn (surname), si tratta del soprannome della persona;

o (organization), si tratta dell'azienda della persona;

u (organization unit), si tratta del servizio dell'azienda nel quale la persona lavora;

mail, si tratta dell'indirizzo di posta elettronica della persona;

Nonché Distinguished Name sarà nella forma:

uid=mrossi,cn=rossi,givenname=mario

Il Relative Distinguished Name essendo qui"uid=mrossi".

Quindi, si dice schema l'insieme delle definizioni di oggetti e attributi che un server LDAP può gestire. Questo permette ad esempio di definire se un attributo può avere uno o più valori. D'altra parte, un attributo chiamato object class permette di definire gli attributi sia obbligatori che facoltativi.

Consultare i dati

LDAP fornisce un insieme di funzioni (procedure) per effettuare delle richieste sui dati per cercare, modificare, cancellare delle entry nelle cartelle. Ecco una lista delle principali operazioni che LDAP può effettuare:

Operazione Descrizione
Abandon Abbandona l'operazione precedentemente inviata al server
Add Aggiunge un'entry alla cartella
Blind Inizia una nuova sessione sul server LDAP
Compare Paragona le entry di una cartella secondo dei criteri
Delete Cancella un'entry da una cartella
Extended Effettua delle operazioni estese
Rename Modifica il nome di un' entry
Search Ricerca delle entry in una cartella
Unbind Termina una sessione sul server LDAP

Il formato di scambio dei dati LDIF

LDAP fornisce un formato di scambio (LDIF, Lightweight Data Interchange Format) che permette d'importare e d'esportare i dati da un annuario con un semplice file di testo. La maggior parte dei server LDAP supporta questo formato permettendo una grande interoperabilità fra loro. La sintassi di questo formato è la seguente:

[<id>]
dn: <distinguished name>
<attribut> : <valore>
<attribut> : <valore>
...

In questo file, id è facoltativo, si tratta di un intero positivo che permette di identificare l'entry nel database.

Ogni nuova entry deve essere separata dalla definizione dell'entry precedente attraverso un salto di riga (riga vuota);

È possibile definire un attributo su più righe cominciando le righe seguenti da uno spazio a con una tabulazione;

È possibile definire più valori per un attributo ripetendo la stringa nome:valore su righe separate;

Quando il valore contiene un carattere speciale (nome stampabile, uno spazio o :), l'attributo deve essere seguito da :: poi dal valore codificato in base 64.

Foto: © Pixabay.

I nostri contenuti sono creati in collaborazione con esperti di high-tech, sotto la direzione di Jean-François Pillou, fondatore di CCM.net. CCM è un sito di high-tech leader a livello internazionale ed è disponibile in 11 lingue.
Il documento intitolato « Il protocollo LDAP » dal sito CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.