Saltar al contenido principal

Usuario (User)

El sistema de usuarios en ValerIA proporciona un control de acceso granular y flexible para gestionar quién puede acceder a qué funcionalidades del sistema. Los usuarios son la base del sistema de autenticación y autorización.

¿Qué es un Usuario?

Un usuario en ValerIA es una entidad que representa a una persona o sistema automatizado que puede interactuar con la plataforma. Cada usuario tiene un conjunto de propiedades que definen su identidad, permisos y configuraciones específicas.

Estructura del Usuario

El usuario está constituido por la siguiente información en formato JSON:

Campos Básicos

CampoTipoDescripciónRequeridoEjemplo
nameStringNombre real del usuario"Luis"
surnameStringApellidos del usuario"Smith"
nicknameStringNombre de usuario o alias"Luisito"
emailStringCorreo electrónico (único)"luis@test.com"
passwordStringContraseña del usuario"secretPAsSwOrd"

Control de Acceso

CampoTipoDescripciónEnlaceEjemplo
roleStringRol del usuario en el sistemaVer Roles"user", "admin", "robot"
groupsArray[String]Grupos a los que perteneceVer Grupos["administración", "legal"]
policiesArray[String]Políticas de acceso específicasVer Políticas["readuser", "writeuser"]

Estado y Control

CampoTipoDescripciónPor DefectoUso
activeBooleanSi el usuario está activotrueHabilitar/deshabilitar acceso
devicecheckBooleanControl de dispositivos habilitadofalseSeguridad adicional
activityBooleanSeguimiento de tiempo de trabajofalseControl laboral
presencecontrolBooleanControl de presenciafalseGestión de asistencia

Campos del Sistema

CampoTipoDescripciónGenerado
timestampDateFecha de creación del usuarioAutomático
hashStringHash de la contraseñaAutomático
signStringFirma de seguridad del usuarioAutomático
apikeyStringClave API para usuarios robotAutomático

Ejemplo de Usuario Estándar

{
"name": "Luis",
"surname": "Smith",
"nickname": "Luisito",
"email": "luis@test.com",
"password": "secretPAsSwOrd",
"role": "user",
"groups": ["administración"],
"policies": [
"readuser",
"writeuser",
"readdossier",
"writedossier"
],
"active": true,
"devicecheck": false,
"activity": true,
"presencecontrol": false
}

Control de Dispositivos

Cuando devicecheck está habilitado, el sistema rastrea información detallada de cada dispositivo:

Información de Dispositivos

CampoDescripciónEjemplo
firstPrimera conexión2023-01-15T10:30:00Z
lastÚltima conexión2023-12-01T14:22:00Z
idIdentificador único del dispositivo"device_abc123"
nameNombre del dispositivo"MacBook Pro de Luis"
ipDirección IP"192.168.1.100"
OSSistema operativo"macOS"
browserNavegador utilizado"Chrome"
locationUbicación geográfica"Madrid, España"
permitedSi está autorizadotrue/false

Ejemplo de Estructura de Dispositivos

{
"devices": [
{
"first": "2023-01-15T10:30:00Z",
"last": "2023-12-01T14:22:00Z",
"id": "device_abc123",
"name": "MacBook Pro de Luis",
"ip": "192.168.1.100",
"OS": "macOS",
"OSversion": "13.1",
"browser": "Chrome",
"version": "108.0.0.0",
"platform": "Intel",
"activity": true,
"TZ": "Europe/Madrid",
"location": "Madrid, España",
"visualcheck": false,
"permited": true
}
]
}

Usuarios Robot

Los usuarios robot son un tipo especial diseñado para integración de sistemas y automatización:

Características Especiales

  • No pueden autenticarse en la aplicación web
  • Solo acceso por API usando robotKey
  • Permisos por defecto amplios (se recomienda limitarlos)
  • Ideal para scripts y sistemas externos

Campo Adicional para Robots

CampoTipoDescripciónGeneración
robotKeyStringClave de autenticación para APIAutomática

Ejemplo de Usuario Robot

{
"name": "Bot Integración",
"email": "bot@miempresa.com",
"password": "automaticPassword123",
"role": "robot",
"policies": [
"readdossier",
"writedossier",
"readmovement",
"writemovement"
],
"active": true,
"robotKey": "rk_abc123def456ghi789"
}

Autenticación de Robots

Los usuarios robot se autentican usando su robotKey en lugar del sistema JWT estándar:

# Ejemplo de llamada API con robot
curl -X GET \
https://api.valeria.com/v1/dossier/list \
-H "Authorization: Robot rk_abc123def456ghi789"

Gestión de Usuarios

Creación de Usuarios

Los usuarios se pueden crear desde:

  1. Interfaz Web: Sección /user de la aplicación
  2. API REST: Endpoint /v1/user/create
  3. Importación: Desde archivos CSV/JSON

Políticas Obligatorias

Todo usuario (excepto robots) debe tener como mínimo:

  • readuser: Para leer información de usuarios
  • writeuser: Para gestionar usuarios

Estados del Usuario

EstadoDescripciónEfecto
active: trueUsuario activoPuede acceder al sistema
active: falseUsuario inactivoBloqueado, no puede acceder
devicecheck: trueControl habilitadoRastrea y controla dispositivos
activity: trueSeguimiento activoRegistra tiempo de trabajo

Seguridad y Mejores Prácticas

Contraseñas

  • Almacenadas como hash usando algoritmos seguros
  • Nunca se almacena la contraseña en texto plano
  • Se genera una firma digital (sign) para integridad

Control de Acceso

  • Principio de menor privilegio
  • Políticas granulares por funcionalidad
  • Roles predefinidos para casos comunes

Auditoría

  • Registro de timestamps de creación
  • Rastreo de dispositivos cuando está habilitado
  • Logs de todas las operaciones críticas

Recomendaciones

  1. Revisar periódicamente las políticas asignadas
  2. Desactivar usuarios en lugar de eliminarlos
  3. Habilitar devicecheck para usuarios críticos
  4. Limitar políticas de usuarios robot al mínimo necesario
  5. Usar grupos para gestión eficiente de permisos

Campos Técnicos Adicionales

Para desarrolladores y administradores del sistema:

Metadatos del Sistema

{
"timestamp": "2023-01-15T10:30:00Z",
"hash": "$2b$10$...",
"sign": "abc123def456...",
"apikey": "api_key_for_robots_only"
}

Validaciones del Sistema

  • Email único: No puede haber usuarios duplicados (excepto robots)
  • Formato email: Validación de formato de correo electrónico
  • Políticas válidas: Solo se aceptan políticas definidas en el sistema
  • Roles válidos: admin, user, superadmin, robot

La gestión correcta de usuarios es fundamental para la seguridad y funcionamiento eficiente de ValerIA. Cada campo tiene un propósito específico en el ecosistema de permisos y control de acceso del sistema.