AAI & AAI Plus Enrico M. V. Fasanelli Mini WS AAI Roma Ottobre 2012
Perché INFN-AAI Plus? INFN-AAI Authentication and Authorization Infrastructure INFN-AAI Plus INFN-AAI con in aggiunta un pezzo senza il quale non è possibile mettere in piedi una AAI: IAM (Identity and Access Management) INFN-AAI Plus = INFN-AAI + IAM Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli2
IAM: The big Picture AAI: solo il 20% dell’impegno totale IAM: pesa per circa l’80% del totale del progetto Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli3
Il “peso” di IAM Ma se la “parte aggiunta” ad INFN-AAI è così corposa, perché non tralasciarla? Rilievo della commissione di referee al CDR di INFN-AAI Senza una IAM non si può fare una AAI Gli altri attori della complessa scena della gestione delle Identità delle persone nell’INFN NON HANNO MAI VOLUTO AFFRONTARE IL PROBLEMA NEL SUO INSIEME Una IAM serve anche (come una AAI) ai servizi di Calcolo & Reti Soddisfare (più facilmente) alcune politiche di accesso (che sono anche misure richieste dal DL 196/2003) Assegnazione univoca degli userID Disabilitazione account Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli4
INFN-AAI Plus GODiVA INFN-AAI Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli5
GODiVA Lady Godiva (in inglese arcaico Godgifu, "god gift”) era una nobildonna anglosassone moglie del conte Leofrico di Coventry che, secondo una leggenda, cavalcò nuda per le vie di Coventry per ottenere la soppressione di un ulteriore tributo imposto da suo marito ai propri sudditi. (cfr. Wikipedia) Gestione Ospiti Dipendenti Visitatori ed Associati Evoluzione di GOapp, sviluppata da Claudio Bisegni ed Antonino Passarelli per la gestione dei Visitatori (usata in alcune sezioni per ottemperare alle richieste del decreto Pisanu sulla “tracciabilità” degli accessi in rete) Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli6
Il logo di GODiVA È un dipinto di Lady Godiva diJohn Collier (1898 ca).John Collier (1898 ca). Non è più nelle pagine ufficiali perché è stato contestato l’utilizzo di un nudo di donna (tralasciando il fatto che si tratta di un’opera d’arte!) Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli7
Anatomia di GODiVA GODiVA-DB GODiVA-Engine GODiVA-API GODiVA-Security GODiVA-Jobs GODiVA-UI Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli8
Anatomia di GODiVA GODiVA-DB DataBase relazionale (Oracle in configurazione RAC) contenente le informazioni relative alle Identità, ai Ruoli (legati all’organigramma dell’INFN) ed ai servizi Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli9
Anatomia di GODiVA GODiVA-Engine Applicazione Java che gira in un Application Server Apache Tomcat (in realtà è un cluster di Application Server) È l’unico punto di accesso al GODiVA-DB È l’unico mezzo utilizzabile per scrivere nei server LDAP di INFN-AAI Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli10
Anatomia di GODiVA GODiVA-API Set di API attraverso le quali è possibile accedere alle funzionalità di GODiVA-Engine anche al di fuori di GODiVA-UI Accessibili via SOAP WebApp Utilizzate dalle varie “istanze” di protoAAI (protoserv2, …………….) per l’accesso ai rami LDAP differenti da OU=people,DC=infn,DC=it Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli11
Anatomia di GODiVA GODiVA-Security La parte di GODiVA che gestisce i privilegi e quindi i diritti di accesso alle funzioni di GODiVA stessa Utilizza gli “entitlement” (diritti di accesso) posseduti dall’utente e memorizzati in un apposito attributo LDAP in INFN-AAI Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli12
Anatomia di GODiVA GODiVA-Jobs La parte di GODiVA che esegue le operazioni di modifica di stato delle identità registrando il nuovo stato sia nel GODiVA- DB che nel Directory Server di INFN-AAI Cron-like Jobs At-like Jobs Triggered Jobs Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli13
Anatomia di GODiVA GODiVA-UI per accesso a GODiVA-Engine GUI Java GODiVA WEB CLI scritta in C/C++ Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli14
GODiVA & Anagrafiche Gestione Ospiti Dipendenti Visitatori ed Associati Anagrafica dei Dipendenti presa dallo stipendiale Dipendenti (a tempo determinato o indeterminato) Borsisti Assegnisti CoCo(Co,Pro) ai sensi dell’Art Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli15
Il flusso dei dati: Anagrafica dei Dipendenti Il DataBase autoritativo per le anagrafiche dei Dipendenti (in senso lato) è quello della Direzione degli Affari del Personale (adesso diretta da Eleonora Bovo) dell’Amministrazione Centrale. È (ad oggi) il modulo HR di una installazione delle Oracle Enterprise Businnes Suite (Oracle Application) della Direzione Affari del Personale che è la base dati utilizzata dallo stipendiale (SIPERT) E’ previsto che SIPERT venga sostituito dal nuovo sistema basato su CEZANNE Ad oggi, questi dati popolano anche la parte Dipendenti del modulo HR del Sistema Informativo Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli16
GODiVA & Anagrafiche Gestione Ospiti Dipendenti Visitatori ed Associati Anagrafica degli Associati gestita direttamente nel GODiVA-DB (via apposite API) dai sistemi di gestione delle associazioni di DataWeb Dati forniti al DB del Sistema Informativo ed al DB dello stipendiale Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli17
GODiVA & Anagrafiche Gestione Ospiti Dipendenti Visitatori ed Associati Anagrafica di Ospiti e Visitatori gestita direttamente in GODiVA Via GUI Java: Interfaccia utente simile a quella di GOapp Via Java applet (per l’auto-registrazione) Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli18
GODiVA Blocks OU=People,DC=INFN,DC=IT Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli19
Architettura di INFN-AAI
Le componenti di INFN-AAI Autenticazione: meccanismi Kerberos5 Username/Password Certificati X.509 Autorizzazione Attributi memorizzati in Directory Server e forniti via LDAP Entrambe le “A” sono fruibili via LDAP DS Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli21
DS Slave nazionali ds.infn.it DS Master Tutti interrogano LDAP Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli22 DS Slave di sede
Autenticazione Kerberos5 Infrastruttura esistente Tre KDC di INFN.IT (cella nazionale AFS) Struttura di KDC presenti nelle sedi (LE, BA, LNF, PI, LNGS, …) Estensione della infrastruttura esistente con un REALM Kerberos5 per ogni sede Pool di Slave-KDC (un paio per ogni REALM) Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli23 OBSOLETA
Autenticazione Kerberos5 Infrastruttura esistente Tre KDC di INFN.IT (cella nazionale AFS) Struttura di KDC presenti nelle sedi (LE, BA, LNF, PI, LNGS, MI, …) Possibilità di utilizzo del REALM INFN.IT per tutte le sedi Slave KDC di INFN.IT nella sede Pool di Slave-KDC dei REALM di sede Un paio di KDC per ogni REALM Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli24
Autenticazione Username/Password Per compatibilità con i sistemi di autenticazione in uso in molte sedi (Username/Password Unix) Per facilitare la migrazione ad INFN-AAI (Unix Kerberos5) Per rendere utilizzabile INFN-AAI anche da client non kerberizzabili (es. internet cafè) Utilizza anche Username/Password Kerberos5 via plug-in ad hoc di 389-DS Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli25
Autenticazione X.509 Utilizzo di certificati X.509 rilasciati da INFN-CA Altre Certification Authorities Terena TCS Service L’ presente nel certificato *deve* essere registrata nell’entry LDAP Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli26
Autorizzazione: LDAP DS Non tutti i client sono in grado di demandare il processo relativo all’Autorizzazione ad una entità esterna INFN-AAI fornisce via LDAP gli attributi che possono essere usati da un client per poi effettuare internamente il processo di autorizzazione direttamente gli attributi autorizzativi, per le applicazioni che sono in grado di utilizzarli Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli27
Architettura del Directory Server La struttura ideale per il Directory Information Tree è, come oramai riconosciuto ed affermato da tutti gli esperti, di tipo “basso e grosso” (e non più “alto e magro” come si consigliava una ventina d’anni fa) La “posizione” di una entità all’interno della struttura organizzativa non viene definita dal suo DN, ma dal valore di attributi specifici DN:UID=enrico,OU=people,DC=le,DC=infn,DC=it DN:UID=enrico,OU=people,DC=infn,DC=it L: le Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli28
Directory Information Tree Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli29 DC=infn,DC=it OU=peopleOU=group DC=infn,DC=it OU=peopleOU=group DC=baDC=leDC=lnfDC=roma1 DN:UID=enrico,OU=people,DC=infn,DC=it L: le DN:UID=enrico,OU=people,DC=le,DC=infn,DC=it
Gestione del pre-installato “Dio ci ha messo 7 giorni per creare il mondo perché non doveva gestire il pre-installato” Riportare tutte le strutture dell’INFN all’interno di un albero “basso e grosso” è una impresa che va oltre le possibilità di INFN-AAI (basti pensare alla gestione delle omonimie…) Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli30
INFN-AAI DIT Sovrapposizione dei due modelli Ramo nazionale e rami locali Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli31 Informazioni scritte via GODiVA Accesso via ssh DC=infn,DC=it OU=peopleOU=group OU=peopleOU=group DC=baDC=leDC=lnfDC=roma1
Directory e Relazioni Una Directory è un Data Base ad albero. Non è possibile definire, usando i normali sistemi di gestione delle Directory, nessuna relazione tra le entry Per INFN-AAI è invece essenziale poter mettere in relazione le entry relative al “pre- installato” che sono all’interno dei rami locali, con le corrispondenti entry relative alle identità, che vivono nel ramo nazionale Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli32
GODiVA-Engine Quando viene inserita una Identità nel GODiVA-DB, GODiVA-Engine genera una UUID e la assegna in modo permanente a tale Identità valorizzando l’attributo infnUUID La corrispondente entry nel ramo nazionale della Directory ha come RDN tale UUID (le entry sono opache) dn:infnUUID=f8d35e c8-989c- 3faa58f5cba4,ou=People,dc=infn,dc=it Nel momento in cui in un ramo locale “compare” una entry legata a tale Identità, GODiVA valorizza l’attributo infnLinkedUUID mettendoci il valore di infnUUID Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli33
L’importanza del Codice Fiscale Entry nel ramo nazionale dn:infnUUID=f8d35e c8- 989c- 3faa58f5cba4,ou=People,dc=infn,dc=it uid: enrico infnUUID:f8d35e c8-989c- 3faa58f5cba4 infnLinkedUUID:f8d35e c8- 989c-3faa58f5cba4 sn:Fasanelli givenName:Enrico Maria schacPersonalUniqueID:urn:mace:teren a.org:schac:personalUniqueID:it:CF:FS NNCM61R19B619J l: LE Entry nel ramo locale dn:infnUUID=020f41f5-913a-425f-bb91- aaea40739ff7,ou=People,dc=le,dc=infn,dc =it infnLinkedUUID:f8d35e c8- 989c-3faa58f5cba4 infnUUID: 020f41f5-913a-425f-bb91- aaea40739ff7 schacPersonalUniqueID:urn:mace:terena. org:schac:personalUniqueID:it:CF:FSNNC M61R19B619J uid: enrico cn: Enrico M V Fasanelli givenName: Enrico M V sn: Fasanelli Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli34
Tutto passa da GODiVA La necessità di tenere sincronizzate le entry nazionali con le corrispondenti entry locali obbliga a passare da un sistema che tenga memoria di queste relazioni (in un DB relazionale, appunto) e le “materializzi” in un formato pseudo-relazionale nella Directory Questo però ha rallentato (e rallenta ancora) il passaggio ad INFN-AAI perché alcune parti importanti di GODiVA devono ancora essere sviluppate. Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli35
Accesso ai dati (ACI) Oltre alle ACI di default (che permettono al proprietario delle informazioni di vedere qualunque informazione gli appartenga) abbiamo ristretto la possibilità di lettura L’accesso non autenticato permette di leggere il valore dei soli attributi: cn, givenName, sn, mail L’accesso autenticato permette di leggere tutti gli attributi, ad esclusione di schacPersonalUniqueID e userPassword Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli36
Accesso ai server (SSL/TLS) I Directory Server di INFN-AAI sono configurati in modo da dover utilizzare per forza una connessione cifrata Rispondono sulla porta 389, ma esigono che la connessione diventi cifrata (via STARTTLS) Rispondono anche (solo per compatibilità con vecchi client perché è “deprecated”) sulla porta 636 ldaps Roma Otobre 2012Architettura di INFN-AAI Plus - Enrico M. V. Fasanelli37
F I N E Architettura di INFN-AAI Plus Enrico M. V. Fasanelli Tutorial INFN-AAI Plus