Saltar al contenido principal
Versión: v2 ⚡

Autenticación OAuth

Algunas aplicaciones exigen OAuth como método de autenticación para conectarse con aplicaciones de terceros y hacer solicitudes a través de sus API. OpenFn te permite conectarte con aplicaciones mediante su autenticación OAuth. Para usar esta funcionalidad en tus workflows de OpenFn, tienes que configurar clientes y credenciales OAuth para tus instancias o proyectos. Esta guía te explica cómo gestionar los clientes y las credenciales OAuth.

Clientes OAuth​

¿Qué es un cliente OAuth y cuándo lo necesito?​

Al configurar OAuth para una aplicación, autorizas a OpenFn a conectarse e interactuar con esa aplicación dentro de un conjunto de permisos (scopes) que tú defines. Por ejemplo, podrías configurar una autorización OAuth para que OpenFn se conecte a tu cuenta de Google Sheets y lea y siga los cambios en tu nombre. En este ejemplo, tienes que configurar un cliente de OpenFn que represente una instancia de OpenFn en Google y que reúna todos los permisos que OpenFn necesita en tu nombre. Todas las solicitudes y respuestas de la API pasan por el cliente de OpenFn y se autorizan con un token de autorización que guarda el cliente.

En la mayoría de los casos basta con configurar un cliente por aplicación, pero según los requisitos del proyecto y las políticas de la organización, puede haber varios clientes configurados para una misma aplicación. Estos clientes pueden pertenecer al mismo usuario de OpenFn o a usuarios distintos, y pueden estar disponibles para proyectos distintos.

Por cada aplicación que necesites conectar a OpenFn, tienes que configurar al menos un cliente para tus proyectos.

Los clientes OAuth se pueden configurar en la página de credenciales del proyecto o en la página de credenciales del usuario.

Crear un cliente OAuth​

Si todavía no tienes un cliente OAuth configurado para tu proyecto, verás una sección vacía con un botón que te invita a crear un cliente, como se muestra a continuación.

Nuevo cliente

Si no, verás la lista de clientes OAuth a los que tienes acceso. Para crear un cliente nuevo, haz clic en el botón Add new y selecciona OAuth client [Advanced] en el menú desplegable.

Menú desplegable de OAuth

consejo

Asegúrate de agregar https://app.openfn.org/authenticate/callback como URL de callback de la aplicación cuando habilites la autenticación OAuth en la aplicación de terceros. (Nota: si no usas app.openfn.org, reemplaza https://app.openfn.org/ por la URL base de tu despliegue de OpenFn).

Para ver indicaciones específicas de cada aplicación (por ejemplo, cómo configurar un cliente OAuth para Google Sheets), consulta la documentación del adaptor correspondiente.

Compartir clientes OAuth​

Un superusuario puede compartir clientes OAuth con proyectos de dos formas:

  1. Hacer que un cliente sea global
  2. Compartirlo con proyectos concretos

Puede hacerlo en la ventana modal de configuración del cliente OAuth, al crear el cliente o al editarlo.

Editar cliente OAuth

Hacer que los clientes OAuth sean globales​

Cuando un cliente OAuth es global, los usuarios de la instancia pueden acceder a él y crear credenciales a partir de él.

Para que un cliente sea global, baja hasta la sección Manage Project Access de la ventana modal de configuración del cliente OAuth, marca la casilla Make client global (allow any project in this instance to use this client) y guarda los cambios. Todos los proyectos de la instancia tendrán acceso al cliente, y los usuarios con rol Owner, Admin o Editor en esos proyectos podrán crear credenciales a partir de él.

Acceso de proyectos al cliente OAuth

Compartir clientes OAuth con proyectos​

Para compartir un cliente OAuth con proyectos concretos, baja hasta la sección Manage Project Access de la ventana modal de configuración del cliente OAuth. Abre el menú desplegable de proyectos, selecciona un proyecto y haz clic en el botón para agregarlo y darle acceso al cliente.

Compartir cliente OAuth

Credenciales OAuth​

Crear una credencial a partir de un cliente OAuth​

Cada cliente necesita un token de autenticación para autenticar las solicitudes que se hacen a la aplicación en nombre del usuario. En OpenFn, estos tokens se crean como credenciales y se asocian a los clientes.

  1. Para crear una credencial a partir de un cliente OAuth, haz clic en el botón "Add new" y selecciona Credential en el menú desplegable, o haz clic en el botón create a new credential.

Nueva credencial

Crear nueva credencial

  1. Luego, en la ventana modal de tipo de credencial, busca y selecciona el cliente OAuth que quieres usar para crear la credencial OAuth. Se abrirá una nueva ventana modal para que configures la credencial con el nombre, los permisos (scopes) necesarios y la versión de la API.
  2. Cuando hayas completado el formulario, haz clic en el botón Sign in with [your OAuth Client name] para autorizar el cliente OAuth. Este botón abre una nueva pestaña para que le concedas a OpenFn un token de autorización con el que autenticar tus solicitudes.
nota

Después de iniciar sesión, tendrás que darle acceso a OpenFn haciendo clic en Allow en la ventana modal de permisos. Ten en cuenta que esto puede verse distinto según la aplicación, pero el objetivo es darle permiso a OpenFn para realizar ciertas acciones en la aplicación en tu nombre. El usuario que autentica los clientes OAuth debería tener los permisos necesarios en la aplicación.

Eliminar clientes y credenciales​

Para eliminar una credencial o un cliente, haz clic en Delete.

Editar cliente OAuth

Aparece un mensaje para que confirmes la acción.

En cuanto confirmes que quieres eliminar una credencial, recibirás un correo electrónico que te avisa de que la credencial quedó programada para eliminarse.

La fecha de eliminación depende de un período de gracia que configura el administrador de tu instancia. En la instancia alojada de OpenFn, la credencial se elimina de forma permanente al cabo de 7 días.

Más sobre la gestión de credenciales​

Consulta la documentación sobre cómo gestionar las credenciales de usuario para saber más sobre la gestión de credenciales de las aplicaciones que integras con OpenFn.

Ejemplo de configuración de un cliente OAuth​