Il protocollo OAuth consente alle app di autenticarsi rispetto ai servizi

  • Mark Wilkinson
  • 0
  • 2267
  • 150

In un recente progetto, avevo bisogno di utilizzare un servizio che utilizzava OAuth per l'autenticazione. Avevo sentito parlare di OAuth, ma non avevo usato il protocollo relativamente nuovo. Sono stato in grado di raggiungere i miei obiettivi senza dover programmare direttamente le specifiche OAuth, ma ho deciso di scavare un po 'più a fondo per saperne di più sulle viscere del protocollo.

Una panoramica di OAuth

OAuth è progettato per consentire a un utente di un'applicazione di lavorare con i dati di un servizio, senza dover fornire all'applicazione le credenziali per il servizio. Il grande concetto alla base di OAuth è che utilizza i token per consentire alle applicazioni di autenticarsi rispetto ai servizi. Quando un'applicazione desidera lavorare con un servizio, richiede un token dal servizio. Questo token è inizialmente inutile, ovvero non può essere utilizzato per l'autenticazione. Al contrario, l'applicazione chiede all'utente di andare al servizio (dietro le quinte, passa i dati nel collegamento o reindirizza sul token); quando l'utente arriva lì, accede con le proprie credenziali prestabilite. Ciò trasforma il token ricevuto dall'applicazione in un token autorizzato, consentendone l'utilizzo per l'autenticazione. Questa si chiama autenticazione a tre gambe poiché coinvolge tre attori: l'applicazione, l'utente e il servizio. Esiste anche un'autenticazione a due gambe tra un'applicazione e il servizio, che non richiede l'intervento dell'utente.

C'è molto di più su come funziona il protocollo rispetto a quello che ho delineato in questa breve introduzione; per maggiori dettagli, visita il sito Web OAuth e leggi gli eccellenti articoli su OAuth su hueniverse.

Risorse OAuth ed esempi di codice

Inizialmente, avrei scritto tutto il codice di accesso da solo, ma ho imparato che la libreria RestSharp supporta OAuth. Se il tuo piano è di lavorare con un servizio in stile REST, questa è la soluzione migliore. RestSharp è una libreria eccellente per lavorare con i servizi REST e semplifica la gestione.

Per quello su cui stavo lavorando, non potevo usare RestSharp a causa delle strutture di classe coinvolte. Inoltre, il servizio con cui stavo integrando aveva già un codice di esempio eccezionale che richiedeva poche modifiche per soddisfare le mie esigenze - era più di una routine, "scrivere un sacco di LINQ-to-XML per popolare le variabili" tipo di sforzo. Tale codice utilizzava la libreria OAuth DevDefined con alcune modifiche.

Se sei interessato a vedere il codice di esempio che mi è stato così utile, oltre a un buon tutorial video che mostra come funziona l'autenticazione a tre gambe, la documentazione per sviluppatori Xero è dove trovarla. Xero ha anche esempi di codice ed esercitazioni che mostrano l'utilizzo di OAuth nella vita reale.

Sommario

OAuth può sembrare complesso quando si guardano le specifiche e i dettagli, ma in realtà non è affatto male. Offre ai servizi tutte le opzioni al mondo per decidere come gestire l'autenticazione con l'utente finale. Il grande vantaggio dell'utilizzo di OAuth è che l'applicazione che consuma non ha bisogno di conoscere le credenziali dell'utente, eliminando intere classi di problemi di sicurezza.

Ho la sensazione che OAuth diventerà più popolare in futuro poiché più servizi offrono interfacce non SOAP. Un posto, ad esempio, che utilizza OAuth è il DataMarket di Marketplace di Windows Azure e senza dubbio altri arriveranno presto.

J.Ja




Nessun utente ha ancora commentato questo articolo.

Suggerimenti, informazioni utili e le ultime notizie dal mondo della tecnologia!
Informazioni utili e le ultime novità tecnologiche da tutto il mondo. Recensioni video di telefoni, tablet e computer.