Università degli Studi di TriesteFacoltà di Ingegneria
Corso di Laurea Specialistica in Ingegneria Informatica
anno accademico 2007-2008
Sviluppo di una Sviluppo di una soluzionesoluzione
Single Sign On Single Sign On per l’ente Veneto Lavoroper l’ente Veneto Lavoro
Laureando:
Zanatta Davide
Relatore:
Prof. Bartoli Alberto
Sommario
Introduzione al lavoro svolto
Il progetto Guanxi
Innovazioni al progetto Guanxi
Risultati ottenuti
Conclusioni.
01
Introduzione :
Analisi del problema
02
Spesso quando si utilizzano servizi tramite Internet l’utente è costretto a ripetere il processo di autenticazione per ogni risorsa.
Web Mail
Segreteria
Serv. Bancari
eLearning
Rallenta l’operatività degli utenti
Necessità di molte registrazioni
- possono scoraggiare gli utenti
- molte password da ricordare (uguali ?)
Repository utenti duplicati
- mantenzione non coordinata
- possibili disallinamenti dei dati
Introduzione :
Single Sign On
03
Un sistema specializzato che permette ad un utente di autenticarsi una sola volta per poi accedere a tutte le risorse informatiche.
Segreteria
Serv. Bancari
eLearning
Web Mail Migliora l’operatività degli utenti
Maggiore sicurezza del sistema
- unico punto di accesso
- meno password da ricordare
Gestione cooperativa degli utenti
- agevolazione nelle attività di mantenzione
- integrità dei dati
Introduzione :
Il lavoro svolto
04
Analisi di un progetto adatto al contesto VL
Installazione di un sistema Single Sign On
Integrazione tra il sistema SSO e i repository utente
Creazione di un sistema High Availability (HA)
Modifica del progetto SSO per la configurazione HA
Il lavoro svolto si è concentrato sullo sviluppo di un sistema Single Sign On per l’ente Veneto Lavoro di modo da uniformare il processo di login dei diversi servizi offerti e migliorarne la sicurezza del sistema.
Introduzione:
Sistema precedente
Veneto LavoroVeneto Lavoro è l’ente strumentale della Regione Veneto per le politiche dell’occupazione.
05
Internet
Utenti web
Co VENETO
AROF
AV
Intranet
VL - CpI - Province
SILL
MULE – ESB (Servizi Asincroni)
PDD - NCNDMSXML
Repository
Email notifica
PEGASOSito pubblico
bcnl
servizi molto eterogenei con sistemi di autenticazione specifici
utenti costretti ad effettuare una o più registrazioni a seconda del numero di servizi richiesti
necessità di effettuare nuovamente il processo di autenticazione per accedere a più servizi
Introduzione :
Sistema Attuale
06
Server SSO-1
IdP
Saml Engine
WAYF
ServerCO-1 CO-Veneto
Guard
CO-Gest. Anag.
Guard
FRONTEND-WEBRouter/ balancer FRONTEND-WEB
Server SSO-1
IdP
Saml Engine
WAYF
ServerCO-1 CO-Veneto
Guard
CO-Gest. Anag.
Guard
UtentiInternet / Intranet
Internet
Utenti web
Co VENETO
AROF
AV
Intranet
VL - CpI - Province
SILL
MULE – ESB (Servizi Asincroni)
PDD - NCNDMSXML
Repository
Email notifica
PEGASOSito pubblico
bcnl
Federazione di sistemi con servizio Single Sign On
Unica registrazione per gli utenti
Sistema ad alta affidabilità in Load Balancing
Progetto Guanxi :
Specifiche Guanxi
07
Progetto open source sviluppato da UHI Millennium Institute, compatibile con lo standard Shibboleth
Pensato per creare sistemi SSO in ambito web
Progettato per interagire con federazioni di server e specifici repository utenti
chiamate che coinvolgono il browser utente
chiamate che non coinvolgono il browser utente
Risorsa WEBGUARD
SAML Engine
WAYF
Identity Provider
DBUtenti
Richiesta utente
Se n
on
aute
nticato
Accesso alla risorsa
Redirect al form di autenticazione
Recupero dei dati di profilazione
Verifica sessione utente e
recupero dati profilo
Progetto Guanxi :
Service Provider
08
Saml Engine- mantiene una mappa delle risorse e dei server della federazione
- gestisce tutte le comunicazioni tra i Guards e gli Identity Providers
- mantiene le informazioni in merito alle sessioni utenti
Guard- protegge una singola risorsa web, integrata nel sistema SSO
- viene installato come filtro http all’interno della web application
Ogni richiesta utente ad una Ogni richiesta utente ad una risorsa web viene intercettata risorsa web viene intercettata dal Guard,dal Guard,
Il Guard chiede al Saml Engine Il Guard chiede al Saml Engine informazioni sul profilo utente,informazioni sul profilo utente,
Il Saml Engine verifica che la Il Saml Engine verifica che la chiamata provenga da un Guard chiamata provenga da un Guard valido.valido.
1
Risorsa WEB
Filter AttributeConsume
r
Podder
GUARD
SAML Engine
2a
2b
2c
Progetto Guanxi :
WAYF
09
WAYF- risponde alla domanda “Where Are You From?”
- si compone di una sola pagina jsp
- permette di scegliere all’utente l’ Identity Provider di pertinenza
Se l’utente non è già stato Se l’utente non è già stato autenticato si chiede al Saml autenticato si chiede al Saml Engine l’indirizzo del server Engine l’indirizzo del server WAYF,WAYF,
Il browser mostra all’utente Il browser mostra all’utente l’elenco dei possibili Identity l’elenco dei possibili Identity Provider,Provider,
L’utente viene rediretto alla L’utente viene rediretto alla pagina di login SSO.pagina di login SSO.
3a
3b
Filter AttributeConsum
er
Podder
GUARD
SAML Engine
WAYF
Identity Provider
Attribute Authority
Single Sign On
3c 4
Progetto Guanxi :
Identity Provider (1)
10
Identity Provider- svolge le operazioni di authentication e profiling degli utenti
- l’interfacciamento alle basi dati avviene tramite Authenticators e Attributors
- tutte le comunicazioni con Saml Engine avvengono tramite il protocollo SAML
Authenticators (modulo Single Sign On)- una o più classi chiamate in ordine predefinito fino ad esito positivo
- verificano la presenza delle credenziali utente nei repository
- queste classi sono state appositamente sviluppate per connettersi ai repository utente dell’ente Veneto Lavoro
SAML Engine
WAYF
Identity Provider
Attribute Authority
Single Sign On
DBUtenti
4
5
L’utente inserisce le proprie L’utente inserisce le proprie credenziali attraverso il browser,credenziali attraverso il browser,
Le credenziali vengono Le credenziali vengono verificate da Identity Provider verificate da Identity Provider tramite le classi Authenticators,tramite le classi Authenticators,
Se l’autenticazione ha esito Se l’autenticazione ha esito positivo il Saml Engine attiva la positivo il Saml Engine attiva la sessione utente.sessione utente.
Progetto Guanxi :
Identity Provider (2)
11
Attributors (modulo Attribute Authority)- una o più classi senza ordine di chiamata
- recuperano i dati di profilazione dell’utente per i diversi servizi
- è possibile configurare delle politiche di rilascio degli attributi (ARP)
- queste classi sono state appositamente sviluppate per connettersi ai repository utente dell’ente Veneto Lavoro
SAML Engine
Identity Provider
Attribute Authority
Single Sign On
DBUtenti
6
Ogni volta che l’utente richiede Ogni volta che l’utente richiede l’accesso ad un servizio il Saml l’accesso ad un servizio il Saml Engine ne richiede i dati di Engine ne richiede i dati di profilazione al Identity Provider,profilazione al Identity Provider,
I dati vengono estratti dai repository I dati vengono estratti dai repository utente attraverso le classi Attributors utente attraverso le classi Attributors del modulo Attribute Authority,del modulo Attribute Authority,
Il risultato viene trasmesso al Saml Il risultato viene trasmesso al Saml Engine.Engine.
7
Progetto Guanxi :
Accesso alla risorsa
12
Il Saml Engine decodifica i dati del Il Saml Engine decodifica i dati del profilo utente e li invia al Guard;profilo utente e li invia al Guard;
Il Saml Engine notifica al Guard Il Saml Engine notifica al Guard che l’utente può accedere alla che l’utente può accedere alla risorsa richiesta,risorsa richiesta,
Il browser dell’utente viene Il browser dell’utente viene reindirizzato alla pagina web reindirizzato alla pagina web richiesta.richiesta.
Saml Engine- è l’unico componente a manipolare i dati SAML
- mantiene le informazioni in merito alle sessioni utenti
Guard- protegge una singola risorsa web, integrata nel sistema SSO
- fornisce alla risorsa i dati del profilo utente attraverso headers http
Risorsa WEB
Filter AttributeConsume
r
Podder
GUARD
SAML Engine
8a
9b
9a
8b
Innovazioni al progetto Guanxi :
Sistema High Availability
13
Per ragioni di affidabilità del servizio si tende a duplicare i sistemi critici in Cluster
Per motivi prestazionali gli Apache eseguono il Load Balancer delle richieste
Anche le chiamate interne SSO sono in Load Balancer (problema)
In alcuni server non posso installare i componenti Guard (problema)
Server Apache Frontend-1 Server Apache Frontend-2
Server WEB-1
Tomcat
Portale Web
Server SSO-2
JBoss sso-2
Saml
Engine
WAYF
Identity
Provider
Server SSO-1
JBoss sso-1
Saml Engine
WAYF
Identity
Provider
Server AROF-2
JBoss arof-2
AROF
Guard
Server AROF-1
JBoss arof-1
AROF
Guard
Jaguar
AOL
Server CO-3
JBoss co-6
CO-Iscriz.
CO
Guard
CO-Anag.
Guard
Guard
Tunneling
JBoss co-5
CO-Iscriz.
CO
Guard
CO-Anag.
Guard
Guard
Tunneling
Server CO-2
JBoss co-4
CO-Iscriz.
CO
Guard
CO-Anag.
Guard
Guard
Tunneling
JBoss co-3
CO-Iscriz.
CO
Guard
CO-Anag.
Guard
Guard
Tunneling
Server CO-1
JBoss co-2
CO-Iscriz.
CO
Guard
CO-Anag.
Guard
Guard
Tunneling
JBoss co-1
CO-Iscriz.
CO
Guard
CO-Anag.
Guard
Guard
Tunneling
Server SIL-DB
Oracle
DB Profile
Server DB-VL
SqlServer
DB CSM
DB CO
Sybase
DB AROF SqlServer
DB CSM
DB CO
Innovazioni al progetto Guanxi :
Sticky Session
14
La Sticky Session si basa su un cookie di sessione per La Sticky Session si basa su un cookie di sessione per smistare le richieste http tra i vari server in Load Balancer smistare le richieste http tra i vari server in Load Balancer
Balancer
Server2
CO-1
Server2
CO-2
Balancer
Server2
CO-1
Server2
CO-2
123.co-1
Prima chiamata:
50% di possibilità per ogni nodo Chiamate successive:
il cookie indica il nodo destinazione
Innovazioni al progetto Guanxi :
Sticky Session
15
Le librerie del progetto Guanxi non supportano i cookies di sessione nelle chiamate tra i diverse componenti distribuiti che non coinvolgono il browser,
Per risolvere i problemi dovuti a questa mancanza durante lo sviluppo del progetto si è reso necessario modificare il core delle librerie Guanxi per il mantenimento delle sessioni,
Con queste modifiche è possibile l’utilizzo di Guanxi in un cluster con configurazione di load balancing.
Innovazioni al progetto Guanxi :
Guard Tunneling
16
In alcune situazioni è stato impossibile inserire la componente Guard all’interno delle applicazioni web da proteggere per incompatibilità tra Application Server e librerie Guanxi (es. Sybase Jaguar o Microsoft Internet Information Server),
La soluzione adottata utilizza una nuova applicazione detta Guard Tunneling per le operazioni di autenticazione e profilazione utente,
Con questo nuovo componente si può utilizzare il sistema Guanxi non includendo il Guard nella applicazione web originale.
Risultati ottenuti :
Test di Carico
17
Macchina
S.O. CPU RAM Contenuto
Geisoft03 Linux Ubuntu 1 cpu 2.00 GHz 756 Mb http server Apache
Geisoft05 Linux RedHat 1 cpu 2.80 GHz(1) 512 Mb server JBoss CO-1
Geisoft05 Linux RedHat 1 cpu 2.80 GHz(1) 512 Mb server JBoss CO-2
Geisoft01 Linux RedHat 1 cpu 2.80 GHz(2) 512 Mb server JBoss SSO-1
Geisoft01 Linux RedHat 1 cpu 2.80 GHz(2) 512 Mb server JBoss SSO-2(1;2) La cpu della macchina fisica viene suddivisa nelle due macchine virtuali che contiene
A conclusione del processo di analisi, sviluppo software e configurazione del sistema progettato si sono effettuati dei test di collaudo.
E’ stato predisposto un ambiente di test composto da diverse macchine virtuali e si è simulato l’accesso contemporaneo di 800 utenti.
Risultati ottenuti :
Test di Carico
18
Il grafico illustra il numero di sessioni utenti attive contemporaneamente nell’arco di tempo del test.
La simulazione ha gestito senza errori l’accesso di 800 utenti in 3 minuti e 20 secondi.
Risultati ottenuti :
Statistiche di accesso
19
0
100
200
300
400
500
600
700
800
900
0.00 2.00 4.00 6.00 8.00 10.00 12.00 14.00 16.00 18.00 20.00 22.00
Accessi medi orari al servizio SSO di Veneto Lavoro
Statistiche sui dati rilevati a partire dal sistema reale installato a Veneto Lavoro.
Il numero di accessi orari segue gli orari di ufficio.
Risultati ottenuti :
Statistiche di accesso
20
Il numero di accessi è fortemente influenzato dal servizio CO-Veneto.
64%
1%
1%
6%
6%
21%1%
CO-Veneto
Avviamenti On Line
Apprendiveneto
AROF
Forum Assistenza
SIL
altro
0
1000
2000
3000
4000
5000
6000
7000
8000
Lunedi Martedi Mercoledì Giovedi Venerdi Sabato Domenica
Accessi medi giornalieri al servizio SSO di Veneto Lavoro
Conclusioni:
Sviluppi futuri
Aggiornamento alla nuova versione delle librerie del progetto Guanxi
Autenticazione tramite Smart Card
Gestione degli Accordi di Servizio integrata in SSO
Estendere integrazione con SSO a tutti i servizi offerti da Veneto Lavoro
21
Conclusioni :
Obiettivi raggiunti
22
Riduzione del tempo speso dagli utenti per gli accessi ai servizi
Maggiore sicurezza dei sistemi
Gestione repository utenti semplificata
Maggiore affidabilità dei sistemi
Minori chiamate al centro assistenza.
Il lavoro svolto con la creazione di un nuovo sistema di Single Sign On per l’ente Veneto Lavoro ha portato i seguenti vantaggi:
Top Related