SlideShare a Scribd company logo
1 of 5
Download to read offline
Abstract
Un Sigle Sign On (SSO) è un sistema di autenticazione centralizzata che consente a un utente di fornire le proprie
credenziali una sola volta e di accedere a molteplici risorse e applicazioni all’interno di una rete locale o della rete
Internet. Un tale meccanismo aumenta l’usabilità delle applicazioni dal punto di vista dell’utente e consente una
gestione semplificata degli account. L’articolo affronta le problematiche di Single Sign On nel contesto di
applicazioni web e presenta il sistema SSOServer, che permette di realizzare un servizio di Single Sign On sul web.
A Single Sign On (SSO) is a centralized authentication system that allows a user to supply his credentials once and
gain access to multiple resources and applications in a local network or the Internet. A mechanism of such kind
increases the usability of the applications for the users and allows a simplified management of user accounts. This
article discusses the single sign on for web applications and introduces SSOServer, a system that realizes a single
sign on service for the web.
Keywords: Single sign on, Autenticazione, SSOServer.
Introduzione al Single Sign On
Nell’approccio tradizionale, i sistemi distri-
buiti sono costituiti da più componenti, ciascuno
con un proprio dominio di sicurezza, da cui la
necessità per l’utente di autenticarsi presso ogni
componente con cui deve interagire. Considera-
zioni legate all’usabilità e alla sicurezza sugge-
riscono di coordinare e integrare i servizi di au-
tenticazione e la gestione degli account degli
utenti attraverso un sistema di Single Sign On
(SSO), un meccanismo di autenticazione cen-
tralizzata, che consente a un utente di autenti-
carsi in un sistema informatico una sola volta e
di accedere a molteplici risorse. Tale meccani-
smo trova applicazione in contesti diversi, come
l’accesso a risorse (file, stampanti, etc.) all’in-
terno di una intranet, o la fruizione di servizi
disponibili sul web. Un sistema di SSO apporta
benefici sia lato client che lato server:
− lato client, l’utente impiega meno tempo nelle
operazioni di login e non è costretto a ricor-
dare diverse credenziali per accedere a sistemi
diversi;
− lato server, gli amministratori possono gestire
gli account utente in modo centralizzato e con-
trollare in modo uniforme e consistente i di-
ritti di accesso (autorizzazioni), rafforzando la
sicurezza del sistema.
Autenticazione centralizzata per applica-
zioni il web
L’autenticazione è la fase durante la quale
un utente fornisce la propria identità al sistema
e precede la fase di autorizzazione con cui si
verifica che l’utente abbia i privilegi necessari
per accedere alla risorsa protetta. In ambito
web, si associa all’utente un codice unico, per
esempio sotto forma di un ticket, che identifica
l’utente e consente di accedere al suo profilo
personale. Solitamente questa funzionalità è
implementata inserendo il ticket all’interno di
un cookie, oppure tramite riscrittura della url.
Entrambi i metodi si basano sul presupposto
che a ogni richiesta successiva il client http
dell’utente ripresenterà il ticket all’appli-
cazione. Il limite di questo meccanismo risiede
nel fatto che i ticket sono contestuali alle
singole applicazioni e inoltre il protocollo http
non consente facilmente lo scambio di informa-
zioni (per esempio tramite cookie) tra applica-
zioni su domini diversi.
Un sistema per l’autenticazione centraliz-
zata prevede un insieme di applicazioni web che
costituiscono un dominio applicativo e condivi-
dono lo stesso bacino di utenti. Le applicazioni
sono registrate presso un server di SSO attra-
verso un’opportuna interfaccia di amministra-
zione. Compito del server di SSO è di estendere
51
Single Sign On sul web
il meccanismo descritto sopra e permettere la
condivisione delle informazioni di autentica-
zione tra applicazioni diverse, in modo traspa-
rente alle applicazioni stesse. Questa funziona-
lità è offerta dal sistema sviluppato, SSOServer,
che sarà presentato nei paragrafi seguenti.
SSOServer e protocollo di comunicazione
SSOServer può essere visto come un servizio
in grado di generare, memorizzare e validare i
ticket che permettono agli utenti di autenticarsi
e avere accesso alle applicazioni registrate. Agli
utenti possono essere associati due tipi di ticket
(Fig. 1):
− AuthenticationTicket: ticket associato
all’utente durante la fase di login, utilizzato
per identificare l’utente univocamente presso
il server;
− ApplicationTicket: consente a uno specifico
utente di accedere a un’applicazione un nu-
mero limitato di volte (solitamente una sola
volta) ed entro un certo periodo di tempo (soli-
tamente molto breve).
All’utente provvisto di un AuthenticationTi-
cket valido è possibile assegnare dei ticket di
applicazione, che possono essere spesi per acce-
dere alle applicazioni registrate. Una volta che
un ticket di applicazione è stato usato viene in-
validato e non può garantire ulteriore accesso
all’applicazione per il quale era stato generato.
Fig. 1 – Relazioni tra utenti, AuthenticationTicket,
ApplicationTicket e applicazioni.
Il protocollo di comunicazione tra il server e
le applicazioni registrate può essere schematiz-
zato nei seguenti passi (Fig. 2):
1. Un utente cerca di accedere per la prima
volta a una pagina protetta delle applica-
zioni registrate; poiché non è riconosciuto
viene reindirizzato al server di SSO, che gli
presenta il modulo per l’inserimento delle
proprie credenziali.
2. Se le credenziali sono verificate con successo,
vengono generati un AuthenticationTicket,
associato all’utente, e un ApplicationTicket,
associato all’applicazione richiesta. Entrambi
i ticket sono consegnati all’utente, che viene
reindirizzato nuovamente all’applicazione ri-
chiesta.
Fig. 2 – Interazione tra utente (web client), SSOServer
e applicazioni web durante la fase di
autenticazione secondo il protocollo di
comunicazione descritto. Nel primo scenario
l’utente non è ancora autenticato e deve
effettuare la fase di login presso SSOServer;
nel secondo scenario l’utente è automa-
ticamente riconosciuto, per cui si realizza un
meccanismo di single sign on.
3. L’utente può presentare l’ApplicationTicket
all’applicazione, che ne controlla la validità
mediante una richiesta al server di SSO. Se
il ticket presentato dall’utente è valido, il
server risponde con un identificativo unico,
che permette di recuperare l’identità
dell’utente da un datastore locale all’ap-
plicazione. A questo punto l’applicazione può
mettere in atto un proprio meccanismo per
riconoscere automaticamente l’utente, senza
richiedere l’intervento del server di SSO per
le richieste future. Per esempio l’appli-
52
cazione può assegnare all’utente un proprio
cookie di autenticazione.
4. Quando l’utente accede per la prima volta a
un’altra applicazione registrata, viene nuo-
vamente reindirizzato al server di SSO, in
quanto non è riconosciuto. Se l’Authen-
ticationTicket assegnatogli precedentemente
risulta ancora valido, l’utente è automa-
ticamente autenticato dal server, che gli
assegna un nuovo ApplicationTicket per la
nuova applicazione richiesta. In questo modo
l’utente riesce ad accedere a tutte le
applicazioni registrate, senza che debba ripe-
tere la fase di login sul server di SSO, realiz-
zando di fatto un meccanismo di Single Sign
On.
Architettura di SSOServer
L’architettura di SSOServer è stata proget-
tata cercando di favorire i seguenti aspetti:
− interfaccia applicativa: le funzionalità del
server devono poter essere accedute dalle
applicazioni attraverso un’interfaccia pubblica
semplice da utilizzare e di alto livello;
− interoperabilità: il servizio deve essere il più
possibile indipendente dalla piattaforma di
sviluppo delle applicazioni registrate che
utilizzano le sue funzionalità;
− estensibilità: il server deve comprendere punti
di estensione, in modo che possa essere
utilizzato in contesti diversi.
Per rendere il server parametrico rispetto
alle componenti che svolgono le varie funziona-
lità, si è fatto ricorso al design pattern Provi-
der[5]. Qui di seguito vengono presentate le
componenti principali di SSOServer (Fig 3).
AuthenticationProvider: è il componente
in grado di validare le credenziali di un utente
astraendo sia dalla forma delle credenziali (per
esempio username/password), sia dal modo in
cui esse sono memorizzate (su un database, in
un file di configurazione, in chiaro o criptate,
etc.) e verificate.
SSOProvider: è il modulo che si occupa di
generare e memorizzare effettivamente i ticket,
eliminare quelli scaduti e fornire le informa-
zioni sulle applicazioni registrate. I ticket pos-
sono essere memorizzati in una struttura in
memoria in un database, a seconda del tipo di
implementazione effettiva.
SSOManager: è l’interfaccia del server di
SSO, visto come sistema in grado di generare,
memorizzare e validare i ticket. Rappresenta
l’interfaccia verso il livello che si occupa di pro-
cessare le richieste di accesso al servizio (che
possono essere richieste web/http o di altra na-
tura) e si serve di un AuthenticationProvider
per verificare le credenziali utente e di un SSO-
Provider per gestire i ticket e le applicazioni
registrate.
Controller: i controller gestiscono una ri-
chiesta decidendo il flusso da seguire e le azioni
da intraprendere, in base al tipo di richiesta e
alle risposte dell’SSOManager. Sono definiti
quattro tipi di controller, che corrispondono ai
quattro entrypoint del servizio di SSO: Login-
Controller, ValidationController, LogoutCon-
troller e AuthenticationServiceController. Per
entrypoint intendiamo un punto di ingresso al
server di SSO, associato a una specifica funzio-
nalità. In un contesto web, un entrypoint corri-
sponde a una url del servizio di SSO che per-
mette di accedere a una funzionalità servizio
stesso.
ControllerSupport: è il componente che fa
da supporto al controller, permettendo di
astrarre dal contesto in cui arrivano le richieste
e gestendo il flusso di informazione dal server
verso l’esterno e viceversa. Per esempio, in un
contesto web è il ControllerSupport che si oc-
cupa di recuperare il ticket presentato da un
utente da un cookie, piuttosto che da un para-
metro inviato con la richiesta, o che effettua un
reindirizzamento alla pagina di login quando il
server richiede che l’utente fornisca le sue cre-
denziali.
L’architettura descritta rende il server indi-
pendente dal contesto in cui è utilizzato, in
modo tale che possa essere adattato a esigenze
diverse installando diverse implementazioni dei
vari componenti. Per esempio, è sufficiente in-
stallare un adeguato modulo di ControllerSup-
port per personalizzare la risposta del server o
modificare il meccanismo di recupero dei ticket
presentati dall’utente. In questa prima versione
è fornito un ControllerSupport per il protocollo
http, che permette di usare i servizi di SSO
nell’ambito di applicazioni web mediante l’uso
di cookie e del meccanismo di redirecting, men-
tre l’AuthenticationProvider sviluppato per-
mette di verificare le credenziali attraverso un
database Oracle.
SSOServer può essere usato anche come ser-
vizio di validazione delle credenziali utente,
senza la funzionalità di Sigle Sign On, attra-
verso l’entrypoint AuthenticationService.
Questa funzionalità è utile nell’ambito di
quelle applicazioni che vogliano gestire diret-
tamente la fase di autenticazione, sfruttando
53
comunque il servizio di gestione centralizzata
degli account.
I vari moduli del server, così come le impo-
stazioni della libreria di integrazione, possono
essere facilmente configurati tramite un file
XML. Per quanto riguarda il server, oltre alla
possibilità di configurare l’Authentication-
Provider e l’SSOProvider, è possibile impostare
anche i seguenti parametri:
− tempo di validità degli AuthenticationTicket;
− tempo di validità degli ApplicationTicket;
− rinnovo automatico degli AuthenticationTicket
a ogni accesso dell’utente (sliding expiration);
− tempo di attivazione del TicketCleaner, ovvero
il componente che elimina periodicamente i
ticket scaduti.
Inoltre, l’attività del server viene monito-
rata attraverso opportuni file di logging, che
permettono di tracciare gli eventi di autentica-
zione ed eventuali situazioni anomale che si
siano presentate.
Fig. 3 – Architettura di SSOServer
in un contesto web.
Integrazione client
L’applicazione SSOServer è stata sviluppata
su piattaforma Microsoft con tecnologia .NET
2.0[6], ma le funzionalità del server possono es-
sere integrate in qualsiasi piattaforma web
(Asp.NET, J2EE, PHP, etc.), in quanto il proto-
collo di comunicazione è basato su http. Accanto
al server è stata sviluppata una libreria di inte-
grazione client, SSOWebClient, di cui in questo
primo rilascio è disponibile la versione per la
piattaforma Asp.NET. La libreria gestisce tutto
il protocollo di comunicazione con SSOServer ed
espone una API pubblica per accedere diretta-
mente alle sue funzionalità. In particolare, la
libreria effettua in modo trasparente le seguenti
operazioni:
− intercetta le richieste degli utenti non auten-
ticati ed effettua il redirecting al server,
impostando gli opportuni parametri;
− si occupa di validare gli ApplicationTicket
presentati dagli utenti comunicando diret-
tamente con il server tramite connessione di
rete e interpretando la risposta ricevuta;
− notifica, tramite eventi, l’avvenuta autentica-
zione dell’utente o un’operazione di logout;
− può gestire l'autenticazione automatica gene-
rando e fornendo all'applicazione il relativo
cookie locale per un utente di cui siano state
riconosciute le credenziali;
− permette di accedere al servizio di autentica-
zione per la validazione delle credenziali at-
traverso una api semplice.
La libreria integra ed estende il meccanismo
di Forms Authentication fornito dal Framework
.NET[7].
Conclusioni
Nell’articolo è stato presentato il sistema
SSOServer, che offre un servizio configurabile
ed estendibile di Single Sign On per applica-
zioni web. Il server è stato sviluppato su piatta-
forma Microsoft.NET, ma i suoi servizi sono ac-
cessibili da qualsiasi piattaforma web. Per la
piattaforma Asp.Net è disponibile una libreria
che consente di sfruttare il servizio di SSO in
modo trasparente all’applicazione.
Futuri sviluppi possono riguardare:
− l’utilizzo del protocollo https, per rafforzare la
sicurezza del protocollo di comunicazione
− lo sviluppo di un’interfaccia di amministra-
zione del server;
− l’implementazione del meccanismo di single
sign off;
54
−la gestione di più gruppi di applicazioni (do-
mini applicativi), separati tramite la stessa
istanza del server.
Bibliografia
[1] The Open Group: Enterprise Architecture
Standards, Certification and Services.
URL: http://www.opengroup.org/
[2] Microosft MSDN, Single Sign-On
Enterprise Security for Web Applications.
URL: http://msdn2.microsoft.com/en-us/li
brary/ms972971.aspx
[3] JA-SIG Central Authentication Service
(CAS).
URL: http://www.ja-sig.org/products/cas/
[4] Cosign: web single sign-on.
URL: http://www.umich.edu/~umweb/soft
ware/cosign/
[5] Provider Design Pattern.
URL: http://msdn2.microsoft.com/en-us/li
brary/ms972319.aspx
[6] Microsoft .Net Framework.
URL: http://msdn2.microsoft.com/en-us/net
framework/default.aspx
[7] Microsoft .Net Framework Forms
Authentication.
URL: http://msdn2.microsoft.com/en-us/li
brary/aa302397.aspx
55

