Sistemi di autenticazione Protocollo LDAP



Documenti analoghi
LDAP. Corso di Amministrazione di Reti AA 2003/2004. Fabio Bucciarelli. L'esigenza

Modello sociale. Il resto del mondo. Io Il MIO gruppo (di amici)

Sistemi di autenticazione Protocollo LDAP

LDAP: introduzione teorica

Autenticazione con LDAP

Active Directory. Installatore LAN. Progetto per le classi V del corso di Informatica

Sistemi avanzati di gestione dei Sistemi Informativi

Corso di Amministrazione di Reti A.A. 2002/2003

Corso di Griglie e Sistemi di Elaborazione Ubiqui. Esercitazione su Globus Toolkit 2: LDAP, MDS

Gestione centralizzata delle utenze tramite LDAP. Giuseppe Lo Biondo INFN-MI Firenze, 19 Settembre 2000

JNDI. Massimo Merro Programmazione di Rete 214 / 229

Corso di recupero di sistemi Lezione 8

LDAP - sta brutta bestia!

CdL MAGISTRALE in INFORMATICA

Problema del naming. Modello di Naming

Groups vs Organizational Units. A cura di Roberto Morleo

Esperienze di servizi di rete basati su directory

Reti di Calcolatori. Il Livello delle Applicazioni

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

SISTEMI OPERATIVI DISTRIBUITI

Configurazione centralizzata Il protocollo LDAP

Replica di Active Directory. Orazio Battaglia

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Lezione 9. Applicazioni tradizionali

Mac Application Manager 1.3 (SOLO PER TIGER)

URI. Introduzione. Pag. 1

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Sistemi avanzati di gestione dei Sistemi Informativi

ARP (Address Resolution Protocol)

Indice. Indice V. Introduzione... XI

Capitolo 4 Pianificazione e Sviluppo di Web Part

Network Services Location Manager. Guida per amministratori di rete

Meccanismi di autenticazione sicura. Paolo Amendola GARR-CERT

Caratteristiche principali. Contesti di utilizzo

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

FTP. Appunti a cura del prof. ing. Mario Catalano

Naming nei Sistemi Distribuiti

Naming nei Sistemi Distribuiti

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Utilizzo del server LDAP locale per la sincronizzazione della base utenti e della GAL

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

Approfondimenti. Contenuti

Agent, porte, connettività e reti L agent di Kaseya utilizza la porta 5721 per comunicare con il server, ma che tipo di porta è?...

TCP/IP: INDIRIZZI IP SIMBOLICI

Reti di Telecomunicazione Lezione 7

Specifiche Tecnico-Funzionali

LABORATORIO DI TELEMATICA

Introduzione ad Active Directory. Orazio Battaglia

Reti di Telecomunicazione Lezione 6

Dispensa di database Access

IPSec VPN Client VPN vs serie ZyWALL con PSK e Certificati digitali

Gruppi, Condivisioni e Permessi. Orazio Battaglia

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Reti e Domini Windows Corso di Amministrazione di Reti A.A. 2002/2003

TeamPortal. Servizi integrati con ambienti Gestionali

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Introduzione ai Web Services Alberto Polzonetti

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

Sistemi Operativi di Rete. Sistemi Operativi di rete. Sistemi Operativi di rete

PARTE 4 La Macchina Software

Maschere di sottorete a lunghezza variabile

Database e reti. Piero Gallo Pasquale Sirsi

Software per Helpdesk

Il Web Server e il protocollo HTTP

Il Protocollo HTTP e la programmazione di estensioni Web

System & Network Integrator. Rap 3 : suite di Identity & Access Management

Il Software. Il software del PC. Il BIOS

Organizzazione degli archivi

Transmission Control Protocol

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 3 a lezione a.a. 2009/2010 Francesco Fontanella

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

FPf per Windows 3.1. Guida all uso

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Informatica DR KLOE Calcolo

Comprendere cosa è Internet e sapere quali sono i suoi principali impieghi. 25/09/2011 prof. Antonio Santoro

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini

Capitolo Quarto...2 Le direttive di assemblaggio di ASM Premessa Program Location Counter e direttiva ORG

Sistemi informativi secondo prospettive combinate

19. LA PROGRAMMAZIONE LATO SERVER

lem logic enterprise manager

Progetto di Applicazioni Software

KNOPPIX in un ambiente Windows 2003 R2.

ARP e instradamento IP

Reti diverse: la soluzione nativa

Le Reti Informatiche

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Interconnessione di reti

Registratori di Cassa

INFN Security Workshop Firenze Settembre IMHO e IMP: una interfaccia Web sicura per la posta elettronica. Raffaele.Cicchese@pr.infn.

Reti diverse: la soluzione nativa

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Software di base. Corso di Fondamenti di Informatica

