1. Politecnico di Milano
Facoltà di Ingegneria dell'informazione
Autenticazione in ambito REST
OAuth vs Metodi tradizionali
Progetto per il corso di Tecnologie dei Servizi 1
24 Gennaio 2011
2. Stato dell'arte
Service Oriented Architecture
WS Provider
fornisce servizi e
implementa la
businnes logic
WS Requestor
richiede uno o più servizi
WS Registry
“directory” dove
pubblicare e cercare la
descrizione dei servizi
2009/2010 Autenticazione in ambito REST 2
3. Stato dell'arte (2)
REST & Resource Oriented
Architecture
resource : “any information that can be named” (Fielding)
Elemento Significato
Resource Documento legale PUT CREATE
Resource identifier URI GET RETRIEVE
Representation File .pdf
POST UPDATE
Representation metadata Hash del documento
DELETE DELETE
Data control If modified since
xx/xx/xxxx
2009/2010 Autenticazione in ambito REST 3
4. Web Services Security
SOAP Security
-> WS Security set di estensioni per implementare integrità e
confidenzialità dei messaggi da integrare con protocolli di livello
applicativo ed estensioni dei singoli Web Services
RESTful Security
WEB CACHES
-> Autenticazione utente
Dati statici,
-> TLS per le sessioni memorizzati
in cache, non
-> Certificati possono essere protetti
e prelevati allo
-> Cookies stesso tempo !!!
2009/2010 Autenticazione in ambito REST 4
5. OAuth protocol
Come ottenere accessi privilegiati a risorse sul
web senza l'utilizzo esplicito delle proprie
credenziali !?!
OAUTH TOKENS
OAuth Authentication Flows
OAuth Provider
OAuth Consumer
2009/2010 Autenticazione in ambito REST 5
6. OAuth protocol (2)
○ OAuth v1.0 (2007)
requisiti crittografici stringenti
scarsa user experience
problemi di scalabilità
○ OAuth v2.0 (2010)
nuovi flows
bearer tokens
firme semplificate
short lived tokens
2009/2010 Autenticazione in ambito REST 6
7. Ruby on Rails
○ Framework open source per costruire
web applications
“Don’t Repeat Yourself && Convention Over Configuration”
○ MVC pattern per la
separazione netta
tra dati, logica e
visualizzazione
2009/2010 Autenticazione in ambito REST 7
8. Il nostro lavoro
○ Obiettivi
Analisi dei metodi di autenticazione e accesso
ai dati
Valutazione delle differenze, dei pro e dei
contro
○ Strumenti utilizzati
Web Application && Desktop Client
2009/2010 Autenticazione in ambito REST 8
9. Mailstat Project
Web Service che consente ai
propri utenti di ottenere
informazioni e statistiche sui
propri account di posta.
Implementa un OAuth
Provider
Realizzato utilizzando il
framework RubyOnRails
Visualizzazione dei dati in
formato .html e .xml
2009/2010 Autenticazione in ambito REST 9
10. Ruby Desktop Client
Simula un generico applicativo per l'accesso a dati su
Web diverso da un comune web browser
Implementa un OAuth Consumer
Realizzato in Ruby (librerie GTK2 per la grafica)
XPath/XQuery per la manipolazione dei
dati ricevuti in formato .xml
Crittografia RSA e AES
2009/2010 Autenticazione in ambito REST 10
11. Risultati e analisi
Double Authentication
USERNAME TOKEN
+ +
PASSWORD SECRET
Credenziali dell'utente Dati di accesso del Client
2009/2010 Autenticazione in ambito REST 11
12. Risultati e analisi (2)
Criticità di Oauth
BEARER TOKENS : trasmetto il token in chiaro su un
canale sicuro; rimuovere la crittografia lato client per
puntare su HTTPS, SSL/TLS può essere un vantaggio se il
servizio accetta solo comunicazioni sicure, altrimenti è
altamente rischioso.
Mailstat
RSA + AES
2009/2010 Autenticazione in ambito REST 12
13. Risultati e analisi (3)
Ruby on Rails Security
Strong password:
almeno 30 chars
Reset della sessione
alla scadenza del
timeout e dopo
ogni login/logout
2009/2010 Autenticazione in ambito REST 13
14. Risultati e analisi (4)
Performance del Web Service
Time (Milliseconds)
Web Browser Client Desktop
Creazione Accesso a Creazione Accesso a
sessione risorsa sessione risorsa
medie 120 150 800 900
2009/2010 Autenticazione in ambito REST 14
15. Conclusioni
○ Username/Password
PROs : più semplice da implementare, più veloce nei
tempi di risposta
CONs : richiedere le credenziali o memorizzarle,
necessità di un sistema di scadenza delle password
○ OAuth
PROs : più robusto, non richiede lo scambio esplicito
delle credenziali, aggiornamenti automatizzabili
CONs : più complicato da implementare, più costoso
in termini di risorse server
2009/2010 Autenticazione in ambito REST 15