Microsoft Active Directory
Nella mia esperienza di consulente presso fornitori di servizi, ho trovato differenti sistemi ottenuti per il Single Sign-On, quasi esclusivamente relativi ai soli servizi Web. Molti di essi si basano su un agente che si installa su un Web server e un “policy manager” che è in grado di autenticare/autorizzare l’utente ad una specifica risorsa. La tecnica impiegata è efficiente e raggiunge lo scopo per il Single Sign-On su sistemi Web, ma cosa succede se vogliamo autenticarci ad una risorsa non-Web, ad esempio collegarci via SSH ad un sistema Unix? Dovremmo ricordare un’ulteriore utenza e password. Questo non è sufficiente, in quanto la tecnica utilizzata deve coprire l’autenticazione utente a 360 gradi.
Secondo il mio modesto avviso, il produttore che è riuscito a effettuare un vero e proprio “Single Sign-On” è Microsoft: attraverso Active Directory, ovvero il nuovo modello di dominio introdotto da Windows 2000, è in grado di effettuare un’autenticazione su tutte le risorse di rete (condivisione file/stampanti, siti Web, ecc.) semplicemente facendo una “join” al dominio.
Microsoft ha riutilizzato differenti protocolli standard già usati e definiti in ambienti Unix attraverso RFC, anche se a mio avviso paradossalmente poco usati. Devo ammettere che alla casa di Redmond va tutta la mia ammirazione per aver saputo amalgamare in maniera opportuna i vari protocolli, anche se una nota di demerito va al fatto che ne ha modificato la struttura, come in molti casi avviene quando la famosa software company adotta dei protocolli standard. Per soddisfare la curiosità, vedremo in seguito brevemente quali sono le differenze fra lo standard e l’implementazione Microsoft. Il modello Microsoft prevede un repository centrale realizzato attraverso il protocollo LDAP che contiene le utenze e la configurazione delle macchine e dei servizi correlati. Per quanto riguarda invece l’autenticazione degli utenti (siano essi umani o servizi), ha creato un layer di autenticazione che prevede la negoziazione della tipologia di “authentication service” supportata. In particolare si tratta di tre tipologie di autenticazione:
- Windows NT LAN Manager (NTLM). Non si tratta di una vera e propria tecnologia di Single Sign-On: anche se l’utente non si accorge della richiesta di autenticazione, ogni volta che tenta di accedere ad una risorsa, il client invia le credenziali di autenticazione (username e password) che mantiene in una cache in memoria. Questa funzionalità viene mantenuta per compatibilità “verso il basso”, ovvero verso i domini di Windows NT.
- Kerberos. Nuova metodologia di autenticazione introdotta con Windows 2000, rappresenta un vero e proprio sistema di Single Sign-On. Si basa sempre sul concetto di username e password, ma durante la negoziazione del servizio viene passato un ticket (una sorta di pass) che garantisce l’identità, senza però rivelarla (come avviene per NTLM). Kerberos è la tecnologia di default usata in Windows 2000 o superiori ed è quella scelta per la realizzazione del prototipo di Single Sign-On: vedremo in seguito come funziona il sistema Kerberos in dettaglio.
- SSL. Un altro metodo introdotto per l’autenticazione è l’adozione della crittografia a chiave pubblica/privata attraverso SSL. In realtà l’uso vero e proprio di SSL per l’autenticazione si ha solamente attraverso le applicazioni Web. Per effettuare l’accesso su altre risorse di rete, ad esempio condivisione di file e stampanti, Microsoft ha esteso il protocollo Kerberos per usare chiavi pubbliche/private SSL anzichè una chiave privata (la password): questa modifica è descritta in un Internet Draft dal titolo “Public Key Cryptography for Initial Authentication in Kerberos” e permette di utilizzare una smart card per il logon interattivo ai client.