Explica cómo integrar seguridad en límites, identidad, autorización, datos, secretos, dependencias y operación mediante threat modeling y defensa en profundidad.
Última actualización
Actualizada
Nivel
Aplicación
La seguridad arquitectónica no consiste en añadir autenticación al final. Consiste en diseñar límites, identidades, permisos, datos y operaciones de forma que un fallo o un abuso no otorgue más acceso del necesario ni destruya la capacidad de investigar lo ocurrido.
Una arquitectura segura no supone que todos los controles funcionarán siempre. Aplica defensa en profundidad para que la falla de una capa no entregue el sistema completo.
Texto
identidad
→ autenticación
→ autorización
→ validación de contexto
→ acceso al recurso
→ auditoría
→ monitoreo y respuesta
Cada paso responde una pregunta distinta. Saber quién es una persona no implica que pueda consultar cualquier tenant. Validar un token no demuestra que una operación sea legítima. Registrar un evento no impide el ataque, pero puede permitir detectarlo y reconstruirlo.
Aquello que necesita protección: credenciales, datos personales, inventario, dinero, configuraciones, disponibilidad, reputación y evidencia de auditoría.
Usuarios legítimos, administradores, servicios internos, proveedores, atacantes externos y actores internos abusivos. Un actor puede ser legítimo y aun así intentar una acción indebida.
Qué información cruza cada frontera, en qué dirección, con qué identidad y mediante qué contrato.
Texto
cliente móvil
↓ token + tenant solicitado
API pública
↓ identidad validada + tenant autorizado
caso de uso
↓ consulta scoped
repositorio
↓ SQL parametrizado
base de datos
El punto crítico es que el tenant autorizado no debe derivarse ciegamente del cuerpo de la solicitud. Debe asociarse con la identidad y los permisos comprobados.
No intentes modelar todo con el mismo nivel de detalle. Empieza por flujos con dinero, datos sensibles, privilegios, integraciones y efectos irreversibles.
El diagrama debe mostrar procesos, almacenes, actores, protocolos y límites de confianza. Un diagrama demasiado abstracto oculta dónde se valida identidad o dónde se persiste un secreto.
Cada control debe vincularse con una amenaza concreta. “Usar JWT” no es una mitigación completa si no se definen expiración, audiencia, firma, revocación y autorización.
La autenticación confirma una identidad. La arquitectura debe definir:
Autoridad emisora.
Credenciales aceptadas.
Ciclo de vida de la sesión.
Expiración y renovación.
Revocación.
Protección frente a robo y replay.
Recuperación de cuenta.
Autenticación reforzada para acciones sensibles.
Tokens largos en local storage, sesiones eternas o refresh tokens sin rotación amplían el impacto de una filtración.
En una aplicación web, cookies HttpOnly, Secure y una política SameSite adecuada pueden reducir exposición a scripts, pero no sustituyen protección CSRF, validación de origen ni defensa contra XSS.
La autorización responde si una identidad puede realizar una acción concreta sobre un recurso concreto en un contexto concreto.
Texto
usuario autenticado
+ rol o capacidades
+ tenant autorizado
+ ownership del recurso
+ estado del recurso
+ política de negocio
= decisión de autorización
Las queries deben parametrizarse. Los templates deben escapar salida según contexto. Los comandos externos no deben construirse concatenando entrada. Los archivos necesitan validación de tipo, tamaño, nombre, contenido y destino.
Validar un DTO no garantiza seguridad de dominio. Un monto positivo todavía puede exceder la venta. Un tenantId con formato UUID todavía puede pertenecer a otro usuario.
Los secretos no deben estar en código, imágenes, logs ni variables visibles para clientes.
Un sistema de gestión de secretos debe permitir:
Acceso mínimo por identidad de workload.
Rotación.
Versionado.
Auditoría.
Revocación.
Separación entre ambientes.
No inventes criptografía. Utiliza protocolos y bibliotecas maduras. El cifrado en reposo protege ciertos escenarios, pero no impide que una aplicación comprometida lea datos mediante permisos legítimos. Por eso se combina con segmentación, control de acceso, monitoreo y minimización de datos.
Cambios relevantes antes y después, con minimización de datos.
No debe registrar contraseñas, tokens ni secretos. Los eventos críticos necesitan protección frente a manipulación y retención acorde al riesgo.
La detección debe conectar señales con acciones: múltiples denegaciones, exportaciones masivas, elevaciones de rol, accesos desde ubicaciones anómalas o fallos de firma.
Multi-tenancy y diseño de SaaS profundiza en el aislamiento, la configuración, la capacidad y la evolución de múltiples clientes sobre una misma plataforma.