Strumenti Utente

Strumenti Sito


lca:tutorial_mkldap

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
lca:tutorial_mkldap [20/05/2008 19:47]
roberto.alfieri
lca:tutorial_mkldap [20/05/2008 19:47] (versione attuale)
roberto.alfieri
Linea 1: Linea 1:
 +\\
  
 +<​html>​
 +<​p><​hr><​p>​
 +<​center>​
 +<p>
 +<H4>
 +<font color="#​000099">​
 +Incontro su Autenticazione e Autorizzazione<​br />
 +12 Maggio 2008 <br />
 +Aula Informatica Edificio Polifunzionale di Scienze<​br/>​
 +Universita'​ degli Studi di Parma <br/>
 +</​font>​
 +</H4>
 +<hr>
 +<​H3>​Una infrastruttura di autenticazione e autorizzazione flessibile e scalabile per l'​Ateneo <br/>
 +<font size="​-1">​Laboratorio di Calcolo Avanzato del Dipartimento di Fisica</​font><​br>​
 +<font size=+0>​lca@fis.unipr.it</​font>​
 +</h3>
 +</​center>​
 +</​html>​
 +\\
 +
 +
 +
 +===== 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**
 +<code php>
 +<?
 +# DEFINIZIONE UTENTI E GRUPPI LOCALI
 +############​ USERS  ##############​
 +$dst['​user'​]["​localuser1@fis.unipr.it"​] = array("​uidnumber"​=>"​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"​
 +?>
 +</​code>​
 +
 +  * **fisica.conf**
 +<code php>
 +<?
 +# CONFIGURAZIONE DOMINIO FISICA
 +
 +#UTENTI AGGIUNTI DA UNIPR
 +$rule['​ldapadd'​]['​Personale'​][] = "​ou=Dipartimento di Fisica";​
 +$rule['​ldapadd'​]['​Personale'​][] = "​mail=nome.cognome1@unipr.it";​
 +$rule['​ldapadd'​]['​Personale'​][] = "​mail=nome.cognome2@unipr.it";​
 +$rule['​ldapadd'​]['​Ospiti'​][] = "​(&​(ciclodottorato=23)(nomedottorato=fisica))";​ #Inizio 09/07
 +$rule['​ldapadd'​]['​Ospiti'​][] = "​(&​(ciclodottorato=22)(nomedottorato=fisica))";​ #Inizio 09/06
 +#ESCLUSO DALL'​INSERIMENTO
 +$rule['​ldapban'​]['​Personale'​][] = "​cn=Bad Prof";
 +
 +#UTENTI E GRUPPI AGGIUNTI DA DEFINIZIONI LOCALI
 +$lrule['​user'​]["​localuser2@gmail.com"​] = true;
 +$lrule['​user'​]["​localuser3@libero.it"​] = true;
 +$lrule['​group'​]['​biblio'​] = true;
 +?>
 +</​code>​
 +
 +
 +
 +
 +
 +
 +===== 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:​
 +<code php>
 +############​ 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;
 +
 +</​code>​
 +
 +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
 +<code php>
 +
 +[...]
 +
 +$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"​
 +);
 +
 +[...]
 +
 +</​code>​
 +
 +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:
 +
 +<​file>​
 +# 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)
 +
 +</​file>​
 +
 +
 +=== smb.conf ===
 +Modifica sul server samba.fis.unipr.it al file /​etc/​samba/​smb.conf
 +
 +<​file>​
 +
 +[...]
 +
 +### 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
 +
 +[...]
 +
 +</​file>​
 +
 +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|}} | 
lca/tutorial_mkldap.txt ยท Ultima modifica: 20/05/2008 19:47 da roberto.alfieri