SVILUPPO DI UNA SOLUZIONE SINGLE SIGN ON PER L’ENTE VENETO LAVORO

23
Università degli Studi di Trieste Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica anno accademico 2007-2008 Sviluppo di una Sviluppo di una soluzione soluzione Single Sign On Single Sign On per l’ente Veneto per l’ente Veneto Lavoro Lavoro Laureando: Zanatta Davide Relatore: Prof. Bartoli Alberto

description

slide

Transcript of SVILUPPO DI UNA SOLUZIONE SINGLE SIGN ON PER L’ENTE VENETO LAVORO

Page 1: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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

Page 2: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

Sommario

Introduzione al lavoro svolto

Il progetto Guanxi

Innovazioni al progetto Guanxi

Risultati ottenuti

Conclusioni.

01

Page 3: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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

Page 4: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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

Page 5: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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.

Page 6: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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

Page 7: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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

Page 8: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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

Page 9: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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

Page 10: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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

Page 11: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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.

Page 12: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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

Page 13: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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

Page 14: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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

Page 15: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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

Page 16: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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.

Page 17: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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.

Page 18: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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.

Page 19: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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.

Page 20: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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.

Page 21: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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

Page 22: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE 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

Page 23: SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO

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: