Skip to Content

Autenticación en APIs: API Key y Basic Auth

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

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.

Autenticación en APIs: API Key y Basic Auth

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-Key o Authorization con un prefijo como Bearer (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:

  1. Abre el nodo HTTP Request.
  2. 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.
  3. Para encabezados personalizados: Ve a la sección Headers y añade un nuevo encabezado. Por ejemplo, X-API-Key como 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.
  4. Para parámetros de consulta: Ve a la sección Query Parameters y añade la clave y su valor.
REGLA DEL OFICIO

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:

  1. Abre el nodo HTTP Request.
  2. En la sección Authentication, selecciona 'Basic Auth'.
  3. 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.
  4. 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ísticaAPI KeyBasic Auth
ComplejidadBajaBaja
Seguridad (sin HTTPS)Baja (clave expuesta)Muy baja (credenciales expuestas)
RotaciónManual, requiere regeneraciónCambio de contraseña
Granularidad de permisosLimitada (depende de la API)Limitada (depende de la API)
Almacenamiento en n8nCredencial '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:

  1. 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).
  2. 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.
  3. 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.
  4. 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'.
  5. 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.


Rating
0 0

There are no comments for now.

to be the first to leave a comment.