Identity Access Management nel web 2.0 Single Sign On in applicazioni eterogenee Carlo Bonamico, NIS s.r.l. carlo.bonamico@nispro.it 1
Sommario Problematiche di autenticazione in infrastrutture IT complesse Sistemi di Single Sign On tecnologie, vantaggi e caratteristiche rischi e open issue Case Study: progetto SMS per Ansaldo STS architettura Active Directory e Spring Security Risultati e sviluppi futuri 2
Infrastrutture IT complesse L'evoluzione dell' IT permette ad aziende/enti pubblici di fornire servizi sempre più integrati per vasta gamma di terminali, strumenti, applicazioni ad utenti interni ed esterni attraverso canali e protocolli differenti su piattaforme eterogenee Applicazioni Web based e mobile Architetture SOA Problematiche di costi, gestione, supporto, QOS 3
Gestione utenti e autenticazione per applicazioni distribuite / eterogenee Problematiche complessità di gestire numero elevato di utenti per un numero elevato di applicazioni carico di lavoro, costi di gestione e supporto per staff IT utenti costretti a ricordare molte credenziali spesso impossibile obbligare tutti gli utenti all' uso di terminali sofisticati e/o protocolli specifici Requisiti gestione standard e uniforme degli utenti velocità e comodità di accesso sicurezza elevata 4
Approccio: Single Sign On Sistemi e protocolli che permettono a sistemi software indipendenti di condividere la gestione utenti e l'autenticazione In una infrastruttura SSO, una volta che l'utente si è loggato sul primo sistema può accedere in maniera trasparente a tutti gli altri senza dover ripetere l'autenticazione ogni volta Vantaggi Maggiore usabilità Riduzione costi gestione centralizzata e uniforme di accessi e dei permessi riduzione chiamate Utilizzo standard di protocolli e tecniche allo stato dell' arte 5
Approcci In generale, un sistema SSO è basato sul principio che tutte le applicazioni possono verificare la validità della richiesta di accesso approcci peer to peer ma più comunemente client server, con Authentication Server dedicato Molto diffusi approcci Token based credenziali complete vengono fornite solo al momento della prima richiesta verificata la prima richiesta il Server rilascia un token che identifica la sessione cookie, parametro, hash... il terminale manda il token nei successivi accessi alle altre applicazioni che ne verificano la validità interrogando l' Authentication Server Tecnologie Kerberos, CAS, JOSSO, Client Certificate, SAML, Oauth... 6
Single Sign On Token based 1 redirect to server token 3 application 1 user/password token valid 4 client 2 token Auth Server user DB token token application 2 valid 7
Problematiche Maggior complessità architetturale e di configurazione Potenziale overhead nella comunicazione di rete Security Risks access escalation un attacco riuscito al server o al protocollo da accesso a tutte le applicazioni [per contro la singola applicazione è piu' robusta] l' Authentication Server può diventare un Single Point of Failure utilizzo di cluster / backup server 8
Case Study Security Management System progettato e realizzato da Ansaldo STS per soddisfare le sempre crescenti esigenze di sicurezza in ambito trasporti gestione integrata allarmi, flussi video e audio in una rete ferroviaria (stazioni, impianti...) interfaccia web Definizione e implementazione delle politiche di controllo degli accessi forti requisiti di protezione dei dati sensibili 9
Requisiti Accesso da parte degli operatori Single Sign On con gli altri servizi della rete accesso trasparente al terminale (usability) autenticazione forte tramite certificato su smart card Accesso remoto da parte delle forze dell' ordine non dotate di smart card ruolo specifico Protezione da intercettazioni comunicazione sicura su protocollo criptato 10
Accesso utenti esterni 11
Accesso utenti interni 12
Soluzione realizzata Due canali di autenticazione alternativi Utenti interni autenticazione trasparente se la smart card è presente nel lettore verifica dell' identità su Active Directory della rete verifica abilitazione/disabilitazione utenti e ruollo Utenti esterni pagina web di login tradizionale (username/password) verifica identità su database applicativo Autorizzazione sulla base di una struttura di ruoli applicativa 13
Microsoft Active Directory e LDAP AD è un servizio di gestione utenti e risorse estremamente flessibile Base di un dominio Windows a partire da Windows 2000 autenticazione basata su Kerberos Possibilità di clusterizzare server AD e riunirli in una federazione forest formata da molti tree formati da domain Accesso tramite protocollo LDAP 14
Architettura client rete interna cert HTTPS SMS Web Application LDAP Active Directory Server card cert Spring Security application code internal users & groups client Internet user password HTTPS valid roles permissions external users 15
Procedura di autenticazione L'utente inserisce la smart card nel lettore L'utente accede alla pagina web di SMS Il server richiede al browser il certificato Il browser [chiede conferma all'utente e] invia il certificato presente sul security device Il server ne verifica la validità Il server verifica che l'utente (CN) del certificato appartenga al gruppo degli utenti abilitati tramite query su Active Directory Il server verifica i permessi e ruoli di accesso sul DB locale 16
Spring Security Framework e raccolta di componenti di autenticazione e autorizzazione Segue la filosofia del framework Spring con cui si integra estrema modularità e configurabilità facilità di testing integrazione con tutti gli standard di sicurezza lato server J2EE lato sistemi esterni 17
Spring Security caratteristiche Autenticazione: protocolli supportati LDAP Central Authentication Service (CAS) Java Authentication and Authorization Service (JAAS) HTTP authentication X.509 client certificate over Secure Sockets Layer Windows NTLM... Application Server supportati Apache Tomcat, Resin, Jboss, Jetty Autorizzazione a grana fine di metodi Java richieste HTTP e URL 18
Spring Security architettura Architettura modulare ed estensibile componenti di security separati dal codice applicativo (non invasive API) Security Filter e Filter Chain sequenza di filtri che impongono vincoli differenti HTTPSessionContextFilter, LogoutFilter, AuthenticationProcessingFilter, SecurityInterceptorFilter configurata tramite XML Authentication Manager che coordina più AuthenticationProvider es. LDAPAuthenticationProvider a sua volta lookup dati utente e ruoli tramite (LDAP)UserDetailService AccessDecisionManager che coordina più AccessDecisionVoters es. RoleDecisionVoter 19
Configurazione utilizzata <s:http> <s:intercept url pattern="/secure/**" access="role_users"/> <s:intercept url pattern="/**" access="is_authenticated_anonymously" /> <s:form login /> <s:x509 subject principal regex="cn=(.*?)," /> </s:http>
Configurazione Query LDAP UserSearch effettua il lookup dei CN dei certificati per verificare che siano utenti dell' Active Directory ldap.user.base=cn=users,dc=tvcc,dc=int possibile estendere la query per verificare se l'utente è abilitato o disabilitato UserAuthoritiesPopulator estrae la lista dei gruppi a cui fa parte un utente role_prefix=role_ ldap.group.base=cn=builtin,dc=tvcc,dc=int 21
Risultati Meccanismo di Single Sign On interoperabile tra applicazione SMS terminali Windows altre applicazioni della rete RFI Utilizzo di protocolli e framework standard (Active Directory, Spring Security) autenticazione trasparente e forte alta affidabilità, ridotti costi implementativi separazione tra security e application logic, minimizzato codice custom Utilizzo in Metro Campania: sicurezza e monitoraggio su stazioni e altre strutture di rete Centri di controllo regionali e nazionali per le ferrovie italiane 22
Punti aperti e sviluppi futuri Integrazione tra Active Directory e Certification Authority 23
Riferimenti Chris Dunne, Build and implement a single sign on solution http://www.ibm.com/developerworks/web/library/wa singlesign/ Spring Security http://static.springsource.org/spring security/site/ http://tinyurl.com/lyw32x http://www 128.ibm.com/developerworks/java/library/j acegi1 Spring Security e Active Directory http://www.eneset.com/articles/spring security with active directoryin 5 easy steps 24
Grazie per l'attenzione! Un grazie particolare al gruppo di lavoro di Ansaldo STS in particolare Roberto Bianchi e Andrea De Domenico Per maggiori informazioni carlo.bonamico@nispro.it http://www.carlobonamico.com [slide online] http://www.nispro.it http://juggenova.net 25