Skip to Content

Gestión de Credenciales (Credentials)

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

Las automatizaciones en n8n a menudo interactúan con servicios externos que requieren autenticación. Gestionar las credenciales de forma segura es fundamental para proteger el acceso a estos sistemas. Esta lección explica cómo configurar y utilizar las credenciales en n8n, asegurando que los datos sensibles no queden expuestos en los workflows.

Gestión de Credenciales (Credentials)

Propósito de las Credenciales en n8n

Cuando un workflow necesita conectarse a una API, una base de datos o cualquier servicio externo, casi siempre requiere algún tipo de autenticación. Esto puede ser una clave API, un token OAuth, un nombre de usuario y contraseña, o certificados. Introducir estos datos directamente en los nodos de un workflow presenta riesgos de seguridad y dificulta la gestión.

n8n resuelve esto mediante un sistema centralizado de credenciales. En lugar de incrustar información sensible en cada nodo, se crea una entrada de credencial una única vez. Esta entrada se almacena de forma segura y se referencia desde los nodos que la necesitan. Esto tiene dos beneficios principales:

  • Seguridad: Las credenciales se cifran en reposo y no son visibles directamente en el editor del workflow ni en los logs de ejecución (a menos que se configure explícitamente para depuración, lo cual no es recomendable en producción).
  • Reusabilidad y Mantenimiento: Una credencial puede ser utilizada por múltiples workflows y nodos. Si una clave API cambia, solo se actualiza la credencial una vez en la configuración de n8n, y todos los workflows que la usan se benefician del cambio automáticamente, sin necesidad de editar cada nodo individualmente.

Tipos de Credenciales y cómo funcionan

n8n soporta una amplia variedad de tipos de credenciales predefinidas para servicios populares (Google Sheets, Salesforce, Slack, etc.). Cada tipo de credencial está diseñado para manejar el método de autenticación específico de ese servicio (por ejemplo, OAuth2 para Google, claves API para Stripe).

Además de las credenciales específicas de servicio, existe un tipo de credencial genérica llamada "Generic Credential". Esta es útil para servicios que no tienen un tipo predefinido en n8n o para almacenar datos personalizados que se necesitan en varios lugares. Permite definir campos de texto, números o incluso archivos.

REGLA DEL OFICIO

Nunca almacenes credenciales en variables de entorno directamente en los nodos de un workflow si existe una opción de credencial dedicada. Las variables de entorno son para configuraciones del entorno de n8n, no para secretos de aplicación. Usa el sistema de credenciales de n8n para cualquier dato sensible que un workflow necesite para interactuar con servicios externos.

Creación de una Credencial Genérica

Para ilustrar el proceso, crearemos una credencial genérica que simula la autenticación para un servicio externo. Supongamos que este servicio requiere una "API Key" y un "Secret Token".

  1. En la interfaz de n8n, ve al menú lateral izquierdo y haz clic en "Credentials" (el icono de una llave).
  2. Haz clic en el botón "New Credential".
  3. En el campo "Credential Type", busca y selecciona "Generic Credential".
  4. Asigna un "Credential Name" descriptivo, por ejemplo, "ServicioExterno_CredencialesProduccion". Este nombre es crucial para identificarla posteriormente.
  5. En la sección "Fields", haz clic en "Add Field".
  6. Para el primer campo, selecciona "Text" como tipo. En "Name", escribe "apiKey". En "Value", introduce un valor de ejemplo como "sk_live_xyz123abc". Marca "Sensitive" para que el valor se oculte.
  7. Haz clic en "Add Field" de nuevo. Para el segundo campo, selecciona "Text". En "Name", escribe "secretToken". En "Value", introduce un valor de ejemplo como "sh_prod_def456ghi". Marca "Sensitive".
  8. Haz clic en "Save" para guardar la credencial.

Una vez guardada, verás la credencial listada. Los valores sensibles estarán ocultos. Puedes editarla en cualquier momento para actualizar los valores.

Asignación y uso de Credenciales en Nodos

Ahora que la credencial está creada, podemos asignarla a un nodo que necesite interactuar con el servicio externo. Usaremos un nodo "HTTP Request" como ejemplo, aunque el principio es el mismo para cualquier nodo que requiera autenticación.

  1. Crea un nuevo workflow o abre uno existente.
  2. Agrega un nodo "HTTP Request" al canvas.
  3. En las propiedades del nodo "HTTP Request", busca la sección "Authentication".
  4. En el campo "Authentication", selecciona "Generic Credential".
  5. Aparecerá un campo "Credential". Haz clic en él y selecciona la credencial que acabas de crear, "ServicioExterno_CredencialesProduccion".
  6. Una vez seleccionada la credencial, los campos que definiste en ella (apiKey, secretToken) estarán disponibles para ser referenciados en otras partes del nodo, por ejemplo, en los headers o en el cuerpo de la solicitud HTTP. Puedes acceder a ellos usando expresiones. Por ejemplo, para incluir la API Key en un header llamado X-API-Key, en la sección "Headers" del nodo, agregarías un nuevo header con el nombre X-API-Key y el valor {{ $credential.apiKey }}.
{
  "header": [
    {
      "name": "X-API-Key",
      "value": "={{ $credential.apiKey }}"
    },
    {
      "name": "Authorization",
      "value": "Bearer ={{ $credential.secretToken }}"
    }
  ]
}

La sintaxis {{ $credential.nombreDelCampo }} permite inyectar los valores de la credencial de forma segura. n8n se encarga de recuperar el valor cifrado y usarlo en la ejecución del workflow.

Aplicación Práctica: Refactorización de Autenticación

El lunes, revisa tus workflows existentes. Si encuentras nodos que tienen claves API, tokens o credenciales de usuario y contraseña codificadas directamente en sus configuraciones (por ejemplo, en campos de texto de nodos HTTP Request o en los parámetros de conexión de nodos de bases de datos), es momento de refactorizar.

Identifica los datos sensibles y crea una credencial de n8n para cada servicio externo. Luego, actualiza los nodos para que referencien estas nuevas credenciales en lugar de tener los valores incrustados. Esto mejorará la seguridad y simplificará futuras actualizaciones de credenciales. Es una tarea de mantenimiento que previene problemas mayores.


Rating
0 0

There are no comments for now.

to be the first to leave a comment.