34
Sommario LDAP LDAP: caratteristiche e funzionalit` a Simone Piccardi Truelite Srl Via Monferrato, 6 Firenze www.truelite.it 29 marzo 2012 Simone Piccardi LDAP: caratteristiche e funzionalit` a

LDAP: caratteristiche e funzionalità

Embed Size (px)

Citation preview

Page 1: LDAP: caratteristiche e funzionalità

SommarioLDAP

LDAP: caratteristiche e funzionalita

Simone Piccardi

Truelite SrlVia Monferrato, 6 Firenze

www.truelite.it

29 marzo 2012

Simone Piccardi LDAP: caratteristiche e funzionalita

Page 2: LDAP: caratteristiche e funzionalità

SommarioLDAP

1 LDAPPanoramicaIl modello dei datiIl protocolloEsempi di utilizzo

Simone Piccardi LDAP: caratteristiche e funzionalita

Page 3: LDAP: caratteristiche e funzionalità

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

Page 4: LDAP: caratteristiche e funzionalità

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

Page 5: LDAP: caratteristiche e funzionalità

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

Page 6: LDAP: caratteristiche e funzionalità

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

Page 7: LDAP: caratteristiche e funzionalità

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

Page 8: LDAP: caratteristiche e funzionalità

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

Page 9: LDAP: caratteristiche e funzionalità

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

Page 10: LDAP: caratteristiche e funzionalità

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

Page 11: LDAP: caratteristiche e funzionalità

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

Page 12: LDAP: caratteristiche e funzionalità

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

Page 13: LDAP: caratteristiche e funzionalità

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

Page 14: LDAP: caratteristiche e funzionalità

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

Page 15: LDAP: caratteristiche e funzionalità

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

Page 16: LDAP: caratteristiche e funzionalità

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

Page 17: LDAP: caratteristiche e funzionalità

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

Page 18: LDAP: caratteristiche e funzionalità

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

Page 19: LDAP: caratteristiche e funzionalità

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

Page 20: LDAP: caratteristiche e funzionalità

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

Page 21: LDAP: caratteristiche e funzionalità

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

Page 22: LDAP: caratteristiche e funzionalità

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

Page 23: LDAP: caratteristiche e funzionalità

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

Page 24: LDAP: caratteristiche e funzionalità

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

Page 25: LDAP: caratteristiche e funzionalità

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

Page 26: LDAP: caratteristiche e funzionalità

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

Page 27: LDAP: caratteristiche e funzionalità

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

Page 28: LDAP: caratteristiche e funzionalità

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

Page 29: LDAP: caratteristiche e funzionalità

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

Page 30: LDAP: caratteristiche e funzionalità

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

Page 31: LDAP: caratteristiche e funzionalità

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

Page 32: LDAP: caratteristiche e funzionalità

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

Page 33: LDAP: caratteristiche e funzionalità

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

Page 34: LDAP: caratteristiche e funzionalità

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