Cos’è un server LDAP? Cercando informazioni con i motori di ricerca ho trovato che può essere immaginato come un elenco del telefono o pagine gialle. Se è cosí, mi domando che senso ha usare un server LDAP quando la stessa funzione può essere eseguita in maniera assai efficiente da un database (ad esempio mySQL). Quindi in particolare chiedo, quali differenze ci sono tra un database e un sistema LDAP e in quali casi è preferibile usare LDAP?

La sigla LDAP sta per Lightweight Directory Access Protocol
ovvero: protocollo “leggero” per l’accesso a servizi di directory e,
come il lettore ha colto nella domanda, ha funzioni in parte simili a quelle
di un database.

La differenza sostanziale può essere cercata nella parola “leggero”:
si tratta cioè di un sistema che ha alcune funzioni di un database
ma è specializzato in modo da ottimizzare le prestazioni per
l’uso attraverso la rete in operazioni di lettura, lista e ricerca di
informazioni contenute in un “server” LDAP, ovvero un sistema che risponde
a richieste di operazioni da parte di “clienti”
effettuate mediante il protocollo stabilito.

Un server LDAP consente di effettuare operazioni di inserzione, cancellazione ed
aggiornamento dei dati, come un database generico, ma e’ ottimizzato
per effettuare operazioni di ricerca ed accesso alle informazioni.

In sostanza non differisce poi molto da un sistema di database generico;
vediamo quindi
un po’ più in dettaglio:

  • Le informazioni contenute in un server LDAP devono avere
    una semplice struttura gerarchica. Immaginiamo di voler gestire un
    elenco degli studenti italiani in cui i singoli elementi siano identificati
    da quattro campi:

    1) Provincia, 2) comune, 3) scuola, 4) studente

    Ogni elemento (studente) può essere identificato da quattro elementi,
    ad esempio:

    Mauro Rossi, Liceo Michelangiolo, Scandicci, Firenze.

    La struttura è rigidamente gerarchica: uno studente può
    frequentare una sola scuola, un comune appartiene ad un’unica provincia, ecc.

    Un database classico, invece, deve poter trattare strutture
    di dati in cui le relazioni fra gli elementi
    possono essere variamente articolate.
    Ad esempio già l’organizzazione di una
    biblioteca richiede strutture di dati più complesse:
    un libro può avere un qualunque numero di autori,
    un autore può aver scritto più
    libri ogni volta con coautori diversi, e via complicando.

  • Un server LDAP deve poter servire richieste che pervengono attraverso
    la rete. Le operazioni definite sono quindi studiate per minimizzare
    l’occupazione di banda.

    Inoltre
    deve essere dotato di funzioni di autenticazione e protezione, ovvero
    deve essere protetto da accessi illeciti e deve poter autorizzare o respingere
    richieste di operazioni basandosi sull’identità del cliente, deve
    poter utilizzare canali “sicuri” per la trasmissione dei dati.

  • Un server LDAP deve funzionare indipendentemente dalle caratteristiche
    dei clienti che richiedono il servizio.

Coloro che vogliono approfondire l’argomento, possono consultare un capitolo
della guida “Official Red Hat Linux Reference Guide” disponibile anche
in
traduzione italiana
.