Saltar al contenido principal

2.2 Seguridad y roles

EcoREP implementa controles de autenticación, acceso y validación para proteger la integridad de la información declarada y restringir operaciones sensibles a los perfiles autorizados.

Un usuario tiene un rol dentro de cada empresa a la que pertenece. Ese rol determina qué puede ver y hacer, y aplica solo dentro de esa empresa.

Autenticación: inicio de sesión con Keycloak

El login de EcoREP no valida usuario y contraseña directamente contra la aplicación: delega la identidad a Keycloak, el proveedor de identidad de la suite GreenSoft. El registro público está deshabilitado — los usuarios se crean por invitación o directamente desde administración.

El flujo que vive un usuario es el siguiente:

  1. Identificación: el usuario ingresa su correo o nombre de usuario. El sistema determina si ya completó su activación en Keycloak.
  2. Primer ingreso (activación): si el usuario todavía no está activado en Keycloak, EcoREP le envía un correo pidiéndole verificar su correo y definir una contraseña nueva directamente en Keycloak. Este paso es obligatorio para todo usuario nuevo o migrado; la plataforma no reutiliza contraseñas antiguas.
  3. Segundo ingreso en adelante: el usuario es redirigido a Keycloak, donde inicia sesión con su contraseña y un segundo factor (TOTP/OTP). Si todavía no tiene el segundo factor configurado, Keycloak se lo solicita en ese momento.
  4. Vuelta a EcoREP: tras autenticarse en Keycloak, el usuario vuelve a la plataforma ya autenticado. Por diseño, los tokens de sesión nunca viajan expuestos en la URL.
  5. Cierre de sesión: al cerrar sesión, EcoREP revoca sus tokens locales y también cierra la sesión en Keycloak (single logout), para que no quede una sesión activa "silenciosa" en el proveedor de identidad.

Reglas de asignación de roles

  • Un mismo usuario puede tener roles distintos según la empresa a la que pertenezca: el rol se asigna en la relación usuario-empresa, no en el usuario en sí.
  • Los permisos de un rol aplican solo dentro de la empresa donde fue asignado.

Roles disponibles y su alcance

RolAlcance general
OperadorOpera la línea base día a día: ver, crear, editar y eliminar productos; ver y comentar auditorías. Solo lectura sobre empresa, sucursales, bodegas, usuarios y Generador Industrial.
SupervisorTodo lo del operador, más cambiar/clonar/homologar línea base, editar datos de empresa, administrar sucursales y bodegas, administrar usuarios (incluido invitar), y ventas completo: aperturar y cerrar periodos, ingresar ventas, generar reportes REP/ReSimple/GIRO, gestionar archivos del periodo. También accede a Costos REP.
ComercialEnfocado en ventas: mismo acceso a ventas y costos que Supervisor, pero solo lectura sobre línea base, empresa, sucursales, bodegas y usuarios.
ObservadorRol de solo lectura: ve línea base, auditorías (puede comentar) y ventas, y puede exportar/generar reportes, pero no puede crear, editar, aperturar ni cerrar nada. Útil para perfiles de consulta o auditoría externa.
Admin empresaControl completo dentro de la empresa: línea base, auditorías (incluida apertura/cierre individual y masiva), estructura organizacional, usuarios, ventas y costos.

Qué puede hacer cada rol, por área

ÁreaOperadorComercialObservadorSupervisorAdmin empresa
Línea base (productos)Ver, crear, editar, eliminarSolo verSolo verTodo + clonar/homologar/cambiar línea baseTodo
Auditorías (componentes y productos)Ver, comentarVer, comentarVer, comentarVer, comentarVer, comentar, abrir/cerrar (individual y masivo)
Empresa, sucursales, bodegasSolo verSolo verVer, crear, editar, eliminarVer, crear, editar, eliminar
UsuariosSolo verSolo verVer, crear, editar, eliminar, invitarVer, crear, editar, eliminar, invitar
Ventas (periodos, ingreso, reportes)TodoVer y generar reportes (sin escribir)TodoTodo
Costos REPVerVerVerVer
Generador IndustrialVerVer

Esta tabla resume el criterio general de asignación; el detalle exacto vive en la configuración de permisos del sistema y puede evolucionar sin que este documento se actualice de inmediato.

Áreas sensibles

Las siguientes funciones deben considerarse de control reforzado al momento de asignar roles:

  • Apertura y cierre de periodos de ventas.
  • Generación de reportes oficiales (REP, ReSimple, GIRO) y descarga de fichas PDF.
  • Acceso al módulo Costos REP.
  • Apertura y cierre de auditorías de producto (Admin empresa).
  • Administración de usuarios, invitaciones y permisos.

Controles de seguridad

  • Autenticación federada con Keycloak, incluyendo segundo factor (TOTP) obligatorio desde el segundo ingreso.
  • Roles y permisos asignados por empresa.
  • Límite de 5 intentos de login por minuto por usuario/IP (login y login/identify).
  • Límites específicos en los endpoints de Keycloak: reenvío de verificación/activación (3 por minuto), confirmación de verificación e intercambio de sesión (10 por minuto), cambio de nombre de usuario (6 por minuto).
  • Protección contra CSRF.
  • Validación de datos antes de procesarlos.
  • Expiración de sesión absoluta (no se extiende por seguir usando la plataforma) y revocación de tokens al cerrar sesión, incluyendo cierre de sesión en Keycloak (single logout).
  • Registro de actividades para auditoría.
  • Control de descargas por permisos específicos.
  • Uso de HTTPS en toda la plataforma.

Buenas prácticas recomendadas

  1. Asigne el menor privilegio posible por empresa: si un perfil solo necesita consultar, use Observador en vez de un rol con permisos de escritura.
  2. Restrinja la descarga de archivos y el acceso a Costos REP a perfiles con necesidad operativa real.
  3. Revise periódicamente usuarios invitados y roles asignados por empresa.
  4. Cierre sesión en equipos compartidos o de uso temporal.