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 ?
Scarica

01_-_LNF_Web_Tools