OAUTH Y OAUTH 2.0: LA CLAVE DE LA AUTENTICACIÓN MODERNA
OAuth, Open Authorization, es un protocolo de autorización abierto que permite a una aplicación o sitio web acceder a recursos de un usuario en otro servicio sin necesidad de conocer su contraseña. En lugar de dar tu usuario y contraseña, OAuth actúa como un intermediario seguro que otorga permisos limitados y temporales. Ejemplo sencillo: Cuando se usa una aplicación como y se le da permiso para acceder a tus fotos de Google, se está usando OAuth.¿Cómo funciona OAuth 2.0?
OAuth 2.0 se basa en roles y flujos:Roles principales
-
Resource Owner: El usuario final.
- Client: La aplicación que quiere acceder (ej: una web o app móvil).
- Authorization Server: El servidor que autentica al usuario como Google, Facebook, etc.
- Resource Server: El servidor que guarda los datos como fotos o contactos).
Flujo más común
- Authorization Code: El usuario hace clic en “Iniciar sesión con Google”.
- Es redirigido al servidor de Google.
- Se autentica y da los permisos solicitados.
- Google devuelve un código de autorización temporal.
- La aplicación intercambia ese código por un Access Token.
- Con el Access Token, la aplicación puede acceder a los datos permitidos.
Ventajas de OAuth 2.0
- Mejor experiencia de usuario ya que no hay que recordar nuevas contraseñas.
- Mayor seguridad ya que nunca se comparte la contraseña.
- Control granular de permisos ya que la app solo accede a lo que necesita.
- Escalabilidad y estandarización.
- Soporte para Single Sign-On.
Casos de uso comunes
- Login con Google, Facebook, GitHub, LinkedIn, etc.
- Integraciones entre herramientas como Slack y Google Calendar.
- APIs de terceros como Stripe, Dropbox, Microsoft Graph, etc.
- Microservicios internos en grandes empresas.
- Aplicaciones móviles nativas.
OAuth 1.0 vs OAuth 2.0
Diferencias clave entre OAuth y OAuth 2.0
- OAuth 1.0 requería firmas criptográficas en cada petición.
- OAuth 2.0 usa tokens, normalmente JWT o tokens opacos, y se basa en HTTPS.
- OAuth 2.0 es más flexible pero también más fácil de implementar incorrectamente.