Directory Directory cose e un database distribuito e
Directory • Directory cos’e’? • e’ un database distribuito • e’ uno standard sviluppato da – ISO – ITU • Directory qual’e’ il suo scopo? • fornire informazioni su oggetti • fornire meccanismi per accedere alle informazioni • Directory com’e’ usato? • consultazione • distribuzione 1
Directory • il Directory e’ un db distribuito – molte letture e poche scritture – aggiornamento nottetempo (*) – no rollback – ammesse inconsistenze – architettura di tipo gerarchico 2
Directory • Per esempio: un directory puo’ contenere: – indirizzi e-mail, – user-authentication (login, passw) – network-security (access right), – sistemi in rete, – servizi in rete • Queste informazioni possono essere accessibili alle applicazioni Sw oppure possono essere visibili agli utenti. 3
Directory - organizzazione • Quattro aspetti: – aspetto informativo • descrive l’organizzazione dei dati – aspetto funzionale • descrive le interazioni tra i vari componenti del Directory – aspetto organizzativo • descrive la politica su cui si basano le relazioni tra le varie entità e le informazioni che esse gestiscono – aspetto sicurezza • evidenzia gli aspetti di autenticazione ed autorizzazione 4
Aspetto informativo • DIB (Directory Information Base) Contiene tutte le informazioni su gli oggetti del Directory • Ogni oggetto è rappresentato da una entry • Ogni entry contiene un insieme di informazioni relative all'oggetto che rappresenta • le informazioni vengono descritte in termini di attributi dell’entry • ogni attributo è composto da un tipo e uno o più valori 5
Aspetto informativo Entry attributo Attributo tipo valori valore . . attributo . valore 6
Aspetto informativo • Le entry sono organizzate sotto forma di albero: il Directory Information Tree (DIT) • Ogni entry del DIT è univocamente identificata dal suo DN (Distinguished Name) • Il DN di una entry si determina traversando il DIT a partire dalla entry root fino a raggiungere l’entry desiderata • Ogni entry ha anche associato un attributo con un singolo valore, chiamato RDN (Relative Distinguished Name) • DN è la concatenazione degli RDN 7 delle entry attraversate
RDN RDN 8
Directory • Niente di trascendentale. • Molti usano fanno ricorso al directory senza neanche rendersene conto: – www. company. com • resolved via the Domain Name System – finger someone@host – email someone@host • host e’ risolto via DNS, poi someone e’ risolto localmente oppure attraverso directory di contesto piu’ ampio. 9
Object Name : hosts Directory : org_dir. next. com. Owner : nishost. next. com. Group : admin. next. com. Access Rights : r---rmcdr--Time to Live : 12: 0: 0 Creation Time : Tue Feb 2 18: 39: 43 1999 Mod. Time : Tue Feb 2 18: 39: 43 1999 Object Type : TABLE Table Type : hosts_tbl Number of Columns : 4 Character Separator : Search Path : Columns : [0] Name : cname Attributes : (SEARCHABLE, TEXTUAL DATA, CASE INSENSITIVE) Access Rights : --------[1] Name : name Attributes : (SEARCHABLE, TEXTUAL DATA, CASE INSENSITIVE) Access Rights : --------[2] Name : addr Attributes : (SEARCHABLE, TEXTUAL DATA, CASE INSENSITIVE) Access Rights : --------[3] Name : comment Attributes : (TEXTUAL DATA) 10 Access Rights : --------
Object Name : passwd …………. . Object Type : TABLE Table Type : passwd_tbl ……………. . Columns : [0] Name : name Attributes : (SEARCHABLE, TEXTUAL DATA, CASE SENSITIVE) Access Rights : r---rmcdr--[1] Name : passwd Attributes : (TEXTUAL DATA) Access Rights : r---rmcdr--[2] Name : uid Attributes : (SEARCHABLE, TEXTUAL DATA, CASE SENSITIVE) Access Rights : r---rmcdr--[3] Name : gid Attributes : (TEXTUAL DATA) Access Rights : r---rmcdr--[4] Name : gcos Attributes : (TEXTUAL DATA) Access Rights : r---rmcdr--[5] Name : home Attributes : (TEXTUAL DATA) Access Rights : r---rmcdr--[6] Name : shell Attributes : (TEXTUAL DATA) 11 Access Rights : r---rmcdr---
Directory - Architettura client-server • X 500 definisce il protocollo di accesso al directory (DAP) quando i client contattano i server • il client chiede e riceve risposte da uno o piu’server • il DAP che controlla la comunicazione clientserver 12
Directory - le componenti • Directory User Agent (DUA) – fornisce funzionalita’ standard che supportano l’utente • nelle ricerche su uno o piu’ directory • nel recupero delle informazioni • nella presentazione dei risultati – comunica con il Directory per conto dell'utente e nasconde all'utente stesso i dettagli dell'organizzazione interna del Directory 13
Directory - le componenti • Directory System Agent (DSA) – e’ il database dove le informazioni del directory sono memorizzate • db gerarchico • update giornaliero 14
Directory - le componenti • Directory Protocols – rappresentano le regole che governano la comunicazione tra • directory client (DUA) e uno o piu’ directory servers (DSA) – Directory Access Protocol (DAP), e’ usato per controllare la comunicazione tra DUA e DSA. • due o piu’ directory servers (DSA) – Directory system Protocol (DSP), fa si che l’utente possa accedere le informazioni nel directory senza sapere dove sono esse sono esattamente localizzate 15
Utente Directory DSA C request DUA DSA A reply 1 2 3 4 DSA B 16
Aspetto organizzativo • “ descrive la politica su cui si basano le relazioni tra le varie entità e le informazioni che esse gestiscono” – definisce la mappatura delle porzioni di DIT sui DSA – definisce come i DSA possono essere visti dall’esterno 17
Aspetto Sicurezza • politica di autenticazione definisce i meccanismi per identificare DSA e utenti • tre tipi di autenticazione • nessuna – accessi liberi • debole – accesso regolato da password criptata • forte – accesso regolato da coppie di chiavi pubblica/privata • il meccanismo più utilizzato: • access control list 18
Access list: example • access to dn=". *, o=U of M, c=US" • by * search • access to dn=". *, c=US" • by * read • accesso in Read garantito alle entry del sottoalbero c=US, eccetto per le entry nei sottoalberi • "o=University of Michigan, • c=US" subtree, • alle quali e’ garantito solo la Search 19
X 509 • X 509 definisce lo standard del formato dei certificati (Chiavi pubbliche). • X. 509 e’ una raccomandazione dell’ITU • I certificati X 509 sono utilizzati per la costruzine del SSL (Secure Socket Layer) 20
SSL • Secure Socket Layer – e’ un protocollo che fornisce sicurezza nelle comunicazioni su Internet. – Permette ad applicazioni client/server di comunicare in una modalita’ che previene – origliamento dei messaggi – manomissione dei messaggi – falsificazione dei messaggi 21
SSL • Secure Socket Layer protocol e’ composto di 2 strati – SSL Record protocol • si occupa di incapsulare i livelli alti dello stack OSI – SSL Handshake protocol • permette al server ed al client di – autenticare l’un l’altro – negoziare algoritmi di encription e le chiavi criptate • prima ancora che l’application protocol trasmetta e riceva i dati. 22
SSL • Secure Socket Layer protocol fornisce una comunicazione sicura, basata su 3 principi: • La connessione e’ privata: la cifratura dei messaggi e’ effettuata dopo il processo di Handshake. • l’identita’ degli interlocutori e’ autenticata usando il meccanismo di chiavi pubbliche/privata. • La connessione e’ affidabile: il trasporto dei messaggi include meccanismi di check di integrita’. 23
SSL • Secure Sockets (SSL) are inserted at the transport layer 24
Certificati e Autorità di Certificazione (CA) • Le chiavi pubbliche sono distribuite sotto forma di certificati firmati da una Autorità di Certificazione (CA) • chi usa il certificato deve essere certo dell’autenticità della chiave pubblica della CA Nome bblica u Chiave P alidità di v Periodo Firma Elettronica della CA tivo della a ic if t n e d I. . . CA 25
LDAP • Lightweight Directory Access Protocol, • LDAP e’ un protocollo per accedere alle informazioni dei directory • LDAP e’ basato sugli standard contenuti in X 500 ma e’ significativamente piu’ semplice. • Contrariamente a X 500 supporta TCP/IP. Necessario per accedere al mondo Internet. • Poiche’ e’ una semplificazione di X 500 e’ anche detto X 500 -Lite. • Lavorando con TCP/IP permette una larghissima diffusione. 26
Directory & X 509 * Cos’e’ LDAP * • LDAP - Lightweight Directory Access Protocol. • E’ uno standard Internet Database • E’ un modo di usare i database X. 500 sullo stack TCP/I, rendendolo utilizzabile su Internet. 27
- Slides: 27