More Related Content

Similar to Single Sign On sul web

Osnaghi, Meschia, Pianciamore - Gestione Identità Digitale
Osnaghi, Meschia, Pianciamore - Gestione Identità DigitaleOsnaghi, Meschia, Pianciamore - Gestione Identità Digitale
Osnaghi, Meschia, Pianciamore - Gestione Identità DigitaleFrancesco Meschia
 
Sistema di qualificazione delle imprese
Sistema di qualificazione delle impreseSistema di qualificazione delle imprese
Sistema di qualificazione delle impresePellegrino Albanese
 
Sistema Federato Interregionale di Autenticazione
Sistema Federato Interregionale di AutenticazioneSistema Federato Interregionale di Autenticazione
Sistema Federato Interregionale di Autenticazionemichelemanzotti
 
Istituzioni, aziende, società: il valore della fiducia digitale - presentazio...
Istituzioni, aziende, società: il valore della fiducia digitale - presentazio...Istituzioni, aziende, società: il valore della fiducia digitale - presentazio...
Istituzioni, aziende, società: il valore della fiducia digitale - presentazio...CSI Piemonte
 
Autenticazione uffici postali20set2015
Autenticazione uffici postali20set2015Autenticazione uffici postali20set2015
Autenticazione uffici postali20set2015Fabio Bolo
 
Sistemi informatici e gestione della spesa (Piera Bitti e Elena Cocco)
Sistemi informatici e gestione della spesa (Piera Bitti e Elena Cocco)Sistemi informatici e gestione della spesa (Piera Bitti e Elena Cocco)
Sistemi informatici e gestione della spesa (Piera Bitti e Elena Cocco)Sardegna Ricerche
 
SVILUPPO DI UNA SOLUZIONE SINGLE SIGN ON PER L’ENTE VENETO LAVORO
SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVOROSVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO
SVILUPPO DI UNA SOLUZIONE SINGLE SIGN ON PER L’ENTE VENETO LAVOROZanatta Davide
 
Protocollo informatico - Protocollazione documenti
Protocollo informatico - Protocollazione documentiProtocollo informatico - Protocollazione documenti
Protocollo informatico - Protocollazione documentiDecatec
 
CloudWALL SSO | Single Sign-on
CloudWALL SSO | Single Sign-onCloudWALL SSO | Single Sign-on
CloudWALL SSO | Single Sign-onCloudWALL Italia
 
Back-end: Guide for developers - Edit by Luca Marasca, Matteo Lupini, Nicolò ...
Back-end: Guide for developers - Edit by Luca Marasca, Matteo Lupini, Nicolò ...Back-end: Guide for developers - Edit by Luca Marasca, Matteo Lupini, Nicolò ...
Back-end: Guide for developers - Edit by Luca Marasca, Matteo Lupini, Nicolò ...Lorenzostacchio
 
Fun with Machine Translation APIs
Fun with Machine Translation APIsFun with Machine Translation APIs
Fun with Machine Translation APIsMassimo Bonanni
 
Tesi Giuseppe Chechile
Tesi   Giuseppe ChechileTesi   Giuseppe Chechile
Tesi Giuseppe Chechilegchechile
 
Gestione pratiche legali finance
Gestione pratiche legali financeGestione pratiche legali finance
Gestione pratiche legali financeMauro Scanferla
 

Similar to Single Sign On sul web (20)

Osnaghi, Meschia, Pianciamore - Gestione Identità Digitale
Osnaghi, Meschia, Pianciamore - Gestione Identità DigitaleOsnaghi, Meschia, Pianciamore - Gestione Identità Digitale
Osnaghi, Meschia, Pianciamore - Gestione Identità Digitale
 
Con04 accesso
Con04 accessoCon04 accesso
Con04 accesso
 
Sistema di qualificazione delle imprese
Sistema di qualificazione delle impreseSistema di qualificazione delle imprese
Sistema di qualificazione delle imprese
 
Sistema Federato Interregionale di Autenticazione
Sistema Federato Interregionale di AutenticazioneSistema Federato Interregionale di Autenticazione
Sistema Federato Interregionale di Autenticazione
 
Istituzioni, aziende, società: il valore della fiducia digitale - presentazio...
Istituzioni, aziende, società: il valore della fiducia digitale - presentazio...Istituzioni, aziende, società: il valore della fiducia digitale - presentazio...
Istituzioni, aziende, società: il valore della fiducia digitale - presentazio...
 
Con04 glossario
Con04 glossarioCon04 glossario
Con04 glossario
 
Single Sign on e OpenID
Single Sign on e OpenIDSingle Sign on e OpenID
Single Sign on e OpenID
 
Global azure2020 identityserver
Global azure2020 identityserverGlobal azure2020 identityserver
Global azure2020 identityserver
 
Autenticazione uffici postali20set2015
Autenticazione uffici postali20set2015Autenticazione uffici postali20set2015
Autenticazione uffici postali20set2015
 
Sicurezza
SicurezzaSicurezza
Sicurezza
 
Sistemi informatici e gestione della spesa (Piera Bitti e Elena Cocco)
Sistemi informatici e gestione della spesa (Piera Bitti e Elena Cocco)Sistemi informatici e gestione della spesa (Piera Bitti e Elena Cocco)
Sistemi informatici e gestione della spesa (Piera Bitti e Elena Cocco)
 
SVILUPPO DI UNA SOLUZIONE SINGLE SIGN ON PER L’ENTE VENETO LAVORO
SVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVOROSVILUPPO DI UNA SOLUZIONE  SINGLE SIGN ON  PER L’ENTE VENETO LAVORO
SVILUPPO DI UNA SOLUZIONE SINGLE SIGN ON PER L’ENTE VENETO LAVORO
 
Protocollo informatico - Protocollazione documenti
Protocollo informatico - Protocollazione documentiProtocollo informatico - Protocollazione documenti
Protocollo informatico - Protocollazione documenti
 
L'IDENTITY MANAGEMENT
L'IDENTITY MANAGEMENTL'IDENTITY MANAGEMENT
L'IDENTITY MANAGEMENT
 
CloudWALL SSO | Single Sign-on
CloudWALL SSO | Single Sign-onCloudWALL SSO | Single Sign-on
CloudWALL SSO | Single Sign-on
 
Back-end: Guide for developers - Edit by Luca Marasca, Matteo Lupini, Nicolò ...
Back-end: Guide for developers - Edit by Luca Marasca, Matteo Lupini, Nicolò ...Back-end: Guide for developers - Edit by Luca Marasca, Matteo Lupini, Nicolò ...
Back-end: Guide for developers - Edit by Luca Marasca, Matteo Lupini, Nicolò ...
 
Fun with Machine Translation APIs
Fun with Machine Translation APIsFun with Machine Translation APIs
Fun with Machine Translation APIs
 
Architetture.Distribuite
Architetture.DistribuiteArchitetture.Distribuite
Architetture.Distribuite
 
Tesi Giuseppe Chechile
Tesi   Giuseppe ChechileTesi   Giuseppe Chechile
Tesi Giuseppe Chechile
 
Gestione pratiche legali finance
Gestione pratiche legali financeGestione pratiche legali finance
Gestione pratiche legali finance
 

More from Vincenzo Calabrò

Vincenzo Calabrò - Generazione ed Analisi di una Timeline Forense
Vincenzo Calabrò - Generazione ed Analisi di una Timeline ForenseVincenzo Calabrò - Generazione ed Analisi di una Timeline Forense
Vincenzo Calabrò - Generazione ed Analisi di una Timeline ForenseVincenzo Calabrò
 
Vincenzo Calabrò - Tracciabilita' delle Operazioni in Rete e Network Forensics
Vincenzo Calabrò - Tracciabilita' delle Operazioni in Rete e Network ForensicsVincenzo Calabrò - Tracciabilita' delle Operazioni in Rete e Network Forensics
Vincenzo Calabrò - Tracciabilita' delle Operazioni in Rete e Network ForensicsVincenzo Calabrò
 
