Skip to main content

Integración de usuarios 2.0

Navegando  es habitual encontrarse con formularios para darse de alta como usuario. Cada servicio y plataforma nos invita amigablemente a repetir una y otra vez un proceso que tenemos demasiado visto. Los típicos mensajes de “El usuario ya existe” o “La contraseña es demasiado corta” se convierten en el tedio de muchos usuarios

Si añadimos que no todas las páginas tienen un nivel de usabilidad aceptable, como validación en cliente mediante JavaScript,  puede que tengamos que empezar de nuevo a completar el formulario. Llegados a este punto, la tasa de abandono empieza a crecer tanto como el número de usuarios y contraseñas que debemos recordar. La experiencia nos demuestra  que el usuario fluye como el agua, navegando por el camino que menos resistencia le ofrece. Dicho campechanamente, es vago por naturaleza. Aquí empezamos a plantearnos una cuestión, “Si ya hay plataformas tan extendidas como Facebook, Gmail o LinkedIn, ¿por qué no podría usar mi cuenta de alguna de ellas para entrar a otras páginas?”

La mayoría de estas plataformas ofrecen un API para acceder a los datos de usuarios pero claro, no sería muy seguro  usar mi usuario y contraseña de Facebook por ejemplo en una página que acabo de conocer. Aquí es donde entra en acción el protocolo OAuth, una respuesta tecnológica para acceder fácilmente a estas APIs y que promete asentarse con fuerza en muy poco tiempo.

Un poco de tecnología:

El protocolo OAuth es un protocolo abierto propuesto por Blaine Cook y Chris Messina en 2007. OAuth permite a una aplicación web, que llamaremos cliente, acceder a información de otra aplicación web, a la llamaremos proveedor, sin tener que intercambiar usuarios ni contraseñas. De esta forma, el consumidor puede acceder a los datos sin comprometer la cuenta del usuario alojada en el proveedor. Veamos los pasos de una ejecución:

  • El consumidor solicita un token al proveedor, lo cual equivale a un identificador de sesión.
  • El proveedor genera el token y se lo envía al consumidor
  • El consumidor reenvía dicho token al usuario para que autorice su uso frente al proveedor. Esto se traduce a una redirección web en el navegador del usuario donde se abrirá una pantalla del proveedor solicitando autorización para el consumidor.
  • El usuario envía el token al proveedor autorizando al consumidor.
  • El proveedor confirma el proceso.
  • El usuario redirecciona al consumidor confirmando el éxito del proceso.
  • El consumidor solicita los datos deseados al proveedor
  • El proveedor los devuelve.

diagramaOauth2

Actualmente pueden encontrarse numerosas implementaciones del protocolo OAuth para las principales plataformas y en los principales lenguajes. Por ejemplo, en la web de linkedIn podemos encontrar documentación y los binarios para acceder a su API mediante PHP.De esta forma podemos ofrecer en cualquier aplicación web una integración con otras cuentas para evitar el proceso de registro y mejorar la experiencia del usuario. Dependiendo de la plataforma, el usuario podrá elegir que información desea publicar y durante cuánto tiempo

Caso práctico:

Aterricemos tanta teoría a un caso práctico. Desarrollamos un portal para criticas de cine. Para evitar que los usuarios deban registrarse de nuevo para comentar una película implementamos un conector OAuth con LinkedIn. Con dicho conector obtendremos el nombre completo y lo usaremos como autor de los comentarios en nuestra plataforma. Dispondremos en la interfaz un botón de “Entrar con LinkedIn” y al pulsarlo el usuario obtendrá una ventana emergente similar a la siguiente:

ejemploOauth2

Este proceso solo sucederá la primera vez que se realice la autenticación puesto que LinkedIn almacenará que nuestra plataforma está autorizada para dicho usuario. Tras presionar el botón de “permitir” LinkedIn redireccionará el flujo de ejecución de nuevo a nuestra plataforma.

Para ofrecer más flexibilidad pueden implementarse otros conectores para que el usuario pueda elegir si desea logarse con Facebook, Twitter, Google +, etc.

 

 

Pablo Pérez Aguiló

Consultor SOA. Graduado en Ingeniería del Software y Máster en Ingeniería Web por la UPM. Apasionado de las nuevas tecnologías, metodologías ágiles y la enseñanza.

Pablo Pérez Aguiló ha escrito 6 entradas


Pablo Pérez Aguiló

Consultor SOA. Graduado en Ingeniería del Software y Máster en Ingeniería Web por la UPM. Apasionado de las nuevas tecnologías, metodologías ágiles y la enseñanza.

Deja un comentario

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