Implementazione del single sign on per l`accesso a sistemi

Implementazione del
single signon
per l'accesso a sistemi,
applicazioni, database e portali della intranet
Giuseppe Sacco
5 maggio 2006
Sommario
zione centralizzata.
Lo fanno i sistemi operativi,
capaci di collegarsi ad un server NIS, NIS+, LDAP,
Single signon è una tecnologia che permette al-
Kerberos o NTLM. Lo fanno i server di posta elet-
l'utente di avere una sola chiave di accesso ai vari
tronica come
applicativi e, in un secondo momento, di eettua-
stema operativo, oppure su utenti memorizzati in
re l'autenticazione una sola volta pur accedendo a
un DBMS. Lo fanno i server proxy come
tutta una serie di risorse e applicazioni.
Se all'i-
possono fungere da autenticatore per tutte le appli-
nizio c'era solo una applicazione, ad esempio per
cazioni web) capaci di autenticare su sistemi LDAP
la contabilità, adesso gli si sono aancati l'uten-
o NTLM. Lo fanno gli application server java, co-
za del sistema operativo, quella della posta elettro-
me
nica, quella sul nuovo gestionale, ed altre ancora.
tramite GSS-API.
exim,
che sanno autenticare sul si-
squid (che
WebSphere tramite JAAS e, per il secondo passo
Tutte queste applicazioni richiedono di vericare l'i-
Probabilmente in ogni azienda ci sono delle mac-
dentità dell'utilizzatore e in genere lo fanno in base
chine Windows che fanno parte di un dominio
a un database interno nel quale sono memorizzate
NTLM. Da questo punto è molto facile passare a
le credenziali (login e password) e altri dati che ri-
dare l'accesso alle risorse di rete, anche se queste
guardano l'identità dell'utente e i diritti di accesso
sono gestite dalla controparte open source chiama-
all'applicazione. La gestione di tutti questi data-
ta
base è onerosa sia per l'utente che deve ricordarsi
inserire nella gestione centralizzata gli account di
ogni sua credenziale, sia per l'amministratore che
posta elettronica e le rubriche personali e condivise
deve aggiungere o modicare i dati di una perso-
degli utenti. Questo secondo passo di norma richie-
na in molti posti. Ci sono varie tipologie di single
de il passaggio ad un directory service che in genere
signon alcune prevedono l'interposizione di un l-
è LDAP, tramite la sua implementazione più cono-
tro tra l'utente e l'applicazione, altre invece richie-
sciuta,
dono che l'applicazione sia a conoscenza del metodo
re memorizzate tutte quelle informazioni che prima
di autenticazione utilizzato.
erano nel server NTLM (che a volte è esso stesso un
samba.
Il passo successivo è di norma quello di
openldap.
Nel server LDAP possono esse-
server LDAP nascosto dal nome ActiveDirectory.)
1
Inoltre l'adozione di rubriche di indirizzi condivi-
Autenticazione esterna
se aiuta spesso la gestione dei dipartimenti di una
azienda e permette di avere sempre online le infor-
Il primo passo verso la semplicazione della gestio-
mazioni che prima risiedevano sui computer delle
ne delle identità è quello di adarsi ad un gesto-
singole persone.
re unico.
Si tratta di un passo che richiede sia
Chi già avesse sistemi operativi GNU/Linux o
delle modiche architetturali all'azienda, che deve
Unix non troverà dicoltà nel passaggio all'uso
dotarsi di tale servizio di autenticazione, sia delle
di LDAP e, probabilmente otterrà gratis anche
modiche alle applicazioni, che devono usare tale
il passaggio di alcune delle applicazioni che ci gi-
servizio.
rano sopra e si basano sull'autenticazione del si-
In realtà, ormai gran parte delle applicazioni esi-
stema operativo. Si possono autenticare su server
stenti sul mercato permette di gestire l'autentica-
LDAP, eventualmente tramite il sistema operativo,
1
Lixper S.r.l.
via Arbe 27, Torino
http://www.lixper.it
2
gli applicativi scritti in java (usando
JAAS),
LDAP, postgresql, MySQL e lo stesso meccanismo
i data-
PAM.
base postgresql (tramite PAM), informix (tramite
PAM), e oracle (tramite
KERBEROS
RADIUS).
Poiché si tratta di un servizio TCP/IP, RADIUS
ha anche un protocollo sicuro di comunicazione tra
Per quegli applicativi che non permettono l'au-
le applicazioni e il server stesso.
tenticazione, nel senso che non hanno una gestione
degli utenti, l'unica cosa da fare è interporre all'applicativo un altro programma che si occupi del-
1.3
l'autenticazione dell'utente. Nel caso di programmi
JAAS
utilizzabili da browser, quindi con una interfaccia
JAAS, come molte delle infrastrutture di Java, è
web, è possibile utilizzare un proxy che richieda le
il porting all'interno del mondo java di qualcosa
credenziali prima di permettervi l'accesso. Nel caso
che già esiste nel mondo dell'informatica. In que-
di applicativi con interfaccia
sto caso particolare si tratta della copia di PAM
ASCII
è normalmente
utilizzato un programma, detto screen scraper, che
per le applicazioni Java.
nge di essere una persona e inserisce le credenziali
delle credenziali, JAAS fornisce una infrastruttura
Oltre all'autenticazione
prima di farvi accedere l'utente.
per le autorizzazioni, vale a dire per l'esecuzione di
operazioni privilegiate.
1.1
PAM
2
Il Pluggable Authentication Module è un meccanismo in uso sui vari sistemi GNU/Linux e Unix
Quando si parla di sistemi di autenticazione si -
che permette di avere una astrazione dal vero sistema di autenticazione.
nisce spesso con il parlare di Kerberos.
L'applicazione deve solo
e divenuto uno degli standard per l'autenticazione
lizza i le di congurazione opportunamente com-
sicura. In questo momento tutti i maggiori Unix e
pilati per eseguire l'autenticazione sul sistema cor-
anche Windows 2000 hanno la possibilità di auten-
Esistono dei metodi per autenticare su le
/etc/passwd,
Si tratta
di un protocollo sviluppato al MIT negli anni '80
preoccuparsi di utilizzare la libreria PAM che uti-
retto.
Kerberos
ticare un utente o un servizio su un server Kerbe-
NIS, LDAP, database SQL e altro
ros. Il protocollo è pubblico e il MIT ha sviluppato
ancora.
una sua implementazione open source che è molto
La grande utilità di PAM è proprio la sua modu-
diusa.
larità che da un lato permette a chi sviluppa l'appli-
Al contrario di molti meccanismi di autentica-
cazione di non preoccuparsi dell'autenticazione del-
zione che possono essere trasparenti all'applicazio-
l'utente e dall'altro permette di avere un solo punto
ne, Kerberos richiede una gestione specica, non
nel quale sono denite le identità degli utenti.
tanto per l'autenticazione dell'utente quanto per il
Il punto a sfavore di PAM rispetto all'uso di
passaggio delle credenziali da una applicazione al-
LDAP è che tramite PAM si possono solo controlla-
l'altra.
re le credenziali come username e password, mentre
Ovviamente non tutto va scritto da zero
e ci sono varie librerie che permettono di accedere
con LDAP è possibile avere tutta una serie di infor-
abbastanza agevolmente a questo tipo di autenti-
mazioni associate a queste credenziali. Per questo,
cazione. In particolare per quanto concerne Java,
se è necessaria la gestione delle identità è opportuno
è stata sviluppata una libreria chiamata GSS-API
accedere direttamente a LDAP.
per lo scambio di credenziali tra applicazioni (che
in questo momento supporta solo Kerberos.)
1.2
RADIUS
Per l'implementazione completa del single sign
on, che quindi prevede il passaggio da una applica-
RADIUS è un altro meccanismo analogo a quel-
zione all'altra mantenendo l'identità e non dovendo
lo del PAM. Non si tratta di una libreria, ma di
reinserire la password, si deve necessariamente uti-
una applicazione vera e propria, con un suo ser-
lizzare Kerberos, oppure sviluppare un meccanismo
ver, che accetta le richieste dalle altre applicazioni
e verica le credenziali.
source di RADIUS,
analogo.
L'implementazione open
freeradius,
permette di ese-
guire poi l'autenticazione su diversi backend come
2