- Impresión
Configuración y detalles técnicos de OAuth2.0
En este artículo, profundizaremos en los detalles técnicos de cómo Tulip implementa OAuth para la autenticación de conectores. OAuth es poderoso, pero esto viene con cierta complejidad añadida. Esta guía pretende responder a cualquier pregunta técnica sobre lo que Tulip soporta, y cómo se integra.
Nota: El flujo de Credenciales de Cliente difiere un poco del flujo de código de autorización. Los pasos 1 y 2 no son relevantes para el flujo de Credenciales de Cliente.
Flujo de código de autorización de Tulip
The Authorize and Token endpoints must be accessible to the cloud for Tulip to execute authentication for connectors
Tulip inicia el proceso de autenticación cuando se prueba un Connector o se ejecuta una Connector Function dentro de una aplicación.
1. Redirección al Servidor de Autorización:
La aplicación Tulip redirige al usuario al Servidor de Autorización (AS) junto con parámetros específicos, incluyendo el response_type (establecido a "code" para el Flujo de Código de Autorización), client_id (asignado en la UI del conector), redirect_uri (predefinido por Tulip), scope y audience (establecidos en la UI), y state (una cadena aleatoria para proteger contra ataques de Cross-Site Request Forgery).
Ejemplo:GET /authorize?response_type=code&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=SCOPE&audience=AUDIENCE&state=STATE
2. El usuario otorga su consentimiento:
El Servidor de Autorización autentica al usuario y le presenta una pantalla de consentimiento. El usuario puede revisar los permisos solicitados y decidir si concede o deniega el acceso a la aplicación de terceros.
:::(Advertencia) (Nota) Dentro de la configuración de un conector give, el control "Skip user consent prompt" permite controlar el atributo prompt
en la solicitud de autorización. Con este control desactivado, se utilizará el valor consentimiento
, cuando esté activado se utilizará inicio de sesión
.
Si se requieren valores adicionales del atributo prompt, contacte con support@tulip.co, y habilitaremos más opciones para esta propiedad.
:::
3. Código de Autorización:
Si el usuario da su consentimiento, el Servidor de Autorización genera un código de autorización y redirige al usuario de vuelta a Tulip junto con el código de autorización. También se incluye el parámetro de estado, que permite al cliente verificar la integridad de la respuesta. Este parámetro de estado debe coincidir con el parámetro de estado pasado en el Paso 1.
Ejemplo de redirección al URI de redirección del cliente:
REDIRECT_URI?code=AUTHORIZATION_CODE&state=STATE
4. 4. Solicitud de token:
El cliente dispone ahora del código de autorización y lo utiliza para realizar una solicitud segura de servidor a servidor al punto final de token del servidor de autorización. El cliente incluye el grant_type (definido como "authorization_code"), client_id, client_secret (un secreto que sólo conocen el cliente y el servidor de autorización), redirect_uri y el código de autorización.
Ejemplo de solicitud de token: