El estándar de autenticación OpenID Connect 1.0 y sus diferencias con el estándar OAuth 2.0

En este breve artículo voy a intentar explicar de forma amigable para qué sirve y cuándo debe ser utilizado el estándar OpenID Connect 1.0 y qué lo diferencia con el estándar OAuth 2.0.

Autenticación y Autorización

Para empezar, debemos conocer y tener claro las diferencias entre los términos Autenticación y Autorización.

  • Autenticación se puede definir como el proceso que confirma la identidad de una persona (ya sea un usuario, cliente, etc …)
  • Autorización se refiere al proceso que verifica qué funcionalidades puede acceder este usuario o cliente. La autorización podría incluir autenticación pero raro sería que la autenticación conlleve autorización.

Qué es OpenID Connect

OpenID Connect es un estándar que permite a usuarios identificarse en una página web utilizando una URL de proveedor y todo ello sin la necesidad de introducir sus datos de acceso.

Para entenderlo fácilmente, permite a los usuarios reutilizar sus cuentas, para así poder identificarse con su proveedor (Google, Facebook, etc …), evitando tener que crearse una cuenta nueva.

Estás son todas las versiones de OpenID hasta el momento:

Si estás utilizando alguna de las versiones obsoletas de OpenID quizá sea buena idea ir migrando a OpenID Connect 1.0, ya que sus primeras versiones han demostrado ser un método de autenticación poco fiable y que podría vulnerar la privacidad de datos de los usuarios.

Cómo funciona OpenID Connect

OpenID Connect 1.0 es una «capa de identificación» desarrollada sobre el protocolo OAuth 2.0 que proporciona toda la información necesaria sobre usuarios o clientes.

Veamos cuales son los pasos y procesos necesarios que se realizan cuando utilizamos un proceso de autenticación con OpenID Connect:

  1. Accedemos al sitio web (example.com)
  2. Accedemos al formulario de autenticación de usuarios con cada una de las URLs de los proveedores que soportan OpenID e indicamos con cuál queremos autenticarnos.
  3. Al hacer clic se realiza un proceso de redirección a la URL de proveedor con soporte OpenID (ya sea Google, Microsoft, Yahoo, Facebook, Steam, etc …).
  4. A continuación se realiza un proceso de conexión automática (ya en el proveedor) si es que ya existiera una sesión iniciada por el usuario o de lo contrario se le solicitarán de nuevo al usuario sus datos de acceso para proceder con su autenticación.
  5. El siguiente proceso es de retorno hacia el sitio web inicial con el Token y los metadatos del usuario que realiza la autenticación (en formato JSON).
  6. A continuación podemos guardar los datos de la sesión y los datos de usuario según sean nuestras necesidades.

 

* El Token que obtenemos contiene información del usuario y cómo pueden ser utilizados estos datos por tu aplicación.

Diferencias entre OpenID y OAuth

Es habitual creer que tanto OpenID y OAuth hacen las mismas cosas, pero el propósito para el que ha sido creado cada uno de ellos los hace totalmente diferentes. Por lo que sabemos las similitudes entre ambos son las siguientes:

  • Tanto OpenID como OAuth son Estándares Web.
  • Ambos están relacionados con la seguridad, identidad y autenticación.
  • Ambos están descentralizados (no existe servidores OpenID y OAuth).
  • El usuario puede controlar qué sitios podrán interactuar con OpenID como OAuth.

Sabemos que OpenID permite autenticarnos y demostrar quien realmente decimos ser (esto nos permite obtener diferentes datos del usuario).

En cambio OAuth ha sido creado para autorizar a sitios Web para que estos pueda acceder a diferentes funcionalidades o aplicaciones del usuario (como pueden ser datos privados de usuario, correo, cloud, etc …), evitando tener que autenticarnos de la manera tradicional.

Por ejemplo, si lo que quieres es acceder a servicios como Analytics, Gmail o Maps de un cliente desde un sitio externo, debes autorizar estos accesos con OAuth para así poder otorgar permisos sobre ellos. En cambio con OpenID esto no podrás hacerlo, ya que OpenID no inicia sesión como tal en dichos servicios.

Documentación

Para información más detallada sobre ambos estándares, podemos acceder a sus páginas oficiales.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.