Administración

Seguridad y permisos

Arquitectura de seguridad de Aidoo: autenticación OAuth y por clave API, control de acceso por rol, cifrado de credenciales y registro de actividad.

8 min de lecturaActualizado el 1 de octubre de 2026

Arquitectura de seguridad

Aidoo aplica un enfoque de seguridad en profundidad. Cada petición MCP pasa por el backend Express, que se encarga de la autenticación, el control de acceso, el cifrado y el registro antes de llegar a Odoo.

Asistente de IAServidor MCPBackend de AidooXML-RPCOdooAutenticación (JWT / clave API)Control de permisosRegistro de actividadCifrado de credenciales

Autenticación

Aidoo propone tres métodos de autenticación según el contexto de uso.

OAuth 2.1 (Claude.ai, ChatGPT, Claude Desktop, Claude Code, recomendado)

Para los clientes que soportan OAuth (Claude.ai, ChatGPT, Claude Desktop, Claude Code), la autenticación se gestiona mediante un flujo OAuth 2.1 estándar:

  • Ninguna clave API que manipular del lado del usuario, así que ningún secreto que filtrar
  • La conexión se renueva automáticamente: un conector usado con regularidad no necesita volver a conectarse
  • La autorización está limitada a una empresa: el usuario selecciona explícitamente qué organización Aidoo autoriza
  • Los permisos se eligen en la pantalla de consentimiento, con un conjunto propio opcional para la pre-producción
  • La revocación es inmediata desde la página Claves API del panel

Es el método por defecto recomendado para la mayoría de los usuarios. Consulta las guías Conectarse con Claude y Conectarse con ChatGPT.

Claves API (IDEs sin OAuth)

Para los IDEs que no soportan OAuth (Cursor, Windsurf, etc.), las claves API autentican las peticiones programáticas. Cada clave:

  • Se hashea con SHA-256 antes de almacenarse (la clave en claro nunca se guarda)
  • Lleva un prefijo aid_live_ para una identificación rápida
  • Está vinculada a un usuario y a una empresa, con una clave activa por miembro y por espacio
  • Puede revocarse instantáneamente desde el panel

Consulta las guías Claves API y Clientes locales para una gestión completa.

JWT (sesiones del panel)

Las sesiones del panel web utilizan tokens JWT:

  • Access token: vida útil de 15 minutos
  • Refresh token: vida útil de 30 días, transmitido mediante una cookie httpOnly segura
  • La renovación es automática y transparente para el usuario

Autenticación de dos factores (TOTP)

Cada usuario puede proteger su cuenta con un código temporal generado por una aplicación de autenticación (Google Authenticator, Microsoft Authenticator, 1Password, etc.). La opción es voluntaria y se configura cuenta por cuenta.

  1. Abre Ajustes, sección Autenticación de dos factores, y haz clic en Activar
  2. Si tu cuenta tiene contraseña, introdúcela para confirmar tu identidad
  3. Escanea el código QR con tu aplicación (o introduce la clave mostrada)
  4. Introduce el código de 6 cifras para confirmar la activación
  5. Guarda los 8 códigos de recuperación mostrados: cada uno solo sirve una vez y no volverán a mostrarse

A partir de ahí, el código se pide en cada nuevo inicio de sesión en el panel, tanto con contraseña como con Google. Dispones de 5 minutos y 5 intentos; después, hay que volver a iniciar sesión. Si pierdes el teléfono, haz clic en «Usar un código de recuperación».

Lo que la activación no cambia:

  • las sesiones ya abiertas siguen siendo válidas: nadie queda desconectado;
  • las claves API y las conexiones OAuth de tus asistentes (Claude, ChatGPT, IDEs) siguen funcionando sin código;
  • el chat integrado en Odoo y los agentes no se ven afectados.

Desactivar la opción o generar nuevos códigos de recuperación (botón «Nuevos códigos de recuperación», que invalida los anteriores) requiere un código de la aplicación, y la contraseña en las cuentas que la tienen.

Roles y control de acceso

Aidoo utiliza un sistema de roles a tres niveles, aplicado por empresa. Un mismo usuario puede tener roles distintos según la empresa.

RolAlcance
OwnerControl total: gestión de la empresa, los miembros, las claves API, la facturación y la conexión Odoo
AdminAdministración: gestión de los miembros y de sus claves API, límites de créditos IA, acceso a todos los logs, configuración de Odoo
MemberAcceso limitado: consulta y revocación de sus propias claves API, consulta de sus propios logs

