View
117
Download
0
Category
Preview:
Citation preview
SommarioLDAP
LDAP: caratteristiche e funzionalita
Simone Piccardi
Truelite SrlVia Monferrato, 6 Firenze
www.truelite.it
29 marzo 2012
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
1 LDAPPanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Cos’e LDAP
un protocollo di comunicazione, indipendente dallapiattaforma hardware e software, per interrogare un directoryserver
un derivato del protocollo DAP (X.500 OSI), considerato altempo troppo complesso per la realizzazione su computer
una rappresentazione di dati in forma di directory checonsente ricerche generiche, ottimizzata per la velocita dirisposta
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Cos’e una directory
un insieme di oggetti e relativi attributi organizzatogerarchicamente, in maniera analoga a file e directory di unfilesystem
non e un database relazionale, gli oggetti possono avere unnumero variabile di attributi e contenere piu valori per lostesso attributo
un directory server e ottimizzato per la velocita di rispostacon un numero molto alto di ricerche rispetto al numero diaggiornamenti
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Come e fatta una directory
I dati sono organizzati in un albero (DIT):
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Com’e fatto un oggetto
Un oggetto espresso in formato LDIF:
dn: uid=piccardi,ou=People,dc=truelite,dc=it
cn: Simone Piccardi
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
loginShell: /bin/bash
uidNumber: 1002
gidNumber: 1002
homeDirectory: /home/piccardi
uid: piccardi
description: IT Manager
o: Truelite
ou: sistemi
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Perche LDAP
un directory server e ottimizzato per la velocita di risposta eper un rapporto molto alto fra ricerche e aggiornamenti
consente una distribuzione dei dati su piu server mantenendouna gerarchia unificata (analogo al DNS)
l’organizzazione gerarchica (ad albero) dei dati e gli oggetticon un numero variabile di attributi e valori multipli possonorisultare piu conformi a certe esigenze
la standardizzazione di alcuni tipi di dato rende piu semplicela loro centralizzazione su LDAP rispetto ad un databaserelazionale.
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Nomenclatura/1
DIT o data information tree, la struttura ad albero su cui sonoorganizzati i dati di un albero LDAP
LDIF o LDAP data interchange format, formato testuale in cuiposso essere rappresentati gli oggetti contenuti in un albero
DN o disintinguished name; e l’identificatore di un oggetto,costituito dalla base di ricerca e da un attributo dello stessoche lo renda unico rispetto a tutti gli oggetti sulla stessa base:
uid=piccardi,dc=truelite,dc=it
RDN o relative disintinguished name e l’attributo che identificaunivocamente un oggetto rispetto ad una data base di ricerca:
uid=piccardi
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Nomenclatura/2
base da solo rappresenta la radice dell’albero dei dati presenti su undirectory server, si chiama invece base di ricerca il puntodell’albero dei dati da cui si fa iniziare la ricerca stessa
scope o profondita, indica quanto scendere nell’albero nell’eseguireuna ricerca, assume i valori base, che non scende oltre la baseindicata, one che scende anche al livello successivo, sub cheesamina tutta la parte di albero sottostante
filtro una espressione che permette di eseguire una selezione (latoserver) degli oggetti restituiti come risultati di una ricerca
schema un file che contiene la definizione dei tipi di oggetti (leobjectclass) e dei relativi attributi (attributes) da poterinserire nel directory server
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Gli schema
uno schema definisce una o piu classi di oggetti (objectclass)che possono far parte di un DIT, specificando quale tipo didati questi contengono (gli attributi)
ogni objectclass ed ogni attributo hanno un nome che deveessere univocamente determinato a livello globale
lo schema definisce le modalita con cui si confrontano i valoridegli attributi (es. case sensitive o case insensitive)
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Gli Object IDentifier (OID)
ogni elemento di uno schema (objectclass o attributo) eidentificato da un OID globalmente unico
se si vuole creare uno schema occorre farsi assegnare dallaIANA un OID, gratis all’indirizzo:http://www.iana.org/cgi-bin/enterprise.pl
esiste la gerarchia di OID 1.1.x che e libera e puo essereutilizzata per sperimentare propri schema
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Le caratteristiche delle objectclass
sono gli elementi di uno schema che definiscono attributiobbligatori e opzionali di un oggetto, sono identificate da unOID e da un nome
un oggetto puo appartenere a diverse objectclass, ottenendo la“somma” degli attributi definiti dalle stesse
si possono definire objectclass derivate di una objectclass dilivello superiore, che ereditano gli attributi definiti da questa ene definiscono di nuovi
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Un esempio di objectclass
La voce che definisce la classe posixAccount:
objectclass ( 1.3.6.1.1.1.2.0 NAME 'posixAccount' SUP top AUXILIARY DESC 'Abstraction of an account with POSIX attributes' MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory ) MAY ( userPassword $ loginShell $ gecos $ description ) )
Attributoobbligatorio
Attributoopzionale
Classegenitrice
Nome(alias dell'OID)
Tipo
OID
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Le caratteristiche degli attributi
definiscono un tipo di dato membro di un oggetto, vengonoidentificati da un OID e da un nome
a seconda di quanto specificato in una objectclass gli attributipossono essere obbligatori o opzionali
un attributo puo comparire una sola o piu volte come membrodi un oggetto
al tipo di dato definito da un attributo si puo associare uncriterio di corrispondenza che indica come controllarne il valore
ogni attributo per cui sia specificato un criterio dicorrispondenza e soggetto alla relativa sintassi
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Un esempio di attributo
La voce che definisce l’attributo homeDirectory
attributetype ( 1.3.6.1.1.1.1.3 NAME 'homeDirectory' DESC 'The absolute path to the home directory' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
OID dellasintassi
Quaficatore deltipo di dato
Tipo di corrispondenza
Nome(alias dell'OID)
Qualificatore dellacorrispondenza
OID
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
I tipi di objectclass
STRUCTURAL: definisce le caratteristiche di base di un oggetto,che puo appartenere ad una sola classe di questo tipo
AUXILIARY: definisce degli attributi ulteriori di un oggetto, asupplemento di quelli di una classe STRUCTURAL; un oggettopuo appartenere a piu classi di questo tipo
ABSTRACT: sono classi speciali usate soltanto per definire ilmodello di dati di LDAP, come top e alias
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
La strutturazione del DIT
ogni DIT deve avere una radice, la cosiddetta base dell’albero,che ogni DN dovra contenere
in genere si usa la stessa struttura dei nomi a dominio con glioggetti di classe domainComponent (ad esempiodc=truelite,dc=it)
e possibile partizionare un DIT su piu server attraverso ilmeccanismo dei referral
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Il partizionamento
Esempio di partizionamento di un DIT su tre server:
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Regole per il partizionamento
Si puo eseguire il partizionamento solo suddividendo un DIT in varirami di albero, vale a dire che:
tutti gli oggetti posti in una partizione devono derivare da unantenato comune
l’antenato comune deve essere presente nella partizione comeradice della partizione stessa
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Tipologie di riferimenti
Ci sono due tipi di riferimenti (referral):
riferimento superiore, quando si esegue una richiesta per unoggetto che sta al di sopra o fuori dall’ambito del DIT gestitodal server (a chi inviare la richiesta e specificato nellaconfigurazione del server)
riferimento inferiore, quando si esegue una richiesta per unoggetto che e stato inserito in una partizione diversa, in talcaso viene usato un oggetto di tipo referral :
dn: ou=sistemi,dc=truelite,dc=it
objectClass: referral
objectClass: extensibleObject
dc: subtree
ref: ldaps://ldap2.truelite.it/ou=sistemi,dc=truelite,dc=it/
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
LDAP come protocollo di rete
prevede la comunicazione fra un client ed un server con unprotocollo standardizzato la prima volta dall’RFC 1777
evolutosi attraverso diverse versioni, quella corrente e la terza(LDAPv3), solo applicazioni obsolete usano la precedenteLDAPv2.
gli e stata riservata la porta 389 per la comunicazione inchiaro e la porta 636 per la comunicazione su SSL
sono definite le rispettive URL generalizzateldap://ldap.server.ex/ e ldaps://ldap.server.ex/
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Le sessioni su LDAP
Una sessione di lavoro con LDAP e suddivisa in tre fasi
apertura della connessione (e collegamento)
esecuzione di una o piu richieste
chiusura della connessione
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
L’apertura della connessione
E suddivisa in due fasi distinte, eseguite in sequenza:
connessione al server : puo essere effettuata in chiaro, su SSL,e con TLS su una sessione in chiaro, ad esempio per SSL:
ldapsearch -x -H ldaps://ldap.truelite.it
collegamento al server : consiste nell’autenticazione presso ilserver, ad esempio:
ldapsearch -x -D"cn=admin,dc=truelite,dc=it" -w pwdsegreta
(il collegamento puo essere anche fatto in forma anonima, eseguendolo senzainviare utente e password)
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Esecuzione delle richieste
il client invia una ricerca, specificando la base della stessa, uneventuale filtro, e quali attributi cercare; ad esempio:
ldapsearch -x ’(uid=piccardi)’ homeDirectory loginShell
se non si specifica una base di ricerca viene usata la radicedell’albero
il server restituisce i risultati corrispondenti al filtro di ricercasempre una voce alla volta
vengono restituiti solo gli attributi accessibili all’utente perconto del quale si e eseguito il collegamento
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Gestione della connessione
una volta stabilita, una connessione viene mantenuta attiva epuo essere utilizzata per eseguire piu ricerche (anche inmaniera concorrente)
in caso di piu ricerche attive sulla stessa connessione i risultativengono restituiti in maniera asincrona (ma restano associatia ciascuna ricerca)
completate le operazioni la chiusura avviene in due fasi, loscollegamento dal server (unbind) e la chiusura dellaconnessione di rete
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Struttura di una richiesta
Comprende sempre un filtro ed una lista di attributi:
se non viene specificato nessun filtro il default e(objectclass=*) che indica tutti gli oggetti presentinell’albero
se non viene richiesto nessun attributo vengono restituiti tuttiquelli leggibili (a seconda dei permessi assegnati all’utente concui si e collegati)
puo essere indicata una profondita (scope) della ricerca
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Struttura di un filtro
Sempre nella forma di una espressione fra parentesi tonde
per gli attributi si possono usare le condizioni “=”, “~=”, “>=”,“<=” posto che ci siano i rispettivi criteri di corrispondenza
si puo selezionare per tipo di oggetto invece che per valoredegli attributi con objectclass=nomeclasse
e supportato il carattere jolly “*” per i dati che prevedonovalori in forma di stringhe
piu espressioni possono essere combinate con gli operatori “|”(OR), “&” (AND) o negate con“!” (NOT).
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Un esempio concreto
Una ricerca eseguita attraverso il programma ldapsearch:
ldapsearch -x -H ldaps://ldap.truelite.it \ -D "cn=admin,dc=truelite,dc=it" -w passwordsegreta \ -b "ou=people,dc=truelite,dc=it" -s sub \ '(|(uid=a*)(uid=b*))' homeDirectory loginShell
Filtro diricerca
Lista degliattributi
Base dellaricerca
Utente per ilcollegamento
Profonditàdella ricerca
URL del server
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Rubrica centralizzata
Con la objectclass organizationalPerson su puo centralizzareun indirizzario con dati come come:
Nome e Cognome
Istituzione
Indirizzo e telefono
email e homepage
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Autenticazioni utenti Unix
Con le objectclass posixAccount, shadowAccount e posixGroup
per centralizzare i dati degli utenti e dei gruppi come:
Username e UID
Password (e relative informazioni di scadenza)
Gruppi e GID
Dati dell’account (home directory, shell, ...)
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Autenticazioni utenti
Una volta inseriti gli i dati degli utenti unix su LDAP questipossono essere riusati anche per:
Pagine web ad accesso autenticato (Apache)
Autenticazione utenti per proxy web (Squid)
Autenticazione utenti per IMAP/POP (Courier, Dovecot)
Autenticazione utenti per RADIUS (FreeRadius)
Autenticazione applicazioni web (Drupal, Wordpress, ecc.)
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Autenticazioni utenti Windows
Se alle precedenti per unix si aggiungono le objectclass distribuiteda Samba si possono autenticare in maniera centralizzata anche gliutenti Windows e gestire un PDC con informazioni come:
Password in formato Windows (e relative informazioni)
Macchine nel dominio
Gruppi Windows
Dati dell’account
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Gestione centralizzata informazioni
Possono essere centralizzati su LDAP informazioni generiche,facendo riferimento a delle objectclass specifiche:
Domini e indirizzi di posta elettronica
Dati delle zone di un dominio DNS
Attributi di un KDC Kerberos
Ed in generale qualunque cosa sia definita in uno “schema”adeguato alle proprie esigenze.
Simone Piccardi LDAP: caratteristiche e funzionalita
SommarioLDAP
PanoramicaIl modello dei datiIl protocolloEsempi di utilizzo
Alcuni link interessanti
http://www.openldap.org
http://labs.truelite.it/truedoc
http://www.wikipedia.org/wiki/LDAP
Simone Piccardi LDAP: caratteristiche e funzionalita
Recommended