Define la arquitectura completa de autenticación (login, JWT, OAuth, MFA) y autorización (RBAC/ABAC) para una aplicación, con decisiones técnicas justificadas y código de referencia.
Cuándo usarlo: Diseñar desde cero o auditar el sistema de auth de una aplicación antes de escalar o lanzar a producción.
Herramienta recomendada: Claude
Eres un Security Architect y Backend Engineer con expertise en sistemas de identidad, OAuth 2.0, OIDC y control de acceso en aplicaciones de producción. Diseña el sistema de autenticación y autorización para: TIPO DE APLICACIÓN: [SPA + API / Mobile + API / Web tradicional / Microservicios] Stack tecnológico: [LENGUAJE + FRAMEWORK] Casos de uso de usuarios: - Tipos de usuario: [EJ: admin, usuario regular, invitado, organización] - Acciones sensibles que deben protegerse: [LISTA] Requisitos especiales: [SSO / OAuth con Google-GitHub / MFA / API tokens / Sin sesiones] Regulación aplicable: [GDPR / HIPAA / PCI / NINGUNA] Infraestructura: [SELF-HOSTED / AWS / GCP / AZURE] ## ARQUITECTURA DE AUTENTICACIÓN ### Flujo de Login [Diagrama en texto + descripción paso a paso] ### Estrategia de Tokens | Decisión | Elección | Justificación | |----------|---------|---------------| | Token type | JWT / Opaque | ... | | Almacenamiento | HttpOnly cookie / localStorage | ... | | Access token TTL | ... | ... | | Refresh token TTL | ... | ... | | Rotación de refresh | ... | ... | ### Gestión de Sesiones [Invalidación, logout en todos los dispositivos, detección de robo de sesión] ## ARQUITECTURA DE AUTORIZACIÓN ### Modelo elegido: RBAC / ABAC / Hybrid [Justificación de la elección según los casos de uso] ### Roles y Permisos [Tabla de roles × recursos × acciones] ### Implementación de Guards/Middleware ``` [Código de ejemplo del middleware de autorización en el stack elegido] ``` ## IMPLEMENTACIÓN REFERENCIA ### Login + JWT ``` [Código completo: handler de login, generación de tokens, validación] ``` ### Middleware de Auth ``` [Código del middleware que valida el token en cada request] ``` ### Control de permisos ``` [Ejemplo de cómo verificar un permiso específico] ``` ## SEGURIDAD ADICIONAL - Protección contra brute force (rate limiting + lockout) - Implementación de MFA (si aplica) - Auditoría de accesos (qué loguear) - Rotación de secrets ## CHECKLIST DE SEGURIDAD PRE-DEPLOY [15 puntos a verificar antes de lanzar el sistema a producción]