Vincenzo Calabrò - Strumenti e Tecniche per la creazione di un Falso Alibi In...
Vincenzo Calabrò - Strumenti e Tecniche per la creazione di un Falso Alibi In...Vincenzo Calabrò - Strumenti e Tecniche per la creazione di un Falso Alibi In...
Vincenzo Calabrò - Strumenti e Tecniche per la creazione di un Falso Alibi In...Vincenzo Calabrò
 
Vincenzo Calabrò - Evidenza Digitale e Informatica Forense
Vincenzo Calabrò - Evidenza Digitale e Informatica ForenseVincenzo Calabrò - Evidenza Digitale e Informatica Forense
Vincenzo Calabrò - Evidenza Digitale e Informatica ForenseVincenzo Calabrò
 
Vincenzo Calabrò - Modalità di intervento del Consulente Tecnico
Vincenzo Calabrò - Modalità di intervento del Consulente TecnicoVincenzo Calabrò - Modalità di intervento del Consulente Tecnico
Vincenzo Calabrò - Modalità di intervento del Consulente TecnicoVincenzo Calabrò
 
La Riduzione del Rischio - D.Lgs. 231/2001
La Riduzione del Rischio - D.Lgs. 231/2001La Riduzione del Rischio - D.Lgs. 231/2001
La Riduzione del Rischio - D.Lgs. 231/2001Vincenzo Calabrò
 
Le Best Practices per proteggere Informazioni, Sistemi e Reti
Le Best Practices per proteggere Informazioni, Sistemi e RetiLe Best Practices per proteggere Informazioni, Sistemi e Reti
Le Best Practices per proteggere Informazioni, Sistemi e RetiVincenzo Calabrò
 
La Privacy: Protezione dei Dati Personali
La Privacy: Protezione dei Dati PersonaliLa Privacy: Protezione dei Dati Personali
La Privacy: Protezione dei Dati PersonaliVincenzo Calabrò
 
Implementazione Politiche di Sicurezza
Implementazione Politiche di SicurezzaImplementazione Politiche di Sicurezza
Implementazione Politiche di SicurezzaVincenzo Calabrò
 
Criticita Sistemi Informatici
Criticita Sistemi InformaticiCriticita Sistemi Informatici
Criticita Sistemi InformaticiVincenzo Calabrò
 
Introduzione alla Sicurezza Informatica
Introduzione alla Sicurezza InformaticaIntroduzione alla Sicurezza Informatica
Introduzione alla Sicurezza InformaticaVincenzo Calabrò
 
OpenID Connect 1.0: verifica formale del protocollo in HLPSL
OpenID Connect 1.0: verifica formale del protocollo in HLPSLOpenID Connect 1.0: verifica formale del protocollo in HLPSL
OpenID Connect 1.0: verifica formale del protocollo in HLPSLVincenzo Calabrò
 
Il Cloud Computing: la nuova sfida per legislatori e forenser
Il Cloud Computing: la nuova sfida per legislatori e forenserIl Cloud Computing: la nuova sfida per legislatori e forenser
Il Cloud Computing: la nuova sfida per legislatori e forenserVincenzo Calabrò
 
La timeline: aspetti tecnici e rilevanza processuale
La timeline: aspetti tecnici e rilevanza processualeLa timeline: aspetti tecnici e rilevanza processuale
La timeline: aspetti tecnici e rilevanza processualeVincenzo Calabrò
 
Il Diritto Processuale Penale dell’Informatica e le Investigazioni Informatiche
Il Diritto Processuale Penale dell’Informatica e le Investigazioni InformaticheIl Diritto Processuale Penale dell’Informatica e le Investigazioni Informatiche
Il Diritto Processuale Penale dell’Informatica e le Investigazioni InformaticheVincenzo Calabrò
 

More from Vincenzo Calabrò (20)

Vincenzo Calabrò - Generazione ed Analisi di una Timeline Forense
Vincenzo Calabrò - Generazione ed Analisi di una Timeline ForenseVincenzo Calabrò - Generazione ed Analisi di una Timeline Forense
Vincenzo Calabrò - Generazione ed Analisi di una Timeline Forense
 
Vincenzo Calabrò - Tracciabilita' delle Operazioni in Rete e Network Forensics
Vincenzo Calabrò - Tracciabilita' delle Operazioni in Rete e Network ForensicsVincenzo Calabrò - Tracciabilita' delle Operazioni in Rete e Network Forensics
Vincenzo Calabrò - Tracciabilita' delle Operazioni in Rete e Network Forensics
 
Vincenzo Calabrò - Strumenti e Tecniche per la creazione di un Falso Alibi In...
Vincenzo Calabrò - Strumenti e Tecniche per la creazione di un Falso Alibi In...Vincenzo Calabrò - Strumenti e Tecniche per la creazione di un Falso Alibi In...
Vincenzo Calabrò - Strumenti e Tecniche per la creazione di un Falso Alibi In...
 
Vincenzo Calabrò - Evidenza Digitale e Informatica Forense
Vincenzo Calabrò - Evidenza Digitale e Informatica ForenseVincenzo Calabrò - Evidenza Digitale e Informatica Forense
Vincenzo Calabrò - Evidenza Digitale e Informatica Forense
 
Vincenzo Calabrò - Modalità di intervento del Consulente Tecnico
Vincenzo Calabrò - Modalità di intervento del Consulente TecnicoVincenzo Calabrò - Modalità di intervento del Consulente Tecnico
Vincenzo Calabrò - Modalità di intervento del Consulente Tecnico
 
La Riduzione del Rischio - D.Lgs. 231/2001
La Riduzione del Rischio - D.Lgs. 231/2001La Riduzione del Rischio - D.Lgs. 231/2001
La Riduzione del Rischio - D.Lgs. 231/2001
 
