1.2 Cos’è LDAP?
LDAP è un acronimo che sta per LIGHTWEIGHT DIRECTORY ACCESS PROTOCOL. Come suggerisce il nome stesso, è un protocollo leggero per accedere ai servizi di directory, basati sul protocollo X.500. LDAP opera su TCP/IP o su altre connessioni orientate ai servizi di trasferimento. I dettagli del protocollo e dell’implementazione sono definiti nel RFC2251:“The Lightweight Directory Access Protocol (v3)” e su altri documenti, come ad esempio le specifiche tecniche nel RFC3377. Prima di LDAP, per accedere a dati memorizzati in una directory X.500 un client doveva supportare il DAP(DIRECTORY ACCESS PROTOCOL),il quale imponeva una notevole penalizzazione delle risorse in gioco in quanto richiedeva l'utilizzo della specifica OSI(Open System Interconnection) che oggi é sostituita largamente dalla suite di protocolli TCP/IP ed altri protocolli. LDAP nasche proprio per sostituire DAP in quanto molto oneroso dal punto di vista dell'impiego delle risorse. LDAP è client-sever: un client LDAP invia una richiesta ad un server LDAP, che processa la richiesta ricevuta, accede eventualmente ad un directory database e ritorna dei risultati al client.
Che tipo di informazioni possono
essere memorizzate in una directory?
Il modello di informazioni di LDAP è basato sulle
entry. Un’entry è una
collezione di attributi aventi un unico nome globale: il Distinguished
Name (DN). Il DN è usato per riferirsi ad una particolare entry, senza avere ambiguità.
Ogni attributo dell’entry ha un tipo ed uno o più valori. I tipi di
solito sono stringhe mnemoniche, come cn per i common name (i nomi comuni), oppure mail per gli indirizzi di
posta elettronica. La sintassi dei valori dipende dai tipi, così ad esempio
abbiamo che il valore di cn potrà essere il
nome Valentino Rossi, mentre il valore di mail potrà essere
valentino@honda.com.
Come sono strutturate le informazioni?
In LDAP, le entry di una directory sono strutturate
come in una struttura gerarchica di un albero. L’entry che rappresenta il
paese si trova alla radice dell’albero. Al di sotto di
essa ci sono quelle che rappresentano stati e organizzazioni nazionali. Seguono
poi altri tipi di entry che possono rappresentare
organizzazioni, persone, stampanti, documenti, ecc…
- FIGURA 1.1:
LDAP directory tree (nomi tradizionali) -
L’albero può essere rappresentato anche usando lo schema del DNS. Questa rappresentazione è la più usata.
- FIGURA 1.2:
LDAP directory tree (nomi usati in Internet) -
Come
sono indicate le informazioni?
Come abbiamo detto,un’entry
è indicata con il suo distinguished name, che è costruito prendendo il nome stesso dell’entry
(chiamato Relative Distinguished Name, RDN)
e concatenandolo ai nomi delle entry dei suoi predecessori nell’albero.
Così ad esempio,, l’entrata per Barbara Jensen(nella figura 1.1) ha come DN partendo dal suo RDN: uid=babs, ou=People,
dc=example,
dc=com.
Il formato dei DN è descritto ampiamente nella RFC2253.
Come si accede alle informazioni?
Il protocollo LDAP definisce servizi per accedere e aggiornare una directory.
Fornisce, infatti, operazioni per aggiungere o cancellare un’entry da una directory, modificare un’entry già
esistente, oppure cambiare il nome dell’entry. L’operazione più
usata è, però, quella di ricerca di informazioni
all’interno della directory. LDAP fornisce un efficiente algoritmo di
ricerca.
Come
sono protette le informazioni da accessi non autorizzati?
Molti servizi di directory non prevedono protezione per i dati e le
informazioni, permettendo a chiunque di accedere a
tutti i dati. LDAP, invece, include un meccanismo nel quale un client si può
autenticare, o provare la sua identità ad una directory server. LDAP inoltre
consente servizi di privacy e di integrità delle
informazioni.
Come funziona LDAP?
Il servizio di directory LDAP è basato su un modello client
– server. Uno o più server LDAP contengono i
dati che servono a costruire l’albero delle informazioni di una
directory, il DIT (Directory Information Tree). La radice di un DIT è una DSA-specific Entry (DSE) e non una parte dei nomi
del contesto: ogni server ha differenti attributi e
valori nella root DSE. Il client si connette al server e gli
chiede informazioni. Il server replica con risposte precise e/o con un
puntatore che indica dove il client può accedere ad
informazioni addizionali, tipicamente un altro server LDAP. Il client LDAP può
comunicare sia con un server X.500 sia con un server
LDAP. Nelle due figure successive sono rappresentati i due schemi di
comunicazione.
- FIGURA 1.3:
Schema di comunicazione con un server X.500 –
- FIGURA 1.4:
Schema di comunicazione con un server LDAP –
LDAP
v2
LDAP
con la versione 2 diventa un standard di internet nel 1995, in quanto
era stata largamente implementata. In questa versione viene introdotto
il concetto di Bind Operation,
che è l'operazione principale per fare comunicare client e
server LDAP. La Bind Operation
è usata per stabilire un sessione tra il client e server che
permette al client di autenticarsi sul server. L'autenticazione poteva
essere fatta semplicemente inviando username e password in chiaro
sul canale. Oppure utilizzando Kerberos
per una autenticazione sicura. Dopo essersi autenticato il client
può inviare richieste al server.
LDAP
v3
Questa versione LDAP viene specificata direttamente
su protocolli di trasporto come TCP ed altri, escludendo del tutto
il livello di sessione e presentazione della specifica OSI.
Vengono introdotti i meccanismi SASL
per rendere i servizi offerti dal server più sicuri. Vi è
anche la possibilità di estendere il protocollo introducendo
nuove operazioni.