Página principal » Internet » ¿Qué es OAuth Connect y cómo usarlo?

    ¿Qué es OAuth Connect y cómo usarlo?

    Muchos de nosotros entramos en contacto con OAuth al navegar por la Web, y la mayoría de nosotros ni siquiera somos conscientes de su existencia. OAuth (autenticación abierta) es un sistema que otorga acceso limitado a sitios web de terceros a cuentas de usuario, por ejemplo, sus cuentas de Twitter o Facebook. Permite a los visitantes interactuar dentro del sitio sin requerir el registro de una nueva cuenta o liberar su nombre de usuario y contraseña a terceros.

    En esta guía, me gustaría presentar el concepto de OAuth y cómo se puede aplicar a los desarrolladores. Hay muchos detalles técnicos involucrados en la implementación de su propia aplicación OAuth. Mi ejemplo se escribirá en PHP usando un contenedor de biblioteca de Twitter, pero podría usar casi cualquier API de programación popular desde Python a Ruby o Objective-C.

    Incluso si el concepto se siente críptico, intente digerir todo lo que pueda. Todavía es una tecnología muy misteriosa, ya que se acaba de redactar en 2007. Desde luego, no entendía cómo desarrollar OAuth Connections completas incluso después de mis primeros tutoriales, pero si te limitas a ella, te darás prisa. Ahora, primero para empezar, una pequeña introducción.!

    ¿Qué problemas podemos resolver??

    Si considera cuánto más se ha conectado Internet, solo tiene sentido que los usuarios quieran compartir información entre varias cuentas de Facebook en Twitter, Tumblr, Foursquare y ahora incluso en aplicaciones móviles como Path o Instagram. El problema que enfrentamos ahora es cómo lograr esto de la manera más segura y sencilla posible. OAuth 1.0 es un intento de resolver este y muchos otros problemas, en comparación con los estándares más antiguos de OpenID. Los usuarios siguen ingresando su nombre de usuario / contraseña en sitios web de terceros solo para conectarse a OpenID. Esto no lo hace más seguro para el usuario. Bajo las especificaciones de OAuth, el usuario nunca necesita almacenar ningún dato de cuenta personal en una base de datos de terceros.

    (Fuente de la imagen: Martin Hassman)

    Con OAuth, el proveedor principal de la cuenta (por ejemplo, Twitter, Facebook) primero lo redireccionará (al usuario) a una página de autorización. Luego, el usuario inicia sesión en la red principal y luego acepta o niega una nueva conexión al sitio web de un tercero. La tecnología es sencillamente sencilla y siempre puede desautorizar las conexiones desde la configuración de su cuenta en cualquier momento. Tenga en cuenta que su contraseña nunca se le da a un tercero, lo que hace que este protocolo sea mucho más seguro que su contraparte.

    Cómo funciona el proceso

    Hay 3 partes a considerar en una llamada estándar de OAuth:

    • Proveedor de servicio - La red principal de la que está intentando extraer datos. Proporcionan la respuesta de la API, como su nombre de usuario, imagen de perfil, URL del sitio web y otras cosas.
    • Consumidor - La aplicación de terceros que buscan recibir datos. Este sería el sitio web o la aplicación móvil que realiza la solicitud de conexión inicial, y también maneja los datos de retorno después de la autorización.
    • Usuario - La persona que está sentada detrás de la computadora interactuando con los sitios web que serían ustedes.!

    El propósito de OAuth no es proporcionar una biblioteca específica para que usen los sitios web. En realidad establece la “reglas” para construir una API de protocolo abierto. Entonces, si bien todos podemos beneficiarnos de esta tecnología, en realidad son los desarrolladores quienes realmente encontrarán interés en esta área. Si necesita más información, consulte la edición v1.0 revisada publicada en abril de 2010.

    Frente a la seguridad

    El proceso completo requiere, en última instancia, 2 claves diferentes junto con un token de acceso. Las claves son proporcionadas por el servicio raíz después de registrar una aplicación, que se conocen como su cliente y ID secreta. La ID del cliente generalmente se pasa a la URL de autenticación para que el servidor pueda reconocer su aplicación.

    La ID secreta se guarda en su código para que el servidor pueda verificar la identidad de su aplicación. Del mismo modo, el servidor remoto hará coincidir su ID secreta con la suya, por lo que no enviará erróneamente una solicitud de Twitter a la API de Facebook o viceversa. Si el usuario autoriza la conexión y todas las claves coinciden, se devuelven a su sitio web con un código largo de números y letras al azar..

    Este código se utiliza para generar un nuevo token de acceso. Se comportan de manera similar a una variable de sesión que puede almacenar en una cookie para mantener al usuario conectado a su sitio web. La única diferencia es que muchos servicios devolverán un token de acceso y un token de acceso secreto. Es probable que necesite ambos para extraer cualquier información del servidor. Un ejemplo podría ser solicitar la foto del perfil del usuario para guardar una copia en su propio sitio web.

    Biblioteca de ejemplos para Twitter OAuth

    No es probable que los desarrolladores comiencen desde cero, ¿por qué no buscar en una biblioteca creada anteriormente? Esto nos ahorrará tiempo, y de dolores de cabeza, al trabajar con PHP. Veamos cómo construir un ejemplo realmente simple sobre la API de Twitter..

    Recomiendo altamente Twitter Async de Jaisen Mathai en GitHub. Funciona perfectamente e incluso proporciona algunos códigos de ejemplo realmente sencillos que podemos ver. Puede descargar el .zip por ahora, pero antes de ver el código, necesitamos registrarnos y obtener nuestros ID de aplicaciones de Twitter..

    Registro de una nueva aplicación

    El Centro de desarrollo de Twitter es un gran recurso para aquellos que recién se inician en la API. Se ha escrito y reescrito muchas veces en el transcurso de algunos años. La página que queremos es https://dev.twitter.com/apps/new. Le pedirá que inicie sesión al principio, luego debe ingresar algunas credenciales para una nueva aplicación.

    El nombre y la descripción de la aplicación se muestran cuando el usuario va a autorizar con Twitter. Su URL web también es importante para distinguir la dirección de terceros. Sería más fácil trabajar con un dominio en vivo, aunque puede usar localhost para las pruebas, pero no recomiendo este método. Es igual de fácil registrarse en un host web gratuito y ejecutar sus scripts desde allí.

    La URL de devolución de llamada se establece como el destino final después de que sus visitantes acepten o denieguen la autorización. Es su trabajo como programador leer la respuesta de Twitter y emitir un mensaje en consecuencia. En la biblioteca de Async ya tenemos algunas credenciales, pero no funcionarán porque la URL de devolución de llamada está especificada para un blog externo. Si está interesado en crear una aplicación web OAuth totalmente conectada, he incluido algunos tutoriales detallados a continuación..

    Revisa el código

    Si está utilizando un servidor web remoto, es posible que desee descomprimir las bibliotecas de Async y subirlas a un nuevo directorio. De lo contrario, simplemente puedes revisar el código fuente. Es probable que de todos modos no podamos establecer una nueva conexión. Pero la experiencia práctica con la carga y edición de código fuente es siempre un proceso de aprendizaje..

    En el directorio raíz encontrarás un script llamado simpleTest.php. Dentro hay una gran cantidad de códigos PHP relacionados con las bibliotecas OAuth incluidas. No podré ponerlo todo junto por usted, pero deberíamos ver un bloque de código importante para identificar detalles notables..

     

    Hay 4 variables muy importantes para la clave del consumidor y la ID secreta, junto con el token y la ID secreta del token. No todos los servicios API requerirán este conjunto de 4, pero es el protocolo OAuth adecuado. La clase EpiTwitter requiere los 4 valores como parámetros y genera la URL de conexión en Twitter.

    https://api.twitter.com/oauth/authorize?oauth_token=TOKEN_ID_HERE

    Con esta nueva URL dinámica puede crear un botón de inicio de sesión para sus usuarios. Esto los dirigirá primero a una página segura de la API de Twitter donde el usuario acepta o niega su conexión. Independientemente de su elección, el usuario se redirige a la URL de devolución de llamada de su aplicación. Todo el protocolo abierto tiene una perspectiva muy clara que permite un rápido desarrollo, especialmente con bibliotecas disponibles en prácticamente todos los idiomas.

    enlaces relacionados

    • Guía de hueniverse oauth 1.0
    • Introducción suave a OAuth
    • Preguntas frecuentes sobre OAuth
    • Autentificación de Facebook Dev Guide
    • Inicio de sesión simple de Twitter OAuth
    • Usando OAuth con Twitter en Cocoa Objective-C
    • Consumiendo OAuth Inteligentemente en Rieles

    Conclusión

    Esperamos que esta introducción a OAuth le haya interesado en crear aplicaciones sobre el protocolo. Muchos desarrolladores se han esforzado por encontrar una solución de este tipo, y OAuth 2.0 puede ser el futuro de las redes sociales interconectadas. Ya uso más de dos docenas de conexiones en mi cuenta de Twitter y me ha impresionado mucho la documentación del desarrollador.!

    Claramente hay mucho que decir sobre este tema. No es algo que pueda procesar completamente en una sola sesión. Busque en la red más soluciones de OAuth y háganos saber sus opiniones en el área de discusión a continuación..