Por defecto, un miembro elige él mismo los permisos de su conector. La opción Miembros en solo lectura de los Ajustes lo limita a la lectura (ver Claves API).

El rol Owner es único por espacio y puede transmitirse a otro miembro desde la página Equipo, tras confirmación por email (ver Facturación y gestión del espacio).

Ejemplos concretos

AcciónOwnerAdminMember
Conectar su asistente por OAuthSíSíSí
Generar o modificar la clave API de un miembroSíSíNo
Revocar la clave de otro miembroSíSíNo
Consultar todos los logsSíSíNo
Modificar la conexión Odoo, bloquear modelos y camposSíSíNo
Invitar o retirar a un miembroSíSíNo
Fijar el límite mensual de créditos IA de un miembroSíSíNo
Actualizar los hints a través del asistente (por defecto)SíSíNo
Gestionar la facturaciónSíNoNo
Transferir la propiedad, eliminar el espacioSíNoNo

El límite de créditos IA por miembro se configura desde la página Equipo, ver Créditos y consumo.

Aislamiento multi-tenant

Cada petición está limitada a una empresa. Un usuario solo puede acceder a los recursos de las empresas a las que pertenece.

Bloquear modelos y campos

Con independencia de los permisos de las claves, los owners y admins pueden cerrar partes enteras de la base desde la página Configuración Odoo:

  • Bloquear este modelo: ya no es posible ninguna consulta sobre el modelo, sea cual sea la herramienta;
  • Bloquear este campo: el campo se retira de las lecturas y se ignora en las escrituras.

Estos bloqueos se aplican a todas las claves, incluidas las de los agentes y del chat integrado en Odoo. El filtro «Bloqueados» de la página lista lo que está cerrado, y «Desbloquear todo» reabre los modelos de una vez.

Cifrado de credenciales Odoo

Las credenciales de conexión Odoo (URL, base de datos, contraseña) se cifran en reposo en la base de datos.

Algoritmo

  • AES-256-GCM (Galois/Counter Mode): cifrado autenticado que garantiza a la vez la confidencialidad y la integridad de los datos
  • Vector de inicialización (IV): 16 bytes aleatorios generados para cada operación de cifrado
  • Tag de autenticación: 16 bytes para detectar cualquier alteración de los datos cifrados

Funcionamiento

  1. Al guardar una conexión Odoo, las credenciales sensibles se cifran del lado del servidor
  2. El resultado se almacena en formato IV:TAG:CIPHERTEXT (hexadecimal)
  3. En cada petición a Odoo, las credenciales se descifran en memoria durante la duración de la llamada
  4. La clave de cifrado es una variable de entorno del servidor, jamás expuesta del lado del cliente

Las credenciales Odoo nunca circulan en claro entre el navegador y el servidor MCP. Solo el backend dispone de la clave de descifrado.

Registro de las peticiones

Cada llamada MCP se registra con un nivel de detalle que permite una auditoría completa.

Datos registrados

CampoDescripción
Herramienta MCPNombre de la herramienta llamada (query, read, create, etc.)
ParámetrosDatos de entrada de la petición
ResultadoDatos de salida (éxito) o mensaje de error
Estadosuccess, error o timeout
DuraciónTiempo de ejecución en milisegundos
UsuarioIdentidad del usuario y clave API utilizada
SesiónIdentificador de sesión para agrupar llamadas relacionadas

Retención de los datos

La duración de conservación se configura por espacio en Ajustes, pestaña Odoo y logs, sección Logs de solicitudes: 7, 14, 30, 90, 180 o 365 días (14 días por defecto). Pasado ese plazo, los logs se eliminan automáticamente, y reducir la duración elimina de inmediato los logs más antiguos.

La misma sección permite desactivar por completo la recogida detallada, o solo para algunas herramientas («Ajustes avanzados»). Las estadísticas y las cuotas siguen activas en todos los casos. Estos ajustes están reservados a los owners y admins.

Filtrado y consulta

Desde la página Logs del panel, puedes filtrar por:

  • Herramienta MCP utilizada
  • Estado de la petición (éxito, error, timeout)
  • Entorno (producción o pre-producción)
  • Rango de fechas

Los owners y admins consultan todos los logs de la empresa. Los members solo ven sus propias peticiones.

Siguiente paso