¿Qué es OAuth 2.0 y cómo funciona?

Open Authorization (conocido como OAuth 2.0) se ha convertido en un protocolo de autorización en muchos sitios web y aplicaciones. Probablemente hayas utilizado OAuth 2.0 sin darte cuenta. Por ejemplo, cuando das permiso a un sitio web para que acceda a tu información de Facebook haciendo un login, estás utilizando la autorización abierta. Este protocolo es útil porque te permite compartir una cantidad limitada de información con el sitio de terceros, en lugar de darles el control total de tu cuenta con tus credenciales de inicio de sesión.

Autenticación (Single-sign-on) vs. Autorización (OAuth 2.0)

Un error común sobre OAuth 2.0 es que este proceso también verifica la identidad del usuario, lo que se conoce como autenticación. Por ello, a menudo se confunde OAuth con la autenticación de inicio de sesión único (SSO). Aunque los dos procesos son muy similares e incluso comparten algunas características básicas, tienen una distinción clave: SSO autentifica a los usuarios mientras que OAuth 2.0 autoriza a los usuarios.

Para entender mejor la diferencia, veamos qué significan la autenticación y la autorización:

  • La autenticación es el proceso de verificación de la identidad de un usuario. Cuando los usuarios introducen su nombre de usuario y contraseña (o utilizan credenciales sin contraseña), el sitio web utiliza esta información para confirmar que la persona es el usuario previsto comparándola con una base de datos segura de credenciales de usuario.
  • La autorización tiene lugar después de que un usuario se haya autenticado. Es cuando el sistema comprueba qué permisos tiene el usuario. Los permisos de un usuario dictan lo que la persona ve y las acciones que puede realizar en el sitio web una vez que se ha confirmado quién es quien dice ser.

En otras palabras, la autenticación pregunta al usuario «¿quién eres?», mientras que la autorización pregunta «¿qué puedes hacer?». Por tanto, no hay autorización sin autenticación. Sin embargo, sólo la autenticación no es suficiente para asegurar las cuentas y proporcionar permisos específicos, por lo que los dos procesos trabajan mano a mano. 

¿Qué es OAuth 2.0 exactamente?

OAuth 2.0, que significa «autorización abierta», es un estándar diseñado para permitir que un sitio web o una aplicación accedan a recursos alojados por otras aplicaciones web en nombre de un usuario. OAuth 2.0 es un estándar abierto para la delegación de acceso, comúnmente utilizado como una forma para que los usuarios de Internet concedan a los sitios web o aplicaciones el acceso a su información en otros sitios web, pero sin darles las contraseñas. Es un protocolo o marco de autorización de estándar abierto que proporciona a las aplicaciones la capacidad de «acceso designado seguro». Este mecanismo es utilizado por empresas como Amazon, Google, Facebook, Microsoft y Twitter para permitir a los usuarios compartir información sobre sus cuentas con aplicaciones o sitios web de terceros.

Las aplicaciones de Facebook son un buen ejemplo de uso de OAuth 2.0. Supongamos que utilizas una aplicación de Facebook y te pide que compartas tu perfil y tus fotos. Facebook es, en este caso, el proveedor de servicios: tiene tus datos de acceso y tus fotos. La aplicación es el consumidor y, como usuario, quieres utilizarla para hacer algo con tus fotos. Has dado a esta aplicación acceso a tus fotos, que OAuth 2.0 gestiona en segundo plano. Por ejemplo, puedes decirle a Facebook que está bien que ESPN acceda a tu perfil o publique actualizaciones en tu línea de tiempo sin tener que darle a ESPN tu contraseña de Facebook. Esto minimiza el riesgo de manera importante: En el caso de que ESPN sufra una brecha, tu contraseña de Facebook permanece a salvo.

Los dispositivos domésticos inteligentes son otro buen ejemplo. Por ejemplo, una nevera, un termostato, un sistema de seguridad, etc. – utilizan datos de acceso para sincronizarse entre sí y permitirte administrarlos desde un dispositivo cliente. Estos dispositivos utilizan lo que OAuth 2.0 llama autorización confidencial. Eso significa que conservan la información de la clave secreta, para que no tengas que iniciar sesión una y otra vez. 

La analogía más común que hemos visto al investigar OAuth 2.0 es la llave del coche. La llave permite al aparcacoches arrancar y mover el coche, pero no le da acceso al maletero o a la guantera.

Roles de OAuth 2.0

Un OAuth 2.0 tiene los siguientes roles:

  1. Propietario del recurso: Entidad que puede conceder acceso a un recurso protegido. Normalmente es el usuario final.
  2. Servidor de recursos: Servidor que aloja los recursos protegidos. Es la API a la que se quiere acceder.
  3. Cliente: Aplicación que solicita el acceso a un recurso protegido en nombre del propietario del recurso.
  4. Servidor de Autorización: Servidor que autentifica al Propietario del Recurso y emite tokens de acceso después de obtener la autorización adecuada. En este caso, VYou.

¿Cómo funciona? Ejemplos 

El ejemplo más común de OAuth 2.0 es cuando usted va a entrar en un sitio web y éste le ofrece una o más oportunidades de iniciar sesión utilizando el inicio de sesión de otro sitio web/servicio. Usted hace clic en el botón vinculado al otro sitio web, el otro sitio web le autentifica, y el sitio web al que se estaba conectando originalmente inicia la sesión por sí mismo utilizando el permiso obtenido del segundo sitio web.

Puedes pensar en esto como en las tarjetas llave de los hoteles, pero para las aplicaciones. Si tienes una tarjeta llave del hotel, puedes acceder a tu habitación. ¿Cómo se consigue una tarjeta de acceso al hotel? Tienes que hacer un proceso de autentificación en la recepción para conseguirla. Después de autenticarse y obtener la tarjeta llave, puedes acceder a los recursos de todo el hotel.

Espero que este post le haya resultado útil. Y si necesitas ayuda con el desarrollo de los CIAM, háznoslo saber, tenemos soluciones que podrían acelerar el tiempo de comercialización y disminuir los costes de desarrollo. 

Deja un comentario

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

Ir arriba