\\


Incontro su Autenticazione e Autorizzazione
12 Maggio 2008
Aula Informatica Edificio Polifunzionale di Scienze
Universita' degli Studi di Parma


Una infrastruttura di autenticazione e autorizzazione flessibile e scalabile per l'Ateneo
Laboratorio di Calcolo Avanzato del Dipartimento di Fisica
lca@fis.unipr.it

\\ ===== Obiettivi ===== * **Sistema di Autenticazione centralizzato e allineato con l'Identity Server di Ateneo** * **Separazione del livello di autoririzzazione dall'autenticazione, mediante l'utilizzo di diversi "Domini" per l'Access Management.** * **Deployment rapido e semplice** * **Autenticazione supportata dalle principali risorse (Sistemi operativi e servizi)** * ** Architettura scalabile** ===== Architettura ===== {{lca:architettura.png?500| architettura }} \\ {{lca:poster.png?400| Poster}}\\ [[http://www.fis.unipr.it/lca/poster/poster%20Parma%20CCR2007_web.pdf | Poster INFN]] ===== Servizi Forniti ===== * Autenticazione Sistemi (server e Workstation) * Linux (via LDAP direttamente) * Windows (via domain controller Samba con o senza Roaming Profile) * Principali utilizzi: * [[lca:server_dipartimentali|Server Linux]] * [[lca:servizi:calcolo|Farm di Calcolo Linux]] * [[http://fisica.unipr.it/cgi-bin/campusnet/aule.pl/Show?_id=f132&sort=DEFAULT&search=%20%7bubicazione%7d%20%3d%7e%20m%2fPlesso%20Fisico%2fi%20or%20%7bubicazione%7d%20%3d%7e%20m%2fPlesso%20Polifunzionale%2fi%20&hits=18|Aule Informatiche dual boot]] * PC Pubblici (Biblioteca, scanner, ..) * [[lca:servizi:condivisione_files_rete |Condivisione Samba]] (Windows, Linux, Mac) * Spazio Utenti * Spazio Backup * Web Personali * scambio * gruppi di lavoro e di ricerca * [[lca:servizi:mail | Autenticazione posta elettronica ]] * pop, imap e smtp * [[lca:servizi:stampa| Stampa]] (Windows, Linux, Mac) con autenticazione e accounting *[[http://www.fis.unipr.it/lca/riepilogo_stampe/riepilogo_didattica.php | Riepilogo Stampe]] * Web Application * [[http://www.fis.unipr.it/dokuwiki/doku.php |Wiki ]] * [[https://www.fis.unipr.it/webmail/src/login.php | WebMail ]] * [[https://www.fis.unipr.it/booking_calendar/month_view.php?loc=loc2&date=2008-05-09&view=month | Calendario Prenotazioni]] * [[http://www.fis.unipr.it/intranet.php | Servizi Intranet ]] (in via di sviluppo) * Proxy Web ===== Prerequisiti ===== * **Server Linux** (noi usiamo Scientific Linux 4.X) * **OpenLDAP** con schemi standard + samba (noi usiamo la versione 2.2.13) * **Samba** (noi usiamo la versione 3.0.25b) * **smbldap-tools** (noi usiamo la versione 0.9.4) ===== Organizzazione dei file ===== * **Gestione centralizzabile dei server con delega della configurazione dei domini** {{lca:mkldap_files.png?400}} * **local_def.inc** "9001","password"=>"secret1"); $dst['user']["localuser2@gmail.com"] = array("uidnumber"=>"9002","password"=>"secret2"); $dst['user']["localuser3@libero.it"] = array("uidnumber"=>"9003","password"=>"secret3","description"=>"Ospite"); # ############### GROUPS ############ $dst['group']['biblio']["gidnumber"]="2300"; $dst['group']['biblio']["memberuid"]=array( "nome.cognome1", "nome.cognome2", "nome.cognome3" $dst['group']['ammin']["gidnumber"]="2400"; $dst['group']['ammin']["memberuid"]=array( "nome.cognome4", "nome.cognome5", "nome.cognome6" ?> * **fisica.conf** ===== Gestione ===== {{lca:mkldap.png?500|}} **Crontab** 0-59/10 * * * * /usr/sbin/mkldap -hd --update fisica 30 1 * * * /usr/sbin/mkldap -c grid-ce.conf --update grid ===== Un esempio di configurazione ===== === fisica.conf === Modifica sul server samba.fis.unipr.it al file /etc/mkldap/samba/fisica.conf: ############ REGOLE LDAP [...] ### Tutorial mkldap ### $rule['ldapadd']['Personale'][] = "mail=evelina.ceccato@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=antonio.paini@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=paolo.pollonara@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=norberto.vignali@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=andrea.pellegrini@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=luca.bergonzi@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=cesare.marchesini@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=giordano.pincolini@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=marco.silvestri@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=vincenzo.palermo@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=massimo.manghi@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=rita.olla@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=andrea.giovanella@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=gianfranco.galli@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=mario.bo@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=franco.sartore@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=davide.peis@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=franco.montanari@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=clara.ninimosi@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=antonio.sarubbi@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=andrea.pescetti@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=sara.valla@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=barbara.bertoli@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=giulio.campanini@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=gianna.goberti@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=fabrizio.russo@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=davide.bettati@unipr.it"; $rule['ldapadd']['Personale'][] = "mail=fabrizio.gattamelati@unipr.it"; ### fine tutorial mkldap ### [...] $lrule['group']['tutorialmkldap'] = true; Il file definisce le regole per il dominio **fisica** Con queste modifiche, vengono aggiunti al dominio **fisica**, residente sul server chiamato **samba** gli utenti facenti parte del **Personale** di ateneo indentificati col campo **mail=**, inoltre viene abilitato il gruppo **tutorialmkldap** === local_def.inc === Modifica sul server samba.fis.unipr.it al file /etc/mkldap/local_def.inc [...] $dst['group']['tutorialmkldap']["gidnumber"]="5030"; $dst['group']['tutorialmkldap']["memberuid"]=array( "alessio.cavalieri", "roberto.alfieri", "roberto.covati", "evelina.ceccato", "antonio.paini", "paolo.pollonara", "norberto.vignali", "andrea.pellegrini", "luca.bergonzi", "cesare.marchesini", "giordano.pincolini", "marco.silvestri", "vincenzo.palermo", "massimo.manghi", "rita.olla", "andrea.giovanella", "gianfranco.galli", "mario.bo", "franco.sartore", "davide.peis", "franco.montanari", "clara.ninimosi", "antonio.sarubbi", "andrea.pescetti", "sara.valla", "barbara.bertoli", "giulio.campanini", "gianna.goberti", "fabrizio.russo", "davide.bettati", "fabrizio.gattamelati" ); [...] Il file definisce i gruppi e le regole generali che possono valere su tutto il server. Con queste modifiche, viene definito il gruppo **tutorialmkldap** e tutti gli afferenti ad esso. Un utente normalmente ha un **gruppo di default** (es. gid=6002, Personale) e puo' afferire a piu' di un **gruppo secondario** che gli consente di cooperare con altri utenti, ad esempio attraverso le condivisioni del server samba. Un esempio: # id alessio.cavalieri uid=3216(alessio.cavalieri) gid=6002(Personale) gruppi=6002(Personale),2300(biblio),5002(seminariscuole),5004(bwork),5007(informazioni),5008(lca),5009(segreteria),5013(infn),5014(sustain),5017(grid),5019(albert),5024(microcosmo),5027(hycarb),5030(tutorialmkldap) === smb.conf === Modifica sul server samba.fis.unipr.it al file /etc/samba/smb.conf [...] ### CONDIVISIONI DI GRUPPO ### [...] [tutorialmkldap] comment = Condivisione di test per il tutorial su mkldap path = /home/gruppi/tutorialmkldap public = no writable = yes force create mode= 0665 force directory mode = 0775 valid users = @tutorialmkldap force group = tutorialmkldap [...] Con queste modifiche, si crea una nuova condivisione, solo i membri del gruppo riescono ad accedervi e scrivono i files in modo che gli altri membri possano modificarli. === Cosa si ottiene === Ad esempio con questa combinazione, e' possibile ottenere un flessibile ambiente di lavoro per i gruppi di ricerca: **repository di documenti** e **spazio web modificabile dai membri del gruppo**, il tutto utilizzando i normali strumenti a disposizione su [[lca:servizi:condivisione_files_rete#microsoft_windows_xp|windows, sui mac o su linux]] | {{lca:condivisione_samba_tutorial_mkldap.jpg|}} | Si possono creare directory con file riservati nello spazio quotato di gruppo, inoltre se si ha la necessita' di attivare un sito web di gruppo, e' possibile attingere ad una cartella dal filesystem condiviso col server web ( web.fis.unipr.it ), ecco un esempio di alcuni gruppi che lo usano: | | http://www.fis.unipr.it/microcosmo/ \\ http://www.fis.unipr.it/labdid/ \\ http://www.fis.unipr.it/hycarb/ \\ http://www.fis.unipr.it/fullereni/ \\ http://www.fis.unipr.it/infm/infm.html/ | {{lca:condivisioni_di_gruppo_attive.jpg|}} |