Autenticación en APIs: API Key y Basic Auth
Para interactuar con APIs externas, es fundamental comprender los mecanismos de autenticación. Esta lección cubre la implementación de API Key y Basic Authentication en n8n, métodos comunes para asegurar el acceso a recursos protegidos. Dominar su configuración es el primer paso para construir integraciones robustas y seguras.

Fundamentos de la autenticación en APIs
Las APIs protegen sus recursos para asegurar que solo usuarios o sistemas autorizados puedan acceder o modificar datos. La autenticación es el proceso de verificar la identidad del cliente que realiza una solicitud. Sin una autenticación adecuada, las solicitudes a una API protegida resultarán en errores de acceso, típicamente un código de estado HTTP 401 Unauthorized.
En n8n, la autenticación se configura principalmente en el nodo HTTP Request o a través de credenciales globales. La elección del método depende de los requisitos de la API a la que se conecta. Los dos métodos más directos y ampliamente utilizados son la API Key y la Basic Authentication.
API Key: Identificación por clave
Una API Key es una cadena de caracteres única que se utiliza para identificar al cliente que realiza la solicitud. Es un método de autenticación sencillo y común, pero su seguridad depende de cómo se almacena y transmite. No debe confundirse con un token de sesión o un secreto de OAuth2; una API Key es una credencial estática que se genera una vez y se utiliza en cada solicitud.
Las API Keys se envían generalmente de una de estas tres maneras:
- En el encabezado (Header) de la solicitud: Es la forma más común y recomendada. Se utiliza un encabezado específico, como
X-API-KeyoAuthorizationcon un prefijo comoBearer(aunque este último es más común con tokens OAuth2). - Como parámetro de consulta (Query Parameter): La clave se incluye directamente en la URL, por ejemplo,
https://api.ejemplo.com/recurso?apiKey=TU_CLAVE. Este método es menos seguro porque la clave puede quedar registrada en logs del servidor, historiales de navegador o proxies. - En el cuerpo de la solicitud (Body): Menos común para API Keys, pero posible en solicitudes POST o PUT.
En n8n, para configurar una API Key en un nodo HTTP Request:
- Abre el nodo HTTP Request.
- En la sección Authentication, selecciona 'None' si la clave va en un encabezado personalizado o parámetro. Si la API usa un encabezado
Authorization: Bearer YOUR_API_KEY, puedes seleccionar 'Header Auth' y configurar el encabezado. - Para encabezados personalizados: Ve a la sección Headers y añade un nuevo encabezado. Por ejemplo,
X-API-Keycomo clave y tu API Key como valor. Si la clave es un valor sensible, utiliza una expresión para obtenerla de una credencial de n8n o de una variable de entorno. - Para parámetros de consulta: Ve a la sección Query Parameters y añade la clave y su valor.
Siempre que sea posible, almacena las API Keys como credenciales en n8n o variables de entorno. Evita incrustarlas directamente en los nodos para mejorar la seguridad y facilitar la gestión en diferentes entornos (desarrollo, pruebas, producción).
Basic Authentication: Usuario y Contraseña
La Basic Authentication es un método de autenticación sencillo definido en HTTP. Consiste en enviar un nombre de usuario y una contraseña codificados en Base64 en el encabezado Authorization de cada solicitud. Aunque es simple de implementar, no proporciona cifrado por sí mismo; por lo tanto, siempre debe usarse sobre una conexión HTTPS para evitar que las credenciales sean interceptadas en texto plano.
El formato del encabezado Authorization es Basic <credenciales_codificadas_en_Base64>, donde <credenciales_codificadas_en_Base64> es el resultado de codificar la cadena usuario:contraseña.
En n8n, la configuración de Basic Authentication es directa:
- Abre el nodo HTTP Request.
- En la sección Authentication, selecciona 'Basic Auth'.
- n8n te pedirá un Username y un Password. Puedes ingresarlos directamente, pero la práctica recomendada es usar una credencial de n8n para almacenar estas credenciales de forma segura.
- Si ya tienes una credencial de tipo 'Basic Auth' configurada, selecciónala. Si no, haz clic en 'Create new' para crear una e ingresa el usuario y la contraseña.
Una vez configurado, n8n se encargará automáticamente de codificar el usuario y la contraseña en Base64 y de añadir el encabezado Authorization a cada solicitud realizada por ese nodo.
Consideraciones de seguridad y uso
| Característica | API Key | Basic Auth |
|---|---|---|
| Complejidad | Baja | Baja |
| Seguridad (sin HTTPS) | Baja (clave expuesta) | Muy baja (credenciales expuestas) |
| Rotación | Manual, requiere regeneración | Cambio de contraseña |
| Granularidad de permisos | Limitada (depende de la API) | Limitada (depende de la API) |
| Almacenamiento en n8n | Credencial 'API Key' o 'Generic Credential' | Credencial 'Basic Auth' |
Ambos métodos son adecuados para escenarios donde la simplicidad es clave y la API no requiere mecanismos de autenticación más complejos como OAuth2. Sin embargo, es crítico utilizarlos siempre sobre HTTPS. Sin cifrado de transporte, las API Keys y las credenciales de Basic Auth pueden ser interceptadas, comprometiendo la seguridad de la integración y los sistemas conectados.
Para APIs que requieren un control de acceso más fino, como permisos específicos por usuario o por aplicación, o que necesitan interacción con el usuario para autorizar el acceso, se utilizan métodos más avanzados como OAuth2, que se cubrirán en la siguiente lección.
Aplicación práctica: Configurando autenticación para una API de prueba
Para el lunes, identifique una API interna o de prueba que utilice API Key o Basic Auth. Siga estos pasos para configurar su autenticación en n8n:
- Identifique la API: Elija una API con la que necesite interactuar. Puede ser un servicio interno de gestión de inventario, un sistema de tickets o una API pública de prueba (ej. Reqres.in para Basic Auth, o una API de clima para API Key).
- Determine el método de autenticación: Revise la documentación de la API para confirmar si usa API Key (y cómo se envía: header/query) o Basic Auth.
- Cree las credenciales en n8n: Vaya a 'Credentials' en n8n y cree una nueva credencial del tipo correspondiente (API Key o Basic Auth). Ingrese los valores de forma segura.
- Configure un nodo HTTP Request: Añada un nodo HTTP Request a un flujo de trabajo. Configure la URL del endpoint y seleccione la credencial creada en la sección 'Authentication'.
- Pruebe la conexión: Ejecute el flujo para verificar que la autenticación es exitosa y que el nodo HTTP Request devuelve los datos esperados (código de estado 200 OK).
Este ejercicio práctico le permitirá consolidar los conceptos y asegurar que puede establecer conexiones autenticadas de manera efectiva.
No hay comentarios por ahora.