Skip to Content

Autenticación en APIs: OAuth2 y credenciales

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

Esta lección aborda la autenticación OAuth2 en n8n, un método robusto para autorizar aplicaciones sin compartir credenciales directas. Se explica el flujo de autorización, la gestión de tokens y la configuración práctica en n8n para asegurar integraciones con servicios que utilizan este estándar.

Autenticación en APIs: OAuth2 y credenciales

Fundamentos de OAuth2

OAuth2 es un estándar de la industria para la autorización delegada. Permite que una aplicación (cliente) acceda a recursos protegidos en un servidor de recursos en nombre de un usuario, sin que el cliente necesite conocer las credenciales del usuario. En lugar de ello, el cliente obtiene un token de acceso. Este token tiene un alcance y una duración limitados, lo que reduce el riesgo en caso de compromiso.

El flujo de OAuth2 implica la interacción entre cuatro roles principales:

  • Propietario del Recurso (Resource Owner): Generalmente el usuario final que autoriza el acceso a sus datos.
  • Cliente (Client): La aplicación que desea acceder a los recursos del propietario (en nuestro caso, n8n).
  • Servidor de Autorización (Authorization Server): Servidor que autentica al propietario del recurso y emite tokens de acceso al cliente.
  • Servidor de Recursos (Resource Server): Servidor que aloja los recursos protegidos y acepta tokens de acceso para otorgar acceso.

Flujo de Autorización OAuth2

El flujo más común para aplicaciones web como n8n es el Authorization Code Grant. Sus pasos clave son:

  1. El cliente (n8n) redirige al propietario del recurso a la URL de autorización del servidor de autorización.
  2. El propietario del recurso se autentica con el servidor de autorización y otorga permiso al cliente.
  3. El servidor de autorización redirige al propietario del recurso de vuelta al cliente con un código de autorización.
  4. El cliente intercambia este código de autorización por un token de acceso y, opcionalmente, un token de refresco en el servidor de autorización. Esta solicitud se realiza directamente entre servidores, sin pasar por el navegador del usuario.
  5. El cliente utiliza el token de acceso para realizar solicitudes a la API del servidor de recursos.
  6. Cuando el token de acceso expira, el cliente usa el token de refresco (si lo tiene) para obtener un nuevo token de acceso sin requerir la intervención del usuario.
REGLA DEL OFICIO

Nunca expongas el Client Secret en código del lado del cliente (navegador). Las solicitudes de intercambio de código por token siempre deben realizarse desde un entorno seguro de servidor.

Configuración de OAuth2 en n8n

n8n simplifica la gestión de OAuth2 a través de su sistema de credenciales. Para configurar una credencial OAuth2 en n8n, se requiere la siguiente información, obtenida del proveedor de la API:

  • Client ID: Identificador público de tu aplicación (n8n) ante el servidor de autorización.
  • Client Secret: Secreto de tu aplicación, usado para autenticar n8n con el servidor de autorización. Debe mantenerse confidencial.
  • Authorization URL: URL a la que n8n redirige al usuario para iniciar el proceso de autorización.
  • Access Token URL: URL donde n8n intercambia el código de autorización por tokens.
  • Scope(s): Permisos específicos que n8n solicita al usuario (ej. read:email, write:calendar).
  • Redirect URL (Callback URL): URL a la que el servidor de autorización redirigirá al usuario después de la autorización. n8n genera esta URL automáticamente y debe registrarse en la configuración de la aplicación del proveedor de la API.

Una vez configurada la credencial en n8n, al ejecutar un nodo que la utiliza por primera vez, n8n iniciará el flujo de autorización. Esto implicará abrir una ventana del navegador para que el usuario autentique y autorice el acceso. Tras la autorización exitosa, n8n almacenará los tokens de acceso y refresco de forma segura y los gestionará automáticamente, incluyendo la renovación de tokens cuando sea necesario.

Gestión de Tokens de Acceso y Refresco

Los tokens de acceso son credenciales temporales que otorgan acceso a recursos específicos. Tienen una vida útil limitada (minutos u horas) por razones de seguridad. Cuando un token de acceso expira, las solicitudes a la API fallarán con un error de autenticación.

Los tokens de refresco son tokens de larga duración que permiten a n8n obtener nuevos tokens de acceso sin requerir la interacción del usuario. n8n está diseñado para manejar esta renovación de forma transparente. Cuando un token de acceso expira, n8n utiliza el token de refresco para solicitar uno nuevo al servidor de autorización. Si el token de refresco también expira o es revocado, se requerirá una nueva autorización manual por parte del usuario.

La gestión automática de tokens en n8n es una ventaja significativa. Reduce la complejidad para el desarrollador del workflow y mejora la seguridad al limitar la exposición de tokens de acceso de larga duración.

Aplicación Práctica: Configuración de OAuth2 con Google Sheets

Para aplicar estos conceptos, crearemos una credencial OAuth2 para interactuar con la API de Google Sheets. Esto implica:

  1. Crear un proyecto en Google Cloud Console: Accede a console.cloud.google.com, crea un nuevo proyecto y habilita la API de Google Sheets.
  2. Configurar la pantalla de consentimiento OAuth: Define el nombre de la aplicación, el correo electrónico de soporte y los ámbitos (scopes) necesarios (ej. https://www.googleapis.com/auth/spreadsheets).
  3. Crear credenciales OAuth client ID: Selecciona el tipo de aplicación 'Aplicación web'. Google te proporcionará un Client ID y un Client Secret. Es crucial registrar la Redirect URL que n8n te proporcionará (normalmente https://your-n8n-instance.com/rest/oauth2-credential/callback).
  4. Configurar la credencial en n8n: En n8n, ve a 'Credenciales', selecciona 'Google Sheets OAuth2 API', e introduce el Client ID, Client Secret y los Scopes. n8n te guiará a través del proceso de autorización inicial.

Una vez que la credencial esté autorizada en n8n, podrás usarla en cualquier nodo de Google Sheets para leer o escribir datos, sabiendo que n8n gestionará la autenticación y la renovación de tokens de forma autónoma. Esto te permite construir workflows robustos que interactúan de forma segura con los servicios de Google sin exponer las credenciales del usuario.


Rating
0 0

There are no comments for now.

to be the first to leave a comment.