Progettaz. e sviluppo Data Base

GROUP POLICY MANAGEMENT CONSOLE (ACTIVE DIRECTORY)

Sistemi Informativi Distribuiti

Intel One Boot Flash Update Utility Guida dell utente

Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002

Software di gestione della stampante

Transcript:

Laboratorio di Amministrazione di Sistemi L-A A.A. 2005/2006 Sistemi di autenticazione Protocollo LDAP Materiale preparato da Fabio Bucciarelli - DEIS L'esigenza Un sistema correttamente funzionante dipende da parecchi file di configurazione Ma... In una rete possono esserci centinaia di macchine che hanno gli stessi file di configurazione Aggiungere un utente,aggiungere un host, vuol dire cambiare centinaia di file di configurazione Allora... Nasce l'esigenza di condividere queste informazioni tra sistemi diversi 2

L'esigenza Ancora... L'approccio a file diventa inefficiente Occorre trovare un database centralizzato e in particolare un servizio centralizzato di autenticazione Nel corso del tempo sono state pensate diverse soluzioni: Nis Nis gateway Pam Ldap 3 NIS Basat o su RPC Rilasciato da SUN negli anni '80 Uno o più server su cui gira ypbind Nei file passwd/ shadow/ group una linea con + che indica al sistema operativo che il file non contiene tutto, ma che occorre interrogare NIS Pr ob l emi: complicato, non trasparente alle applicazioni, non esportabile fuori da unix, NON FLESSIBILE Oramai solo storico 4

NIS gateway Separazione fra le sorgenti di informazione e le altre componenti del sistema Il file / etc/ nsswitch.conf indica per ogni risorsa le fonti da consultareeconcheordine Es. passwd: files nis ldap Group: files ldap hosts: ldap [NOTFOUND=return] dns files 5 NSS <entry> ::= <database> ":"[<source> [< criteria> ]]* < criteria> ::= "[" <criterion>+ "]" <criterion> ::= <status> "=" <action> <status> ::= "success" "notfound" "unavail" "tryagain" <action> ::= "return" "continue" <action> ::= "return" "continue" "forever" <n> <n> ::= 0...MAX_INT Nascita di un'interfaccia locale standard La fonte xxx è implementata dalla libreria nssxxx.o: chiunque può scrivere la propria fonte 6

PAM (Pluggable Authentication Modules) E' una serie di shared library che permettono all'amministratore di scegliere quali applicazioni usare per l'autenticazione Scopo di PAM è di separare lo strato di software applicativo da quello dagli appropriati schemi di autenticazione Le applicazioni che devono autenticare un utente possono usare la libreria di funzioni fornita con PAM Chiunque può scrivere i propri moduli PAM La configurazione di PAM attraverso il file / etc/ pam.d oppure una serie di file di configurazione nella directory / etc/ pam.d 7 Un altro passo PAMrisolveiproblemidistandardizzazionediinterfaccein locale. Non risolve il problema della complessità di una gestione per migliaia di utenti Primo approccio: Scrivere una libreria nss o un modulo PAM per accedere ad un database Problemi: Ogni sistemista scrive la sue librerie: incompatibilità, difficile testabilità e manutenzione 8

Un altro passo Secondo approccio Standardizzare il protocollo di accesso ad una base dati standardizzata LDAP e directory service Utilizzo di nssldap Utilizzo di pam_ldap 9 EperquelcheriguardaWindows? A partire da Windows 2000 è presente la tecnologia Active Directory Alla base della tecnologia Active Directory c'è un directory server Active Directory contiene tutte le informazioni riguardanti la macchina stessa e l'unità organizzativa di cui fa parte Si apre uno scenario interessante: poter gestire tutte le informazioni da un'unica interfaccia che utilizzi il protocollo LDAP In ambienti misti Unix / Windows è possibile avere un repository centralizzato e comune degli utenti Es: i nostri laboratori 10

LDAP Cosa è directory service Lightweight Directory Access Protocol Mutuata da X.500 (OSI) Directory Services (RFC 1777) Molte letture poche scritture (elenco del telefono) Né transizioni né rollback Replica dei dati 11 LDAP Architettura master slave Consistenza fra le copie lasca Possibilità di avere amministratori locali Gli oggetti di dati sono relativamente piccoli L'informazione è basata su attributi La ricerca è un'operazione comune 12

LDAP DBI & DIT La base di dati della DIR è detta DBI (Directory Information Base) DBI è una serie di entries (o objects) Le entries consistono in una serie di attributes Gliattributiconsistonoditypes con (molteplici) values Ogni entry ha un DN (Distinguish name) Le entries sono gerarchicamente legate. La gerarchia è chiamata DIT (Dir Information Tree). Una DBI è rappresentata in un DIT. 13 LDAP DBI DIT entry entry entry entry entry entry entry entry entry entry 14