Le Best Practices per proteggere Informazioni, Sistemi e Reti
Le Best Practices per proteggere Informazioni, Sistemi e RetiLe Best Practices per proteggere Informazioni, Sistemi e Reti
Le Best Practices per proteggere Informazioni, Sistemi e Reti
 
Open vs. Closed Source
Open vs. Closed SourceOpen vs. Closed Source
Open vs. Closed Source
 
La Privacy: Protezione dei Dati Personali
La Privacy: Protezione dei Dati PersonaliLa Privacy: Protezione dei Dati Personali
La Privacy: Protezione dei Dati Personali
 
Sicurezza in Rete
Sicurezza in ReteSicurezza in Rete
Sicurezza in Rete
 
Reti di Calcolatori
Reti di CalcolatoriReti di Calcolatori
Reti di Calcolatori
 
Implementazione Politiche di Sicurezza
Implementazione Politiche di SicurezzaImplementazione Politiche di Sicurezza
Implementazione Politiche di Sicurezza
 
Criticita Sistemi Informatici
Criticita Sistemi InformaticiCriticita Sistemi Informatici
Criticita Sistemi Informatici
 
Introduzione alla Sicurezza Informatica
Introduzione alla Sicurezza InformaticaIntroduzione alla Sicurezza Informatica
Introduzione alla Sicurezza Informatica
 
Programmazione Sicura
Programmazione SicuraProgrammazione Sicura
Programmazione Sicura
 
OpenID Connect 1.0: verifica formale del protocollo in HLPSL
OpenID Connect 1.0: verifica formale del protocollo in HLPSLOpenID Connect 1.0: verifica formale del protocollo in HLPSL
OpenID Connect 1.0: verifica formale del protocollo in HLPSL
 
Il Cloud Computing: la nuova sfida per legislatori e forenser
Il Cloud Computing: la nuova sfida per legislatori e forenserIl Cloud Computing: la nuova sfida per legislatori e forenser
Il Cloud Computing: la nuova sfida per legislatori e forenser
 
La timeline: aspetti tecnici e rilevanza processuale
La timeline: aspetti tecnici e rilevanza processualeLa timeline: aspetti tecnici e rilevanza processuale
La timeline: aspetti tecnici e rilevanza processuale
 
Il Diritto Processuale Penale dell’Informatica e le Investigazioni Informatiche
Il Diritto Processuale Penale dell’Informatica e le Investigazioni InformaticheIl Diritto Processuale Penale dell’Informatica e le Investigazioni Informatiche
Il Diritto Processuale Penale dell’Informatica e le Investigazioni Informatiche
 
Proteggiamo I Dati
Proteggiamo I DatiProteggiamo I Dati
Proteggiamo I Dati
 

