Saltar al contenido principal

OAuth 2.0 - Autorización delegada segura

Lectura de 2 min aprox.

OAuth es un protocolo de autorización para delegar permisos de acceso de forma segura sin entregar la contraseña del usuario a un tercero. Se utiliza ampliamente como tecnología fundamental para funciones de inicio de sesión social como «Iniciar sesión con Google» e «Iniciar sesión con Twitter». OAuth 2.0 es la especificación que define los flujos utilizados por las aplicaciones web y móviles. A fecha de 2025, está en marcha la redacción de OAuth 2.1, que refuerza la seguridad con medidas como hacer obligatorio PKCE y eliminar el flujo implícito.

La diferencia entre OAuth y SSO

OAuth y SSO son conceptos que se confunden fácilmente, pero cumplen propósitos distintos. OAuth es un protocolo de «autorización» que gestiona la delegación de permisos, como «permitir que esta aplicación acceda a mis fotos». SSO, en cambio, es un mecanismo de «autenticación» cuyo propósito es «acceder a varios servicios con un único inicio de sesión». En la práctica, es común usar OAuth como base para SSO añadiendo una capa de autenticación llamada OpenID Connect (OIDC) sobre OAuth. En otras palabras, OAuth puede considerarse uno de los componentes técnicos para lograr el SSO.

Cómo funciona OAuth

En OAuth, el usuario se autentica en un servidor de autorización y se emite un token de acceso. La aplicación usa este token para acceder a las API y nunca maneja directamente la contraseña del usuario. Al token se le asignan un ámbito (el rango de permisos) y una caducidad, otorgando solo los derechos de acceso mínimos necesarios. Con un token de actualización, el token de acceso puede renovarse sin volver a autenticar al usuario.

Por qué un token filtrado es menos grave que una contraseña filtrada

La clave para entender el diseño de OAuth está en lo que ocurre cuando las credenciales se filtran. Si se filtra una contraseña, el atacante puede ejercer todos los privilegios del titular de forma indefinida, hasta que este la cambie. Un token de acceso, en cambio, tiene sus permisos acotados por el ámbito y queda invalidado automáticamente al caducar, de modo que incluso un token filtrado está limitado tanto en lo que puede hacer como en el tiempo. Además, al revocar la vinculación en el servidor de autorización se invalidan solo los permisos de esa aplicación, sin necesidad de cambiar la contraseña. Entregar la contraseña misma a una aplicación no permite esta delegación parcial ni esta revocación parcial. La combinación de tokens de acceso de corta vida y tokens de actualización es un mecanismo que limita estructuralmente el daño de una filtración sin sacrificar la comodidad.

El flujo de autorización de OAuth

La app envía la solicitud de autorización
El usuario aprueba los permisos
Se emite el código de autorización
Se obtiene el token de acceso
Acceso a la API

Consideraciones prácticas y trampas

Al usar OAuth, es importante mantener al mínimo los permisos otorgados a una aplicación. Ten cuidado con las aplicaciones que solicitan permisos innecesarios, como «acceso a los contactos» o «lectura del correo». Una trampa común en la práctica es dejar las integraciones de OAuth desatendidas tras configurarlas. Revisa periódicamente las integraciones de las aplicaciones que ya no usas y revoca los permisos innecesarios. La seguridad de la cuenta principal que vinculas mediante OAuth (como Google o Apple) también es sumamente importante. Si la cuenta principal se ve comprometida, todos los servicios vinculados se ven afectados. Protege la cuenta principal con una contraseña única y robusta para cada servicio y autenticación de dos factores.

Términos relacionados

¿Te resultó útil este artículo?