🔓 Autorización Abierta (OAuth) y RESTful APIs

📘 ¿Qué es OAuth?

OAuth (Open Authorization) es un protocolo de autorización estándar abierto que permite a los usuarios autorizar aplicaciones de terceros para acceder a sus recursos sin compartir sus credenciales (contraseña).

Se usa ampliamente en APIs RESTful (por ejemplo, Google, Facebook, GitHub, Spotify, etc.) para permitir que una app use parte de los datos del usuario de forma segura.

🧩 Componentes Clave de OAuth

Componente Función
Propietario del recurso Usuario que concede acceso a sus datos
Cliente App que desea acceder a los datos del usuario
Servidor de recursos API que contiene los datos del usuario
Servidor de autorización Emite los tokens de acceso si el usuario lo autoriza

🔄 Flujo OAuth (Ejemplo clásico con app web)

  1. El cliente (app) redirige al usuario al servidor de autorización.

  2. El usuario inicia sesión y autoriza el acceso a sus datos.

  3. El servidor de autorización genera un token de acceso (JWT) y se lo devuelve al cliente.

  4. El cliente guarda este token y lo presenta al servidor de recursos cuando quiere consultar los datos.

  5. Si el token es válido, el servidor de recursos entrega los datos autorizados.

🧪 Aplicaciones y herramientas en uso real

Herramienta / Proveedor Aplicación real
Google OAuth Login con Google en apps web y móviles
Spotify API + OAuth Apps que acceden a listas de reproducción sin ver contraseñas
GitHub OAuth Login de desarrolladores en plataformas como Netlify
Postman Para testear flujos OAuth2 con APIs RESTful
JWT.io Herramienta para ver y validar tokens JWT

🎯 ¿Qué hace un líder red, blue y purple team al respecto?

🔴 Red Team

  • Intenta interceptar tokens JWT en tránsito (si no está cifrado).

  • Busca configuraciones erróneas en redirecciones o flujos de autorización.

  • Realiza ataques de token reuse, token forgery o CSRF en flujos OAuth mal configurados.

🔵 Blue Team

  • Asegura que todos los tokens sean transmitidos por HTTPS.

  • Valida la firma y expiración de JWTs.

  • Implementa límites de alcance (scopes) para evitar acceso excesivo.

  • Monitoriza peticiones de acceso inusuales o repetidas (tokens robados o reutilizados).

🟣 Purple Team → ¿Cómo se ataca y cómo se defiende?

Ataque típico Defensa efectiva
Reutilización de token Verificación de timestamp y revocación de tokens
Redirección maliciosa (Open Redirect) Validar redirecciones permitidas (whitelist en el IdP)
Captura de token por MITM Forzar TLS y validar certificados
Tokens sin firma o con firma débil Usar firma fuerte (HS256, RS256) y verificación en backend
CSRF durante el flujo de autorización Usar state aleatorio y validarlo antes de autorizar

✅ Resumen práctico

OAuth → Autoriza acceso a apps sin compartir credenciales.
Ideal para APIs RESTful (Google, Spotify, GitHub, etc.).
Se basa en tokens temporales (JWT) que otorgan acceso controlado a recursos.
El cliente solo necesita presentar el token al servidor de recursos, no la contraseña.
Es la base de seguridad moderna para aplicaciones web, móviles y APIs.

🧠 Esquema visual práctico

1. App solicita acceso → redirige al servidor de autorización 

2. Usuario se autentica y aprueba 

3. El servidor de autorización emite un token 

4. La app usa el token para consultar la API (servidor de recursos) 

5. El recurso verifica el token y responde

Mystara - Mind Hacker - Purple TeamBlog
Todos los derechos reservados 2024
Creado con Webnode Cookies
¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar
Utilizamos cookies para permitir un correcto funcionamiento y seguro en nuestra página web, y para ofrecer la mejor experiencia posible al usuario.

Configuración avanzada

Puedes personalizar tus preferencias de cookies aquí. Habilita o deshabilita las siguientes categorías y guarda tu selección.