Dir Name Space 15 Dir Name Space Scopi Rif erim ent o ai dat i Organizzazione dei dati Partizionamento dei dati Replica dei dati Controllo degli accessi Supporto alle applicazioni 16

Dir Name Space Flat namespace Hierarchical namespace 17 Confronto con un file system / dc= com usr lib dc= pisoftware dc= sun local X11R6 ou=people ou=group bin ou=sysadmin ssh uid= bmarshal Nel FS esplorazione dalla radice, nella DIR dalle foglie 18

LDAP Distinguished Name Elenco degli attributi separati da virgole a partire dal fondo DN = BDN (Base DN) + RDN (Relative DN) dc= com dc= pisoftware dc= sun ou=people ou=people Stes s o RDN 19 DN: esempio DN: uid=bmarshal,ou=people,dc=psoftware,dc=com RDN: uid= bmarshal BDN: ou= People,dc= psoftware,dc= com Ogni RDN distingue le entries fra i pari In ogni BDN ogni RDN è unico: ogni entries ha un DN unico Ogni RDN può essere composto dalla concatenazione di più attributi (per renderlo unico) In ogni entry è specificato quali attributi ne costituiscono il RDN 20

Il protocollo LDAP Usa il protocollo TCP/ IP in una maniera molto efficiente Esempio di interazione client / server Il client si connette al server e richiede un'operazione di bind Il server restituisce un codice di successo o chiude la connessione Il client richiede un'operazione di search (o un'altra operazione) Il server restituisce un messaggio con le entry trovate o niente se niente è stato trovato Il server restituisce un codice a seconda del risultato dell'operazione Il client richiede un'operazione di unbind Il server restituisce il risultato dell'operazione di unbind e 21 L'operazione di search Consiste di una richiesta del client, di un lavoro da parte del server e di un risultato Alcuni parametri specificano cosa cercare e come cercare Base DN Bind DN Uno scope Filtro base one subtree 22

Filtri (RFC 1558) Selezione sugli attributi < filter> ::= '(' < filtercom p > ')' <filtercomp> ::= <and> <or> <not> <item> < an d > ::= '&' < filterlist> < or> ::= ' ' < filterlist> < n ot> ::= '!' < filter> < filterlist> ::= < filter> < filter> < filterlist> <item> ::= <simple> <present> <substring> <simple> ::= <attr> <filtertype> <value> <filtertype> ::= <equal> <approx> <greater> <less> < eq u al> ::= '= ' <approx> ::= '~=' <greater> ::= '>=' <less> ::= '<=' <present> ::= <attr> '=*' <substring> ::= <attr> '=' <initial> <any> <final> <initial> ::= NULL <value> <any> ::= '*' <starval> < starval> ::= NULL < value> '*' < starval> < final> ::= NULL < value> 23 Filt ri Esempi di filtri (cn= Babs Jensen) (!(cn= Tim Howes)) (& (objectclass= Person) ( (sn= Jensen)(cn= Babs J*) ) ) (o= univ*of*m ich*) (objectclass= posixaccount) (&( (uid= jack)(uid= jill))(objectclass= posixaccount)) 24

Attributi in gerarchia Sono possibili gerarchie di attributi Telefono Telefono Dipartimento Telefono Ufficio più specifico In risposta ad una interrogazione vengono restituiti tutti gli attributi più specifici (oltre a quello richiesto) Telefono Diretto 25 Schem a L'insieme delle regole che descrivono i dati immagazzinati L'uso di schemi rende chiaro la struttura delle Dir Per ogni entries (object) lo schema indica la regola da seguire per memorizzare i dati indicando: Attributi indispensabili / facoltativi Come comparare gli attributi Il tipo di dato memorizzabile in un attributo 26

Schem a Il modo per descrivere le parti del sistema è detto schema e la sintassi usata è ASN1 Schema definition DIT schema DIT element DIT usa Object Clas s Attribute Type regole per Entrie s (Objects ) Attribute dipende da Attribute Sy ntax Value 27 Esempi di attributes attributetype ( 1.3.6.1.1.1.1.0 NAME'uidNumber' DESC 'An integer uniquely identifying a user' EQUALITY integermatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE- VALUE) attributetype ( 1.3.6.1.1.1.1.4 NAME'loginShell' DESC 'The path to the login shell' EQUALITY caseex actia5match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE- VALUE) 28

Schem a Alcuni attributi standard uid User id ou Organization Unit cn Common name o organization sn Surnam e dc Domain Component l Location st St at e c Country 29 Schem a Ereditarietà dell'object class 30

Esempi di object class objectclass( 1.3.6.1.1.1.2.0 NAME'posixAccount' SUPtop AUXILIARY DESC 'Abstraction of an account with POSIX attributes' MUST ( cn $ uid $ uidnumber $ gidnumber $ homedirectory ) MAY ( userpassword $ loginshell $ gecos $ description ) ) objectclass ( 1.3.6.1.4.1.4203.1.4.5 NAME'OpenLDAPperson' DESC 'OpenLDAP Person' SUP ( pilotperson $ inetorgperson ) MUST(uid$cn) MAY ( givenname $ labeleduri $ o ) ) 31 Operazioni su ldap Search Compare Add Delete Modify ModifyRDN Rinomina una entry o sposta la entry all'interno della directory Strumenti a riga di comando: ldapsearch, ldapadd, ldapmodify,... 32

LDAP URL (RFC 1959) <ldapurl> ::= "ldap://" [ <hostport> ] "/" <dn> [ "?" <attributes>[ "?" <scope> "?"<filter> ]] < hostport> ::= < hostname> [ ":" < portnumber> ] < d n > ::= a strin g (RFC 1485) < attributes> ::= NULL < attributelist> <attributelist> ::= <attributetype> <attributetype> [ "," <attributelist> ] <attributetype> ::= a string (RFC 1777) < scope> ::= "base" "one" "sub < filter> ::= a string (RFC 1558) ldap:/ / foo.bar.com/ dc= bar,dc= com ldap:/ / ar gle.bar gle.com / dc= bar,dc= com??sub?uid= bar n ey ldap:/ / ldap.bedrock.com/ dc=bar,dc=com?cn?sub?uid=b arney 33 LDIF Formato di scambio ASCII (LDAP Interchange Format) Entries rappresentate in ascii Umanamente leggibili Permette facilmente di trasferire / modificare i dati 34

LDIF Esempio dn: uid= lab2n36$,ou=people,o=labx,dc= ing,dc= unibo,dc= it objectclass: account objectclass: posixaccount objectclass: shadowaccount objectclass: top userpassword: e2nsex28fxg= loginshell: /bin/false uidnumber: 62036 gidnumber: 0 homedirectory:/dev/null gecos: Macchina windows uid: lab2n36$ cn: LAB2N36 35 Replica Avere repliche: fault tolerance, performance LDAP ha un'architettura master replica: le modifiche vengono propagate dal master alle repliche Lostandardnondiceconchetempisticanéinchemodo Lo standard attuale in sviluppo (v3) prevede un'architettura multimaster (protocolli ad hoc per la replica) Nel caso monomaster più modalità per gestire la scrittura delle entries (on master, by referral, by chain) 36

Modello multimaster 37 On master 38

By referrals 39 By chain 40

Directory distribuite Un sottoalbero della directory viene delegato ad un altro server Per f or m ance Locazione geografica Delega amministrativa Occorrono due link: uno sul lato del server principale e uno sul lato del server che ottiene la delega 41 Directory distribuite 42

Directory distribuite Superior knowledge link Contiene l'uri del server a cui ci si riferisce per la parte superiore della directory Subordinate knowledge link Chiamato semplicemente reference, connette logicamente un nodo all'interno di un albero al context naming di un altro server Nell'esempio precedente, la entry ou= people,dc= plainjoe,dc= org contiene un referral al server a cui si delega il sottoalbero 43 Directory distribuite L'object class referral è definito L'LDIF della entry nella figura precedente è definita: dn: ou= people,dc= plainjoe,dc= org objectclass: referral ref: ldap:/ / server2.plainjoe.org/ ou= people,dc= plainjoe,dc= org 44

Alcune implementazioni di LDAP Tre principali prodotti OpenLDAP Microsoft Active Directory Directory Server 45 OpenLDAP Realizzato dall'università del Michigan, secondo la filosofia Open Source E' gratuito e l'accesso al codice sorgente è libero Può girare su qualsiasi piattaforma La comunità degli sviluppatori e degli utilizzatori è molto attiva La possibilità di controllo sugli accessi è imponente Implementa la replica solo attraverso il modello monomaster, la possibilità di Directory distribuite è stata introdotta solo nelle ultime versioni, mentre mancano altre possibilità più evolute 46

Active Directory Realizzato da Microsoft, che, a partire da Windows 2000, ne ha fatto la base dei propri sistemi server Strettamente legato a Windows Facile da gestire e amministrare Buonalascalabilità Active Directory Application Mode ( promessa di una completa libertà nel design del proprio namespace e nella definizionedischemipersonalizzati) 47 Directory Server Realizzato da Netscape, è il primo Directory Server commerciale apparso sul mercato Cambiato molte volte, ora in due versioni molto simili: Netscape Directory Server Su n ONE Di r ect or y Ser ver Diversi prodotti si integrano con Directory Server Disponibile per tutte le principali piattaforme Ha le migliori prestazioni sul mercato Ladocumentazioneèottima 48