Ir al contenido

Seguridad en n8n: Autenticación, Autorización y Acceso

RUTA E · Agentes y Automatización · Lección 11 de 16

La seguridad en n8n es fundamental para proteger la información y el acceso a los flujos de trabajo automatizados. Esta lección cubre la autenticación de usuarios, la autorización mediante roles y permisos, y cómo configurar el acceso a workflows y credenciales para mantener la integridad operativa.

Seguridad en n8n: Autenticación, Autorización y Acceso

Autenticación de Usuarios en n8n

n8n soporta múltiples mecanismos para autenticar usuarios. La configuración de autenticación es crítica para asegurar que solo el personal autorizado acceda a la interfaz de administración y a los recursos de n8n. Por defecto, n8n utiliza un sistema de autenticación basado en correo electrónico y contraseña. Sin embargo, para entornos de producción, es recomendable integrar n8n con sistemas de identidad existentes.

Las opciones de autenticación más comunes en n8n son:

  • Autenticación local (Email/Password): Es el método predeterminado. Las credenciales se almacenan en la base de datos de n8n. Adecuado para pruebas o equipos pequeños sin infraestructura de identidad centralizada.
  • OAuth2/OpenID Connect (OIDC): Permite integrar n8n con proveedores de identidad como Google, Azure AD, Okta, Keycloak, etc. Esto centraliza la gestión de usuarios y aprovecha las políticas de seguridad del IdP (Identity Provider), como MFA (Multi-Factor Authentication).
  • SSO SAML: Ofrece Single Sign-On mediante el protocolo SAML, común en entornos empresariales para integrar con directorios como Active Directory Federation Services (AD FS).

La configuración de estos métodos se realiza a través de variables de entorno, las cuales deben definirse antes de iniciar la instancia de n8n. Por ejemplo, para OAuth2, se requieren variables como N8N_OAUTH_GOOGLE_CLIENT_ID y N8N_OAUTH_GOOGLE_CLIENT_SECRET. Es crucial que estos secretos se gestionen de forma segura, preferentemente a través de un gestor de secretos o inyectados como variables de entorno al momento del despliegue.

REGLA DEL OFICIO

En producción, evite la autenticación local. Integre n8n con un IdP centralizado (OAuth2/OIDC o SAML) para aprovechar la gestión de identidad existente, aplicar políticas de seguridad corporativas y simplificar la administración de usuarios.

Autorización: Roles y Permisos

Una vez autenticado, un usuario debe ser autorizado para realizar acciones específicas dentro de n8n. n8n implementa un modelo de control de acceso basado en roles (RBAC) que permite definir qué usuarios pueden ver, editar o ejecutar workflows, así como acceder a credenciales y configuraciones del sistema.

Los roles se asignan a los usuarios y estos roles tienen permisos asociados. n8n ofrece roles predefinidos y la capacidad de crear roles personalizados (disponible en versiones recientes y planes empresariales). Los roles típicos incluyen:

  • Administrador: Acceso total a todas las funcionalidades, configuración del sistema, usuarios, workflows y credenciales.
  • Desarrollador/Editor: Puede crear, editar, ejecutar y eliminar sus propios workflows y los de equipos a los que pertenece. Acceso limitado a credenciales.
  • Espectador/Lector: Solo puede ver workflows y sus ejecuciones, pero no modificarlos ni crearlos. Útil para personal de monitoreo o auditoría.

La asignación de roles se realiza desde la interfaz de administración de n8n. Es una buena práctica seguir el principio de mínimo privilegio: asignar a cada usuario solo los permisos estrictamente necesarios para realizar su trabajo. Esto reduce la superficie de ataque y el riesgo de errores operativos.

Control de Acceso a Workflows

n8n permite organizar los workflows en equipos (teams). Esta funcionalidad es clave para la segregación de responsabilidades y el control de acceso. Cada workflow pertenece a un equipo, y los usuarios pueden ser miembros de uno o varios equipos.

Los permisos sobre los workflows se gestionan a nivel de equipo. Un usuario con rol de desarrollador en el equipo 'Ventas' podrá crear y editar workflows dentro de ese equipo, pero no podrá modificar los workflows del equipo 'Finanzas' si no es miembro de este último.

