Saltar al contenido principal
Imagen
patrón hexagonal morado

¿Qué son los tokens OAuth?

Los tokens OAuth autorizan el acceso de un usuario a los recursos. En otras palabras, no autentifican a los usuarios, sino que son utilizados por el proveedor de servicios para autorizar el acceso en nombre del usuario a otros recursos.

Una transacción OAuth se produce cuando un usuario solicita permiso a otro recurso utilizando su identidad de proveedor de servicios. El recurso solicitará permiso al proveedor de servicios, que se da en forma de un token de solicitud y un secreto. A continuación, el recurso redirige al usuario a su proveedor de servicios para autenticar la solicitud. En este punto, el recurso intercambia el token de solicitud por un token de acceso y un secreto. Si los dos tokens comparten el mismo secreto, el proceso de OAuth se ha completado y el usuario ha delegado con éxito el acceso del recurso al proveedor de servicios.

El proceso de OAuth

Paso 1

Solicitar acceso

Ana hace una solicitud en YouTube (recurso) para publicar vídeos directamente en su Twitter (proveedor de servicios). A continuación, YouTube pide permiso a Twitter para acceder.

gráfico de una mujer sentada frente a un escritorio

Paso 2

Solicitud de intercambio de token y secreto

Twitter proporciona a YouTube un token de solicitud y un secreto.

gráfico de una llave y navegadores web

Paso 3

Autenticación

YouTube redirige a Ana a Twitter para que se conecte. Ana proporciona a Twitter sus credenciales de acceso y autentifica que la solicitud de YouTube la inició el usuario.

Gráfico de una persona utilizando un ordenador portátil

Paso 4

Intercambio de token de acceso

Una vez que el usuario autentica la solicitud, YouTube le pide a Twitter que intercambie el token de solicitud y el secreto por un token de acceso. Si los secretos asociados a los tokens coinciden, Twitter proporcionará a YouTube el token de acceso y concederá el acceso a YouTube.

gráfico de una llave y navegadores web

Paso 5

Acceso concedido

Ahora Anne puede utilizar de forma segura YouTube para publicar vídeos directamente en su Twitter.

gráfico de una mujer sentada frente a un escritorio

El ejemplo anterior resume un proceso general de OAuth. OAuth también permite un control y unos permisos más granulares, como el derecho a revocar los tokens cuando el usuario quiera y la definición de diferentes niveles de acceso a los proveedores de servicios para diferentes recursos.

OAuth 1.0 frente a OAuth 2.0

En 2012, se introdujo OAuth 2.0 como una importante revisión de OAuth 1.0. Los cambios realizados en esta versión de OAuth fueron lo suficientemente significativos que las versiones 2.0 y 1.0 no son compatibles. OAuth 2.0 fue diseñado para solucionar un fallo de seguridad de fijación de sesión en el flujo de autorización de OAuth.

Aunque este problema se ha resuelto con OAuth 2.0, la nueva versión no define ni admite intencionadamente el cifrado, la firma, la verificación del cliente o la vinculación del canal, sino que requiere que los implementadores utilicen un protocolo de seguridad diferente como HTTPS/TLS para ese fin.

Las diferencias entre OAuth 1.0 y 2.0 pueden resumirse a continuación:

Gráfico de OAuth 1.0 frente a OAuth 2.0

OAuth frente a SAML: ¿cuál es la diferencia?

SAML es una variante del lenguaje XML que describe un marco que permite a un dispositivo realizar tanto la autenticación como la autorización en nombre de uno o más dispositivos.

A medida que surgieron opciones ligeras para la codificación de datos, como JSON, OAuth fue ganando adeptos para apoyar a los usuarios de dispositivos móviles. Si bien OAuth es un protocolo más reciente que evolucionó a partir de la necesidad de sustituir a SAML, ambos protocolos son fundamentales para el inicio de sesión único (SSO) seguro.

En otras palabras, OAuth no es una alternativa a SAML, sino que ambos protocolos pueden complementarse. Por ejemplo, en un entorno SSO, SAML puede ser responsable de la autenticación (confirmar que el usuario es auténtico y se le debe conceder acceso) y OAuth será responsable de la autorización (conceder acceso a recursos protegidos específicos).