Click here to load reader

LDAP: caratteristiche e funzionalità

  • View
    108

  • Download
    0

Embed Size (px)

Text of LDAP: caratteristiche e funzionalità

  1. 1. 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
  2. 2. Sommario LDAP 1 LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Simone Piccardi LDAP: caratteristiche e funzionalit`a
  3. 3. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Cos`e LDAP un protocollo di comunicazione, indipendente dalla piattaforma hardware e software, per interrogare un directory server un derivato del protocollo DAP (X.500 OSI), considerato al tempo troppo complesso per la realizzazione su computer una rappresentazione di dati in forma di directory che consente ricerche generiche, ottimizzata per la velocit`a di risposta Simone Piccardi LDAP: caratteristiche e funzionalit`a
  4. 4. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Cos`e una directory un insieme di oggetti e relativi attributi organizzato gerarchicamente, in maniera analoga a le e directory di un lesystem non `e un database relazionale, gli oggetti possono avere un numero variabile di attributi e contenere pi`u valori per lo stesso attributo un directory server `e ottimizzato per la velocit`a di risposta con un numero molto alto di ricerche rispetto al numero di aggiornamenti Simone Piccardi LDAP: caratteristiche e funzionalit`a
  5. 5. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Come `e fatta una directory I dati sono organizzati in un albero (DIT): Simone Piccardi LDAP: caratteristiche e funzionalit`a
  6. 6. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi 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 funzionalit`a
  7. 7. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Perche LDAP un directory server `e ottimizzato per la velocit`a di risposta e per un rapporto molto alto fra ricerche e aggiornamenti consente una distribuzione dei dati su pi`u server mantenendo una gerarchia unicata (analogo al DNS) lorganizzazione gerarchica (ad albero) dei dati e gli oggetti con un numero variabile di attributi e valori multipli possono risultare pi`u conformi a certe esigenze la standardizzazione di alcuni tipi di dato rende pi`u semplice la loro centralizzazione su LDAP rispetto ad un database relazionale. Simone Piccardi LDAP: caratteristiche e funzionalit`a
  8. 8. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Nomenclatura/1 DIT o data information tree, la struttura ad albero su cui sono organizzati i dati di un albero LDAP LDIF o LDAP data interchange format, formato testuale in cui posso essere rappresentati gli oggetti contenuti in un albero DN o disintinguished name; `e lidenticatore di un oggetto, costituito dalla base di ricerca e da un attributo dello stesso che lo renda unico rispetto a tutti gli oggetti sulla stessa base: uid=piccardi,dc=truelite,dc=it RDN o relative disintinguished name `e lattributo che identica univocamente un oggetto rispetto ad una data base di ricerca: uid=piccardi Simone Piccardi LDAP: caratteristiche e funzionalit`a
  9. 9. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Nomenclatura/2 base da solo rappresenta la radice dellalbero dei dati presenti su un directory server, si chiama invece base di ricerca il punto dellalbero dei dati da cui si fa iniziare la ricerca stessa scope o profondit`a, indica quanto scendere nellalbero nelleseguire una ricerca, assume i valori base, che non scende oltre la base indicata, one che scende anche al livello successivo, sub che esamina tutta la parte di albero sottostante ltro una espressione che permette di eseguire una selezione (lato server) degli oggetti restituiti come risultati di una ricerca schema un le che contiene la denizione dei tipi di oggetti (le objectclass) e dei relativi attributi (attributes) da poter inserire nel directory server Simone Piccardi LDAP: caratteristiche e funzionalit`a
  10. 10. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Gli schema uno schema denisce una o pi`u classi di oggetti (objectclass) che possono far parte di un DIT, specicando quale tipo di dati questi contengono (gli attributi) ogni objectclass ed ogni attributo hanno un nome che deve essere univocamente determinato a livello globale lo schema denisce le modalit`a con cui si confrontano i valori degli attributi (es. case sensitive o case insensitive) Simone Piccardi LDAP: caratteristiche e funzionalit`a
  11. 11. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Gli Object IDentier (OID) ogni elemento di uno schema (objectclass o attributo) `e identicato da un OID globalmente unico se si vuole creare uno schema occorre farsi assegnare dalla IANA un OID, gratis allindirizzo: http://www.iana.org/cgi-bin/enterprise.pl esiste la gerarchia di OID 1.1.x che `e libera e pu`o essere utilizzata per sperimentare propri schema Simone Piccardi LDAP: caratteristiche e funzionalit`a
  12. 12. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Le caratteristiche delle objectclass sono gli elementi di uno schema che deniscono attributi obbligatori e opzionali di un oggetto, sono identicate da un OID e da un nome un oggetto pu`o appartenere a diverse objectclass, ottenendo la somma degli attributi deniti dalle stesse si possono denire objectclass derivate di una objectclass di livello superiore, che ereditano gli attributi deniti da questa e ne deniscono di nuovi Simone Piccardi LDAP: caratteristiche e funzionalit`a
  13. 13. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Un esempio di objectclass La voce che denisce 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 ) ) Attributo obbligatorio Attributo opzionale Classe genitrice Nome (alias dell'OID) Tipo OID Simone Piccardi LDAP: caratteristiche e funzionalit`a
  14. 14. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Le caratteristiche degli attributi deniscono un tipo di dato membro di un oggetto, vengono identicati da un OID e da un nome a seconda di quanto specicato in una objectclass gli attributi possono essere obbligatori o opzionali un attributo pu`o comparire una sola o pi`u volte come membro di un oggetto al tipo di dato denito da un attributo si pu`o associare un criterio di corrispondenza che indica come controllarne il valore ogni attributo per cui sia specicato un criterio di corrispondenza `e soggetto alla relativa sintassi Simone Piccardi LDAP: caratteristiche e funzionalit`a
  15. 15. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Un esempio di attributo La voce che denisce lattributo 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 della sintassi Quacatore del tipo di dato Tipo di corrispondenza Nome (alias dell'OID) Qualicatore della corrispondenza OID Simone Piccardi LDAP: caratteristiche e funzionalit`a
  16. 16. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo I tipi di objectclass STRUCTURAL: denisce le caratteristiche di base di un oggetto, che pu`o appartenere ad una sola classe di questo tipo AUXILIARY: denisce degli attributi ulteriori di un oggetto, a supplemento di quelli di una classe STRUCTURAL; un oggetto pu`o appartenere a pi`u classi di questo tipo ABSTRACT: sono classi speciali usate soltanto per denire il modello di dati di LDAP, come top e alias Simone Piccardi LDAP: caratteristiche e funzionalit`a
  17. 17. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo La strutturazione del DIT ogni DIT deve avere una radice, la cosiddetta base dellalbero, che ogni DN dovr`a contenere in genere si usa la stessa struttura dei nomi a dominio con gli oggetti di classe domainComponent (ad esempio dc=truelite,dc=it) `e possibile partizionare un DIT su pi`u server attraverso il meccanismo dei referral Simone Piccardi LDAP: caratteristiche e funzionalit`a
  18. 18. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Il partizionamento Esempio di partizionamento di un DIT su tre server: Simone Piccardi LDAP: caratteristiche e funzionalit`a
  19. 19. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Regole per il partizionamento Si pu`o eseguire il partizionamento solo suddividendo un DIT in vari rami di albero, vale a dire che: tutti gli oggetti posti in una partizione devono derivare da un antenato comune lantenato comune deve essere presente nella partizione come radice della partizione stessa Simone Piccardi LDAP: caratteristiche e funzionalit`a
  20. 20. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Tipologie di riferimenti Ci sono due tipi di riferimenti (referral): riferimento superiore, quando si esegue una richiesta per un oggetto che sta al di sopra o fuori dallambito del DIT gestito dal server (a chi inviare la richiesta `e specicato nella congurazione del server) riferimento inferiore, quando si esegue una richiesta per un oggetto che `e stato inserito in una partizione diversa, in tal caso 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 funzionalit`a
  21. 21. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo LDAP come protocollo di rete prevede la comunicazione fra un client ed un server con un protocollo standardizzato la prima volta dallRFC 1777 evolutosi attraverso diverse versioni, quella corrente `e la terza (LDAPv3), solo applicazioni obsolete usano la precedente LDAPv2. gli `e stata riservata la porta 389 per la comunicazione in chiaro e la porta 636 per la comunicazione su SSL sono denite le rispettive URL generalizzate ldap://ldap.server.ex/ e ldaps://ldap.server.ex/ Simone Piccardi LDAP: caratteristiche e funzionalit`a
  22. 22. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi 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 pi`u richieste chiusura della connessione Simone Piccardi LDAP: caratteristiche e funzionalit`a
  23. 23. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Lapertura della connessione E suddivisa in due fasi distinte, eseguite in sequenza: connessione al server: pu`o essere eettuata 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 nellautenticazione presso il server, ad esempio: ldapsearch -x -D"cn=admin,dc=truelite,dc=it" -w pwdsegreta (il collegamento pu`o essere anche fatto in forma anonima, eseguendolo senza inviare utente e password) Simone Piccardi LDAP: caratteristiche e funzionalit`a
  24. 24. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Esecuzione delle richieste il client invia una ricerca, specicando la base della stessa, un eventuale ltro, e quali attributi cercare; ad esempio: ldapsearch -x (uid=piccardi) homeDirectory loginShell se non si specica una base di ricerca viene usata la radice dellalbero il server restituisce i risultati corrispondenti al ltro di ricerca sempre una voce alla volta vengono restituiti solo gli attributi accessibili allutente per conto del quale si `e eseguito il collegamento Simone Piccardi LDAP: caratteristiche e funzionalit`a
  25. 25. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Gestione della connessione una volta stabilita, una connessione viene mantenuta attiva e pu`o essere utilizzata per eseguire pi`u ricerche (anche in maniera concorrente) in caso di pi`u ricerche attive sulla stessa connessione i risultati vengono restituiti in maniera asincrona (ma restano associati a ciascuna ricerca) completate le operazioni la chiusura avviene in due fasi, lo scollegamento dal server (unbind) e la chiusura della connessione di rete Simone Piccardi LDAP: caratteristiche e funzionalit`a
  26. 26. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Struttura di una richiesta Comprende sempre un ltro ed una lista di attributi: se non viene specicato nessun ltro il default `e (objectclass=*) che indica tutti gli oggetti presenti nellalbero se non viene richiesto nessun attributo vengono restituiti tutti quelli leggibili (a seconda dei permessi assegnati allutente con cui si `e collegati) pu`o essere indicata una profondit`a (scope) della ricerca Simone Piccardi LDAP: caratteristiche e funzionalit`a
  27. 27. Sommario LDAP Panoramica Il modello dei dati Il protocollo Esempi di utilizzo Struttura di un ltro Sempre nella forma di una espressione fra parentesi tonde per gli attributi si possono usare le condizioni =, ~=, >=,