La gestión de equipos y la asignación de usuarios a los mismos se realiza a través de la interfaz de administración. Es esencial planificar la estructura de equipos de n8n de acuerdo con la estructura organizacional y las necesidades de colaboración. Considere equipos por área funcional, proyecto o tipo de integración.

Control de Acceso a Credenciales

Las credenciales en n8n (claves API, tokens OAuth, contraseñas de bases de datos, etc.) son activos sensibles que requieren protección adicional. n8n permite controlar quién puede crear, ver, editar y usar credenciales.

Por defecto, las credenciales se asocian a un equipo. Esto significa que una credencial creada en el equipo 'Ventas' solo puede ser utilizada por workflows que también pertenezcan al equipo 'Ventas'. Los usuarios con permisos de administrador o con roles específicos pueden tener la capacidad de gestionar credenciales a nivel global o por equipo. Es fundamental limitar estrictamente quién tiene acceso a la gestión de credenciales, incluso para administradores, aplicando el principio de segregación de funciones.

ADVERTENCIA TÉCNICA

n8n almacena las credenciales cifradas en la base de datos. Asegúrese de que la clave de cifrado (N8N_ENCRYPTION_KEY) sea robusta y se gestione de forma segura, sin guardarla en el control de versiones ni en ubicaciones accesibles públicamente.

Variables de Entorno para Seguridad

Además de las variables de autenticación, existen otras variables de entorno críticas para la seguridad:

  • N8N_ENCRYPTION_KEY: Clave maestra para cifrar datos sensibles en la base de datos, incluyendo credenciales. Su pérdida implica la imposibilidad de descifrar datos.
  • N8N_EMAIL_MODE: Configura el envío de correos, necesario para recuperación de contraseña y notificaciones. Asegure la configuración correcta del servidor SMTP.
  • N8N_BASIC_AUTH_ACTIVE, N8N_BASIC_AUTH_USER, N8N_BASIC_AUTH_PASSWORD: Para añadir una capa de autenticación HTTP básica frontal. Útil como medida temporal o en entornos específicos, pero no sustituye la autenticación de usuarios de n8n.
  • WEBHOOK_URL: Define la URL base para los webhooks. Es crucial que esta URL sea la correcta y apunte a la instancia pública de n8n para evitar problemas de acceso y seguridad.
export N8N_ENCRYPTION_KEY="SU_CLAVE_SECRETA_DE_32_CARACTERES_O_MAS"
export N8N_OAUTH_GOOGLE_CLIENT_ID="su_client_id"
export N8N_OAUTH_GOOGLE_CLIENT_SECRET="su_client_secret"
export N8N_EMAIL_MODE="smtp"
export N8N_SMTP_HOST="smtp.suempresa.com"
export N8N_SMTP_PORT="587"
export N8N_SMTP_USER="noreply@suempresa.com"
export N8N_SMTP_PASSWORD="su_password_smtp"
export WEBHOOK_URL="https://n8n.suempresa.com"

Siempre consulte la documentación oficial de n8n para la lista completa y actualizada de variables de entorno y sus implicaciones de seguridad.

Aplicación Práctica: Qué Hacer el Lunes

  1. Revisar Autenticación: Verifique el método de autenticación configurado en su instancia de n8n en producción. Si usa autenticación local, planifique la migración a OAuth2/OIDC o SAML con su IdP corporativo.
  2. Definir Roles y Equipos: Mapee los roles de los usuarios de n8n a los roles de su organización (ej. ingenieros de automatización, analistas de negocio, administradores de sistemas). Cree los equipos necesarios en n8n (ej. 'IT', 'Recursos Humanos', 'Operaciones') y asigne los usuarios a los equipos correspondientes con los roles adecuados.
  3. Auditar Permisos: Revise los permisos de acceso a workflows y credenciales para cada rol y equipo. Asegúrese de que se aplique el principio de mínimo privilegio, limitando el acceso solo a lo estrictamente necesario.
  4. Gestionar Clave de Cifrado: Confirme que N8N_ENCRYPTION_KEY se gestiona de forma segura, no está hardcodeada en el código fuente ni expuesta en logs. Considere usar un gestor de secretos para su inyección.
  5. Configurar Webhook URL: Verifique que la variable WEBHOOK_URL esté configurada correctamente apuntando a la URL pública y accesible de su instancia de n8n.

Calificación
0 0

No hay comentarios por ahora.

para ser el primero en comentar.