Seguridad y auditoría¶
SmartAid protege la operación con autenticación de panel, aislamiento por tenant, permisos de Django, auditoría propia y eventos históricos.
Aislamiento multi-tenant¶
Cada registro de negocio hereda de TenantModel. El manager objects filtra
por el tenant actual y all_objects se reserva para servicios o tareas que
aplican filtros explícitos.
Uso de all_objects
all_objects salta el filtro automático. En vistas o servicios de usuario
final debe usarse solo con filtro explícito por tenant.
Control de acceso¶
| Capa | Mecanismo |
|---|---|
| Autenticación | Login del panel con usuario Django. |
| Tenant activo | TenantBackend rechaza usuarios de tenants inactivos. |
| Autorización | Grupos y permisos nativos de Django. |
| Vistas | PermisoRequeridoMixin antes de ejecutar acciones. |
No se documenta 2FA como funcionalidad activa del proyecto.
Auditoría¶
RegistroAuditoria guarda actor, tenant, acción, entidad, identificador y
valores anteriores/nuevos cuando aplica. Además, varios modelos usan
django-pghistory para eventos históricos.
Datos sensibles¶
- No registrar documentos completos, CURP, claves VAPID ni secretos en logs.
- Mantener
.env,media/y respaldos fuera del repositorio. - Usar TLS y variables de entorno en despliegues productivos.
- Revisar permisos de superusuario; ese rol puede tener visibilidad transversal.
Reportabilidad¶
La auditoría permite reconstruir cambios operativos, pero la exportación o entrega formal de reportes depende del proceso de la institución.