Web SSO & Tools Dael Maselli LNF – INFN Workshop Calcolo e Reti INFN 06 Giugno 2006 – Otranto Strumenti “Fatti in Casa” • • • • • • • • Authentication + Single Sign On (CASSiO) TTicket L2 Find Node Racks Grapho DBquery Gestione Turni GEPS Domain WebServices Portal CASSiO (1) – Maselli, Pistoni Cookie-based Authentication and Single Sign On Tempo fa e’ stato sviluppato ai LNF un sistema di Autenticazione e Single Sign On per alcune applicazioni WEB scritte in PHP o Perl. Con il tempo la procedura e’ stata aggiornata e resa il piu’ portabile possibile. I metodi di autenticazione sono aumentati ed e’ stata prevista l’identificazione di utenti INFN al di fuori dei LNF. Si propone come metodo di autenticazione e SSO per tutte le applicazioni web rese disponibili ai LNF e non. CASSiO (2) – Maselli, Pistoni • Autenticazione • • • • • Kerberos 5 AFS NIS DB MySQL Certificato x509 • Librerie Single Sign On • PHP • Perl • ASP.NET CASSiO (3) – Maselli, Pistoni • Il sistema si basa su 2 cookie: 1) <AuthMethod>.<User>@<Realm>:<IP>:<AuthTime> 2) Contiene un md5 del cookie 1 e di un file (Cookie Key) leggibile solo dal www server e non esportato via http. • Solo chi conosce il contenuto del Cookie Key e’ in grado di impostare o controllare l’autenticazione. • Funziona con tutti i SO e Browser che supportino SSL e Cookie. CASSiO (4) – Maselli, Pistoni • Utilizzato dalla quasi totalita’ degli script fatti in casa ai LNF • Il DataWeb INFN sta sviluppando le nuove applicazioni e aggiornando le vecchie per supportarlo • Programmazione semplificata di nuovi script indipendentemente dal SO e server HTTP • Cookie impostati per il dominio infn.it, quindi leggibili da tutti i nodi INFN CASSiO (5) – Maselli, Pistoni • Configurando un’opportuna distribuzione della Cookie Key e’ possibile riconoscere l’autenticazione da tutti i siti INFN • Librerie facilmente riscrivibili in altri linguaggi • Possibilita’ di integrazione in software di terze parti • Possibilita’ di sviluppo di nuovi metodi di autenticazione come OTP token, SMS ecc. TTicket – Maselli • TTicket e’ il sistema di Trouble Ticketing sviluppato ai LNF dal 2002, gia’ presentato al Workshop di Paestum 2003. • Viene ultilizzato anche in altre sedi INFN • Completamente integrato con CASSiO (TTicket ver >= 2.5.6) • Per ulteriori informazioni rimando a: http://www.lnf.infn.it/~dmaselli/tticket L2 Find Node (1) – Maselli • Permette di individuare dove sia connesso un nodo • Visualizza il percorso per raggiungerlo a partire da uno switch • Script Perl con interfaccia PHP • Utilizza query SNMP a MIB Cisco • Non e’ mai stato provato su altri switch • Configurazione quasi nulla L2 Find Node (2) – Maselli [dmaselli@lxcalc5:~]> l2findnode swcalcfarm2 xtermpc2 Host Name: Host IP: Status: Layer3 from: Mac-addr: Vlan: xtermpc2.lnf.infn.it 193.206.86.217 UP. swcalc1 00-02-1b-f2-53-82 default ( 1 ) swcalcfarm2 - Po1 ( Gi1/0/27 Gi1/0/28 ) | swcalc1 - Gi8/13 | swae2a - 2/8 | swaea75 - Fa0/19 | xtermpc2 Racks & Grapho – Maselli Racks e Grapho sono due piccoli script php che semplificano la vita quando si gentiscono molti nodi e ci si deve collegare in console agli host. • Racks, opportunamente configurato genera una pagina con la rappresentazione delle macchine nei rack in tabelle html e permette di collegarvisi in ssh, telnet o http. • Grapho costruisce un grafo in html/css utile per raffigurare la struttura della rete, permette di accedere agli apparati in telnet o ssh. Dbquery.pl (1) – Pistoni • Il Database query e’ uno script che realizza una comoda interfaccia web per l’interrogazione e l’amministrazione dei dati in piu’ database • Autenticazione integrata (Certificato, Kerberos, local DB) tramite CASSiO • Vari livelli di autorizzazione di accesso ai dati • Admin, trusted (possono leggere e scrivere nel db) • Utenti ‘abilitati’ (possono richiedere modifiche) • Utenti sola lettura • Utenti ‘disabilitati’ (gestione delle wildcard ) Dbquery.pl (2) – Pistoni • Le interrogazioni al DB sono semplici, ma molto potenti • I valori dei campi visualizzati possono essere facilmente definiti come web link • in quanto campi speciali o amministrativi • in quanto valori per effettuare nuova ricerca nello stesso o in un altro database • Definizione di livelli di protezione fino al singolo campo della tabella del DB • Personalizzazione dell’output • Ai LNF vengono gestiti tutti i DB del Calcolo: Phonebook interno, Run Coordinator di Dafne, Rubrica ditte, Username e gruppi, Nodi di rete, Rembo, Contratti di manutenzione, etc. Domain WebServices Portal (1) (Amanzi) Gruppo di applicazioni in ASP.NET per il: • Serving dei software kits comuni e del relativo supporto all’installazione • Monitoraggio e Gestione delle code relative al servizio di stampa centralizzato LA SOLUZIONE DATABASE CENTRALIZZATO Memorizzare: • Le informazioni relative ai servizi esportati dal portale • I contenuti necessari a generare le pagine web • I parametri funzionali di stato dei servizi • I log dei servizi e le azioni intraprese dall’utente Domain WebServices Portal (2) (Amanzi) Aspetti implementativi per CASSiO: • Funzioni esportate da unico modulo VB basato su classi .Net Framework 1.0 SP1 (compatibile 1.1 e sup.) • Controllo validita’ autenticazione pre-esistente, login e logout utente • Rilascio autorizzazioni di alto livello per la cancellazione dei printing pending jobs in base alla validazione del metodo di autenticazione CASSiO: per tale funzionalita’ sono autorizzati solo gli utenti che si autenticano Kerberos/AFS o mediante certificato X509 INFN GEPS (1) – Angius • La Squadra “GEPS” e’ stata istituita per la Gestione delle Emergenze e del Primo Soccorso • Presso i LNF ogni turno giornaliero e’ composto da 6 persone piu’ 2 riserve • In totale gli abilitati ai turni GEPS sono circa 50 persone GEPS (2) – Angius • L’esigenza era di disporre di una applicazione web che rendesse piu’ semplice la composizione e la gestione del calendario turni per un gruppo cosi’ numeroso ed eterogeneo • Realizzata inizialmente per la sola squadra LNF e’ stata poi implementata con due setup differenti (numero componenti squadra, riserve, constraint di prenotazione, etc.) per le due diverse squadre GEPS dei LNF e AC • In produzione da Ottobre 2004 GEPS (3) – Angius • Realizzata in PHP, utilizza un DB su MySQL • Autenticazione integrata con il sistema di CASSiO attivo nei Laboratori Nazionali di Frascati e Amministrazione Centrale • Per i dati anagrafici fa riferimento al Phonebook gestito dall’applicazione DBQuery • Tutte le operazioni di inserimento, modifica, cancellazione di turni e utenze sono registrate GEPS (4) – Angius • Sono previsti piu’ livelli di accesso: • “visitatore autenticato” • qualsiasi account LNF/AC • puo’ consultare il calendario delle prenotazioni • “utente” • effettivo GEPS • puo’ prenotarsi e gestire le proprie prenotazioni • “admin” • puo’ inserire nuovi effettivi, modificarne lo stato, “impersonare” qualsiasi utente, definire il capoturno, rimuovere tutte le prenotazioni relative ad un giorno o ad un intero mese GEPS (5) – Angius • L’applicazione e’ divisa in diversi quadri: • Quadro principale mensile per la gestione delle prenotazioni • Quadro giornaliero con ulteriori dati dei componenti la squadra (telefono, tenocode, email, edificio, note) • Riepilogo Utente • Gli “admin” inoltre possono consultare i quadri di “log” per le modifiche ai turni e alle utenze e accedere ad un quadro di accounting con i turni effettuati su base mensile o annuale dalle varie utenze • Un job a cron, nei giorni lavorativi, provvede ad inserire in turno le riserve in caso di assenze e ad inviare via email un memorandum ai componenti della squadra in turno per il giorno lavorativo successivo GEPS (6) – Angius GEPS (6) – Angius • Quadro Mensile • Versione “Admin” Domande ?