Single Sign On sul web

  • 1. Abstract Un Sigle Sign On (SSO) è un sistema di autenticazione centralizzata che consente a un utente di fornire le proprie credenziali una sola volta e di accedere a molteplici risorse e applicazioni all’interno di una rete locale o della rete Internet. Un tale meccanismo aumenta l’usabilità delle applicazioni dal punto di vista dell’utente e consente una gestione semplificata degli account. L’articolo affronta le problematiche di Single Sign On nel contesto di applicazioni web e presenta il sistema SSOServer, che permette di realizzare un servizio di Single Sign On sul web. A Single Sign On (SSO) is a centralized authentication system that allows a user to supply his credentials once and gain access to multiple resources and applications in a local network or the Internet. A mechanism of such kind increases the usability of the applications for the users and allows a simplified management of user accounts. This article discusses the single sign on for web applications and introduces SSOServer, a system that realizes a single sign on service for the web. Keywords: Single sign on, Autenticazione, SSOServer. Introduzione al Single Sign On Nell’approccio tradizionale, i sistemi distri- buiti sono costituiti da più componenti, ciascuno con un proprio dominio di sicurezza, da cui la necessità per l’utente di autenticarsi presso ogni componente con cui deve interagire. Considera- zioni legate all’usabilità e alla sicurezza sugge- riscono di coordinare e integrare i servizi di au- tenticazione e la gestione degli account degli utenti attraverso un sistema di Single Sign On (SSO), un meccanismo di autenticazione cen- tralizzata, che consente a un utente di autenti- carsi in un sistema informatico una sola volta e di accedere a molteplici risorse. Tale meccani- smo trova applicazione in contesti diversi, come l’accesso a risorse (file, stampanti, etc.) all’in- terno di una intranet, o la fruizione di servizi disponibili sul web. Un sistema di SSO apporta benefici sia lato client che lato server: − lato client, l’utente impiega meno tempo nelle operazioni di login e non è costretto a ricor- dare diverse credenziali per accedere a sistemi diversi; − lato server, gli amministratori possono gestire gli account utente in modo centralizzato e con- trollare in modo uniforme e consistente i di- ritti di accesso (autorizzazioni), rafforzando la sicurezza del sistema. Autenticazione centralizzata per applica- zioni il web L’autenticazione è la fase durante la quale un utente fornisce la propria identità al sistema e precede la fase di autorizzazione con cui si verifica che l’utente abbia i privilegi necessari per accedere alla risorsa protetta. In ambito web, si associa all’utente un codice unico, per esempio sotto forma di un ticket, che identifica l’utente e consente di accedere al suo profilo personale. Solitamente questa funzionalità è implementata inserendo il ticket all’interno di un cookie, oppure tramite riscrittura della url. Entrambi i metodi si basano sul presupposto che a ogni richiesta successiva il client http dell’utente ripresenterà il ticket all’appli- cazione. Il limite di questo meccanismo risiede nel fatto che i ticket sono contestuali alle singole applicazioni e inoltre il protocollo http non consente facilmente lo scambio di informa- zioni (per esempio tramite cookie) tra applica- zioni su domini diversi. Un sistema per l’autenticazione centraliz- zata prevede un insieme di applicazioni web che costituiscono un dominio applicativo e condivi- dono lo stesso bacino di utenti. Le applicazioni sono registrate presso un server di SSO attra- verso un’opportuna interfaccia di amministra- zione. Compito del server di SSO è di estendere 51 Single Sign On sul web
  • 2. il meccanismo descritto sopra e permettere la condivisione delle informazioni di autentica- zione tra applicazioni diverse, in modo traspa- rente alle applicazioni stesse. Questa funziona- lità è offerta dal sistema sviluppato, SSOServer, che sarà presentato nei paragrafi seguenti. SSOServer e protocollo di comunicazione SSOServer può essere visto come un servizio in grado di generare, memorizzare e validare i ticket che permettono agli utenti di autenticarsi e avere accesso alle applicazioni registrate. Agli utenti possono essere associati due tipi di ticket (Fig. 1): − AuthenticationTicket: ticket associato all’utente durante la fase di login, utilizzato per identificare l’utente univocamente presso il server; − ApplicationTicket: consente a uno specifico utente di accedere a un’applicazione un nu- mero limitato di volte (solitamente una sola volta) ed entro un certo periodo di tempo (soli- tamente molto breve). All’utente provvisto di un AuthenticationTi- cket valido è possibile assegnare dei ticket di applicazione, che possono essere spesi per acce- dere alle applicazioni registrate. Una volta che un ticket di applicazione è stato usato viene in- validato e non può garantire ulteriore accesso all’applicazione per il quale era stato generato. Fig. 1 – Relazioni tra utenti, AuthenticationTicket, ApplicationTicket e applicazioni. Il protocollo di comunicazione tra il server e le applicazioni registrate può essere schematiz- zato nei seguenti passi (Fig. 2): 1. Un utente cerca di accedere per la prima volta a una pagina protetta delle applica- zioni registrate; poiché non è riconosciuto viene reindirizzato al server di SSO, che gli presenta il modulo per l’inserimento delle proprie credenziali. 2. Se le credenziali sono verificate con successo, vengono generati un AuthenticationTicket, associato all’utente, e un ApplicationTicket, associato all’applicazione richiesta. Entrambi i ticket sono consegnati all’utente, che viene reindirizzato nuovamente all’applicazione ri- chiesta. Fig. 2 – Interazione tra utente (web client), SSOServer e applicazioni web durante la fase di autenticazione secondo il protocollo di comunicazione descritto. Nel primo scenario l’utente non è ancora autenticato e deve effettuare la fase di login presso SSOServer; nel secondo scenario l’utente è automa- ticamente riconosciuto, per cui si realizza un meccanismo di single sign on. 3. L’utente può presentare l’ApplicationTicket all’applicazione, che ne controlla la validità mediante una richiesta al server di SSO. Se il ticket presentato dall’utente è valido, il server risponde con un identificativo unico, che permette di recuperare l’identità dell’utente da un datastore locale all’ap- plicazione. A questo punto l’applicazione può mettere in atto un proprio meccanismo per riconoscere automaticamente l’utente, senza richiedere l’intervento del server di SSO per le richieste future. Per esempio l’appli- 52
  • 3. cazione può assegnare all’utente un proprio cookie di autenticazione. 4. Quando l’utente accede per la prima volta a un’altra applicazione registrata, viene nuo- vamente reindirizzato al server di SSO, in quanto non è riconosciuto. Se l’Authen- ticationTicket assegnatogli precedentemente risulta ancora valido, l’utente è automa- ticamente autenticato dal server, che gli assegna un nuovo ApplicationTicket per la nuova applicazione richiesta. In questo modo l’utente riesce ad accedere a tutte le applicazioni registrate, senza che debba ripe- tere la fase di login sul server di SSO, realiz- zando di fatto un meccanismo di Single Sign On. Architettura di SSOServer L’architettura di SSOServer è stata proget- tata cercando di favorire i seguenti aspetti: − interfaccia applicativa: le funzionalità del server devono poter essere accedute dalle applicazioni attraverso un’interfaccia pubblica semplice da utilizzare e di alto livello; − interoperabilità: il servizio deve essere il più possibile indipendente dalla piattaforma di sviluppo delle applicazioni registrate che utilizzano le sue funzionalità; − estensibilità: il server deve comprendere punti di estensione, in modo che possa essere utilizzato in contesti diversi. Per rendere il server parametrico rispetto alle componenti che svolgono le varie funziona- lità, si è fatto ricorso al design pattern Provi- der[5]. Qui di seguito vengono presentate le componenti principali di SSOServer (Fig 3). AuthenticationProvider: è il componente in grado di validare le credenziali di un utente astraendo sia dalla forma delle credenziali (per esempio username/password), sia dal modo in cui esse sono memorizzate (su un database, in un file di configurazione, in chiaro o criptate, etc.) e verificate. SSOProvider: è il modulo che si occupa di generare e memorizzare effettivamente i ticket, eliminare quelli scaduti e fornire le informa- zioni sulle applicazioni registrate. I ticket pos- sono essere memorizzati in una struttura in memoria in un database, a seconda del tipo di implementazione effettiva. SSOManager: è l’interfaccia del server di SSO, visto come sistema in grado di generare, memorizzare e validare i ticket. Rappresenta l’interfaccia verso il livello che si occupa di pro- cessare le richieste di accesso al servizio (che possono essere richieste web/http o di altra na- tura) e si serve di un AuthenticationProvider per verificare le credenziali utente e di un SSO- Provider per gestire i ticket e le applicazioni registrate. Controller: i controller gestiscono una ri- chiesta decidendo il flusso da seguire e le azioni da intraprendere, in base al tipo di richiesta e alle risposte dell’SSOManager. Sono definiti quattro tipi di controller, che corrispondono ai quattro entrypoint del servizio di SSO: Login- Controller, ValidationController, LogoutCon- troller e AuthenticationServiceController. Per entrypoint intendiamo un punto di ingresso al server di SSO, associato a una specifica funzio- nalità. In un contesto web, un entrypoint corri- sponde a una url del servizio di SSO che per- mette di accedere a una funzionalità servizio stesso. ControllerSupport: è il componente che fa da supporto al controller, permettendo di astrarre dal contesto in cui arrivano le richieste e gestendo il flusso di informazione dal server verso l’esterno e viceversa. Per esempio, in un contesto web è il ControllerSupport che si oc- cupa di recuperare il ticket presentato da un utente da un cookie, piuttosto che da un para- metro inviato con la richiesta, o che effettua un reindirizzamento alla pagina di login quando il server richiede che l’utente fornisca le sue cre- denziali. L’architettura descritta rende il server indi- pendente dal contesto in cui è utilizzato, in modo tale che possa essere adattato a esigenze diverse installando diverse implementazioni dei vari componenti. Per esempio, è sufficiente in- stallare un adeguato modulo di ControllerSup- port per personalizzare la risposta del server o modificare il meccanismo di recupero dei ticket presentati dall’utente. In questa prima versione è fornito un ControllerSupport per il protocollo http, che permette di usare i servizi di SSO nell’ambito di applicazioni web mediante l’uso di cookie e del meccanismo di redirecting, men- tre l’AuthenticationProvider sviluppato per- mette di verificare le credenziali attraverso un database Oracle. SSOServer può essere usato anche come ser- vizio di validazione delle credenziali utente, senza la funzionalità di Sigle Sign On, attra- verso l’entrypoint AuthenticationService. Questa funzionalità è utile nell’ambito di quelle applicazioni che vogliano gestire diret- tamente la fase di autenticazione, sfruttando 53
  • 4. comunque il servizio di gestione centralizzata degli account. I vari moduli del server, così come le impo- stazioni della libreria di integrazione, possono essere facilmente configurati tramite un file XML. Per quanto riguarda il server, oltre alla possibilità di configurare l’Authentication- Provider e l’SSOProvider, è possibile impostare anche i seguenti parametri: − tempo di validità degli AuthenticationTicket; − tempo di validità degli ApplicationTicket; − rinnovo automatico degli AuthenticationTicket a ogni accesso dell’utente (sliding expiration); − tempo di attivazione del TicketCleaner, ovvero il componente che elimina periodicamente i ticket scaduti. Inoltre, l’attività del server viene monito- rata attraverso opportuni file di logging, che permettono di tracciare gli eventi di autentica- zione ed eventuali situazioni anomale che si siano presentate. Fig. 3 – Architettura di SSOServer in un contesto web. Integrazione client L’applicazione SSOServer è stata sviluppata su piattaforma Microsoft con tecnologia .NET 2.0[6], ma le funzionalità del server possono es- sere integrate in qualsiasi piattaforma web (Asp.NET, J2EE, PHP, etc.), in quanto il proto- collo di comunicazione è basato su http. Accanto al server è stata sviluppata una libreria di inte- grazione client, SSOWebClient, di cui in questo primo rilascio è disponibile la versione per la piattaforma Asp.NET. La libreria gestisce tutto il protocollo di comunicazione con SSOServer ed espone una API pubblica per accedere diretta- mente alle sue funzionalità. In particolare, la libreria effettua in modo trasparente le seguenti operazioni: − intercetta le richieste degli utenti non auten- ticati ed effettua il redirecting al server, impostando gli opportuni parametri; − si occupa di validare gli ApplicationTicket presentati dagli utenti comunicando diret- tamente con il server tramite connessione di rete e interpretando la risposta ricevuta; − notifica, tramite eventi, l’avvenuta autentica- zione dell’utente o un’operazione di logout; − può gestire l'autenticazione automatica gene- rando e fornendo all'applicazione il relativo cookie locale per un utente di cui siano state riconosciute le credenziali; − permette di accedere al servizio di autentica- zione per la validazione delle credenziali at- traverso una api semplice. La libreria integra ed estende il meccanismo di Forms Authentication fornito dal Framework .NET[7]. Conclusioni Nell’articolo è stato presentato il sistema SSOServer, che offre un servizio configurabile ed estendibile di Single Sign On per applica- zioni web. Il server è stato sviluppato su piatta- forma Microsoft.NET, ma i suoi servizi sono ac- cessibili da qualsiasi piattaforma web. Per la piattaforma Asp.Net è disponibile una libreria che consente di sfruttare il servizio di SSO in modo trasparente all’applicazione. Futuri sviluppi possono riguardare: − l’utilizzo del protocollo https, per rafforzare la sicurezza del protocollo di comunicazione − lo sviluppo di un’interfaccia di amministra- zione del server; − l’implementazione del meccanismo di single sign off; 54
  • 5. −la gestione di più gruppi di applicazioni (do- mini applicativi), separati tramite la stessa istanza del server. Bibliografia [1] The Open Group: Enterprise Architecture Standards, Certification and Services. URL: http://www.opengroup.org/ [2] Microosft MSDN, Single Sign-On Enterprise Security for Web Applications. URL: http://msdn2.microsoft.com/en-us/li brary/ms972971.aspx [3] JA-SIG Central Authentication Service (CAS). URL: http://www.ja-sig.org/products/cas/ [4] Cosign: web single sign-on. URL: http://www.umich.edu/~umweb/soft ware/cosign/ [5] Provider Design Pattern. URL: http://msdn2.microsoft.com/en-us/li brary/ms972319.aspx [6] Microsoft .Net Framework. URL: http://msdn2.microsoft.com/en-us/net framework/default.aspx [7] Microsoft .Net Framework Forms Authentication. URL: http://msdn2.microsoft.com/en-us/li brary/aa302397.aspx 55