Qué es OAuth Connect y cómo usarlo

Muchos de nosotros entramos en contacto con OAuth cuando navegamos 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 a sitios web de terceros acceso limitado a las cuentas de usuario, por ejemplo, sus cuentas de Twitter o Facebook.

Permite a los visitantes interactuar dentro del sitio sin necesidad de registrarse en una nueva cuenta o sin revelar 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 hasta Ruby u Objective-C.

Incluso si el concepto parece críptico, intente digerir todo lo que pueda. Sigue siendo una tecnología muy misteriosa, ya que acaba de ser redactada en 2007 . Ciertamente, no entendí cómo desarrollar conexiones OAuth completas incluso después de mis primeros tutoriales, pero si te apegas a él, lo entenderás rápido. Ahora primero para comenzar, ¡una pequeña introducción!

¿Qué problemas podemos resolver?

Si considera cuánto más conectado se ha vuelto Internet, tiene sentido que los usuarios quieran compartir información entre múltiples 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 OpenID más antiguos. Los usuarios todavía están ingresando su nombre de usuario / contraseña en otros sitios web de terceros solo para conectarse a OpenID.

Esto no lo hace más seguro para el usuario. Según las especificaciones de OAuth, el usuario nunca necesita almacenar ningún dato de cuenta personal en una base de datos de terceros.

Con>>La tecnología es muy 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 tres partes a considerar en una llamada OAuth estándar:

  • Proveedor de servicios : la red principal de la que está intentando extraer datos. Proporcionan la respuesta de la API, como su nombre de usuario, foto de perfil, URL del sitio web y otras cosas.
  • Consumidor : la aplicación de terceros que busca recibir datos. Este sería el sitio web o la aplicación móvil que realiza la solicitud de conexión inicial y luego también maneja los datos devueltos después de la autorización.
  • Usuario : la persona sentada detrás de la computadora que interactúa con los sitios web, ¡que sería usted!

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

Frente a la seguridad

En última instancia, todo el proceso requiere 2 claves diferentes junto con un token de acceso. Las claves las proporciona el servicio raíz después de que registra una aplicación; se conocen como su cliente e ID secreta . El ID de cliente generalmente se pasa a la URL de autenticación para que el servidor pueda reconocer su aplicación.

La identificación 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 propia para que no envíe por error 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 aleatorios.

Este código se utiliza para generar un nuevo token de acceso . Estos 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 datos del servidor. Un ejemplo podría ser solicitar la foto de perfil del usuario para guardar una copia en su propio sitio web.

Biblioteca de ejemplo para Twitter OAuth

Es poco probable que los desarrolladores comiencen desde cero, así que ¿por qué no buscar en una biblioteca construida previamente? Esto nos ahorrará tiempo y dolores de cabeza cuando trabajemos con PHP. Veamos cómo construir un ejemplo realmente simple sobre la API de Twitter.

Recomiendo>Twitter> 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 analizar el código, debemos registrarnos y obtener nuestras ID de aplicación de Twitter.

Registro de una nueva aplicación

El Centro de desarrollo de Twitter es un gran recurso para quienes recién comienzan a utilizar 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 deberá ingresar algunas credenciales para una nueva aplicación.

El>servidor> y ejecutar sus scripts desde allí.

La URL de devolución de llamada se indica 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 enviar un mensaje en consecuencia.

En la biblioteca Async ya tenemos algunas credenciales, pero no funcionarán ya que la URL de devolución de llamada se especifica en un blog externo. Si está interesado en crear una aplicación web OAuth completamente conectada, he incluido algunos tutoriales detallados a continuación.

Consulte el código

Si está utilizando un servidor web remoto, es posible que desee descomprimir las bibliotecas Async y cargarlas en un nuevo directorio. De lo contrario, puede consultar el código fuente. Es probable que no podamos establecer una nueva conexión de todos modos. 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á un script llamado simpleTest.php . Dentro hay una gran cantidad de códigos PHP relacionados con las bibliotecas OAuth incluidas. No podré juntarlo todo por usted, pero deberíamos mirar un bloque de código importante para identificar detalles notables.

1234567891011<?phpinclude ‘EpiCurl.php’;include ‘EpiOAuth.php’;include ‘EpiTwitter.php’;$consumer_key = ‘jdv3dsDhsYuJRlZFSuI2fg’;$consumer_secret = ‘NNXamBsBFG8PnEmacYs0uCtbtsz346OJSod7Dl94’;$token = ‘25451974-uakRmTZxrSFQbkDjZnTAsxDO5o9kacz2LT6kqEHA’;$secret= ‘CuQPQ1WqIdSJDTIkDUlXjHpbcRao9lcKhQHflqGE8’;$twitterObj = new EpiTwitter($consumer_key, $consumer_secret, $token, $secret);$twitterObjUnAuth = new EpiTwitter($consumer_key, $consumer_secret);?>

Hay 4 variables muy importantes para la clave del consumidor y el ID secreto, junto con el token y el ID del token secreto. No todos los servicios de 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 a Twitter.

1https://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ía 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 será redirigido a la URL de devolución de llamada de su aplicación.

Todo el protocolo abierto tiene una perspectiva muy limpia que permite un desarrollo rápido, especialmente con bibliotecas disponibles en prácticamente todos los idiomas.

enlaces relacionados

Conclusión

Esperamos que esta introducción a OAuth lo haya hecho 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 utilizo más de dos docenas de conexiones en mi cuenta de Twitter y estoy realmente impresionado con la documentación del desarrollador!

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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *