Aidoo
Configuració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.

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 IA → Servidor MCP → Backend Aidoo → Odoo XML-RPC
                              ├─ Auth (JWT / API Key)
                              ├─ Control de permisos
                              ├─ Registro de actividad
                              └─ Cifrado 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
  • El token de acceso es de corta duración y se renueva automáticamente
  • La autorización está limitada a una empresa: el usuario selecciona explícitamente qué organización Aidoo autoriza
  • La revocación es inmediata desde el panel de Aidoo

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

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
  • 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, transmitido mediante la cabecera Authorization
  • 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

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 las claves API de todos los miembros, acceso a todos los logs, configuración de Odoo
MemberAcceso limitado: gestión únicamente de sus propias claves API, consulta de sus propios logs

Ejemplos concretos

AcciónOwnerAdminMember
Crear una clave API para sí mismo
Revocar la clave de otro miembroNo
Consultar todos los logsNo
Modificar la conexión OdooNo
Invitar a un nuevo miembroNo
Gestionar la facturaciónNoNo
Transferir la propiedadNoNo

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. El middleware comprueba sistemáticamente la pertenencia antes de cualquier operación.

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

Los logs se eliminan automáticamente al cabo de 90 días mediante un índice TTL de MongoDB. Esta duración permite un histórico suficiente para la auditoría a la vez que respeta los principios de minimización de datos.

Filtrado y consulta

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

  • Herramienta MCP utilizada
  • Estado de la petición (éxito, error, timeout)
  • Usuario
  • Rango de fechas

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

Recomendaciones

  • Clave de cifrado: utiliza una clave de 32 caracteres aleatorios para ENCRYPTION_KEY
  • Rotación de tokens: los access tokens JWT expiran automáticamente cada 15 minutos
  • Permisos mínimos: asigna únicamente los permisos necesarios a cada clave API
  • Supervisión: revisa regularmente los logs para detectar cualquier actividad inusual
  • Revocación rápida: en caso de sospecha de compromiso, revoca inmediatamente la clave afectada