El protocolo OAuth permite que las aplicaciones se autentiquen contra los servicios

  • Cory Strickland
  • 0
  • 4711
  • 641

En un proyecto reciente, necesitaba consumir un servicio que usara OAuth para la autenticación. Había oído hablar de OAuth, pero no había usado el protocolo relativamente nuevo. Pude lograr mis objetivos sin tener que programar directamente a la especificación OAuth, pero decidí profundizar un poco más para aprender más sobre las agallas del protocolo.

Una visión general de OAuth

OAuth está diseñado para permitir que un usuario de una aplicación trabaje con datos de un servicio, sin tener que proporcionar a la aplicación credenciales para el servicio. El gran concepto detrás de OAuth es que usa tokens para permitir que las aplicaciones se autentiquen contra los servicios. Cuando una aplicación quiere trabajar con un servicio, solicita un token del servicio. Este token es inicialmente inútil, es decir, no se puede usar para la autenticación. En cambio, la aplicación le pide al usuario que vaya al servicio (detrás de escena, pasa datos en el enlace o redirige sobre el token); Cuando el usuario llega allí, inicia sesión con sus credenciales preestablecidas. Esto convierte el token que recibió la aplicación en un token autorizado, lo que permite su uso para la autenticación. Esto se llama autenticación de tres patas ya que involucra a tres actores: la aplicación, el usuario y el servicio. También hay una autenticación de dos patas entre una aplicación y el servicio, que no requiere intervención del usuario.

Hay mucho más sobre cómo funciona el protocolo que lo que he esbozado en esta breve introducción; Para más detalles, visite el sitio web de OAuth y lea los excelentes artículos sobre OAuth en hueniverse.

Recursos de OAuth y ejemplos de código

Inicialmente, iba a escribir todo el código de acceso yo mismo, pero aprendí que la biblioteca RestSharp es compatible con OAuth. Si su plan es trabajar con un servicio de estilo REST, esta es su mejor opción. RestSharp es una excelente biblioteca para trabajar con servicios REST y hace que sea fácil tratar con ellos..

Para lo que estaba trabajando, no podía usar RestSharp debido a las estructuras de clase involucradas. Además, el servicio con el que me estaba integrando ya tenía un código de muestra sobresaliente que requería poca modificación para satisfacer mis necesidades: era más una rutina, "escribir mucho LINQ-to-XML para rellenar variables" tipo de esfuerzo. Ese código utilizó la biblioteca DevDefined OAuth con algunas modificaciones.

Si está interesado en ver el código de muestra que me fue tan útil, así como un buen video tutorial que muestra cómo funciona la autenticación de tres patas en la práctica, la documentación del desarrollador de Xero es dónde encontrarla. Xero también tiene ejemplos de código y tutoriales que muestran el uso real de OAuth.

Resumen

OAuth puede parecer complejo cuando nos fijamos en las especificaciones y los detalles, pero en realidad, no está nada mal. Le da a los servicios todas las opciones en el mundo para decidir cómo manejar la autenticación con el usuario final. La gran ventaja de usar OAuth es que la aplicación que consume no necesita conocer las credenciales del usuario, lo que elimina toda clase de problemas de seguridad..

Tengo la sensación de que OAuth se volverá más popular en el futuro a medida que más servicios ofrezcan interfaces que no sean SOAP. Un lugar, por ejemplo, que está usando OAuth es el Mercado de datos de Windows Azure Marketplace y, sin duda, pronto vendrán otros..

J.Ja




Nadie ha comentado sobre este artículo todavía.

¡Consejos, información útil y las últimas noticias del mundo de la tecnología!
Información útil y las últimas novedades tecnológicas de todo el mundo. Revisiones en video de teléfonos, tabletas y computadoras.