Conclusiones clave
- El contexto de tenant debe ser explícito y validado en cada frontera de ejecución.
- La autorización pertenece a las operaciones de dominio, no solo al middleware de ruta.
- Las colas, cachés, exportaciones, logs y herramientas de soporte son parte del modelo de aislamiento.
- Probar continuamente los caminos de denegación entre tenants.
Multi-tenancy es una arquitectura de autorización
Una columna tenant_id es útil, pero no es una estrategia de aislamiento. Las solicitudes se mueven a través de navegadores, APIs, servicios, colas, cachés, almacenamiento de objetos, exportaciones y flujos de trabajo de soporte. Cada frontera necesita una identidad de tenant inequívoca y una regla para lo que puede cruzarla.
El valor por defecto más seguro es derivar el contexto de tenant de la membresía autenticada y el enrutamiento del lado del servidor, no de un identificador arbitrario aceptado del cliente.
Elegir el aislamiento según la consecuencia
Las tablas compartidas, esquemas separados y bases de datos separadas ofrecen diferentes propiedades operativas y de aislamiento. La elección correcta depende de la escala, la personalización, las expectativas regulatorias, el riesgo de vecino ruidoso, los requisitos de copia de seguridad y restauración, y la capacidad operativa.
Los modelos híbridos son comunes: la mayoría de los tenants comparten un esquema bien indexado mientras las cargas de trabajo seleccionadas reciben una separación física más fuerte. La aplicación debería ocultar esa ubicación detrás de repositorios o servicios estables.
El trabajo en segundo plano es un fallo de aislamiento común
Cada job debería llevar contexto inmutable de tenant y actor, revalidarlo durante la ejecución y escribir las salidas en ubicaciones definidas por tenant. Las claves de caché genéricas, los directorios temporales reutilizados y los nombres de archivo de exportación sin alcance pueden eludir una autorización API por lo demás cuidadosa.
- Claves de caché y almacenamiento de objetos prefijadas por tenant
- Controles de tasa y concurrencia por tenant cuando sea necesario
- Logs y trazas con alcance sin filtración de datos sensibles
- Suplantación de soporte con aprobación, motivo, expiración e historial de auditoría
Probar el espacio negativo
Las pruebas de camino feliz prueban que un usuario puede acceder a sus datos. Las pruebas de aislamiento prueban que identificadores, filtros, exportaciones, webhooks, búsqueda y temporización no pueden exponer datos de otro tenant.
Cree dos tenants en las pruebas de integración e intente sistemáticamente lecturas y mutaciones entre fronteras. Incluya workers, operaciones por lotes, herramientas de administración y caminos de error, no solo endpoints HTTP.
Sobre el autor
Centillion Edge Engineering
Nuestro equipo de ingeniería escribe sobre las decisiones de arquitectura, seguridad, datos y entrega detrás de sistemas empresariales fiables.