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