- Stampa
Configurazione e dettagli tecnici di OAuth2.0
In questo articolo ci addentreremo nei dettagli tecnici di come Tulip implementa OAuth per l'autenticazione dei connettori. OAuth è potente, ma comporta una certa complessità. Questa guida intende rispondere a tutte le domande tecniche su ciò che Tulip supporta e su come è integrato.
Nota: Il flusso delle credenziali del client differisce in parte dal flusso del codice di autorizzazione. I passaggi 1 e 2 non sono rilevanti per il flusso delle credenziali del cliente.
Flusso del codice di autorizzazione di Tulip
The Authorize and Token endpoints must be accessible to the cloud for Tulip to execute authentication for connectors
Tulip avvia il processo di autenticazione quando si testa un connettore o si esegue una funzione del connettore all'interno di un'applicazione.
1. Reindirizzamento al server di autorizzazione:
L'applicazione Tulip reindirizza l'utente all'Authorization Server (AS) insieme a parametri specifici, tra cui response_type (impostato su "code" per Authorization Code Flow), client_id (assegnato nell'interfaccia utente del connettore), redirect_uri (predefinito da Tulip), scope e audience (impostati nell'interfaccia utente) e state (una stringa casuale per proteggersi da attacchi Cross-Site Request Forgery).
Esempio:GET /authorize?response_type=code&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=SCOPE&audience=AUDIENCE&state=STATE
2. L'utente concede il consenso:
Il server di autorizzazione autentica l'utente e gli presenta una schermata di consenso. L'utente può esaminare le autorizzazioni richieste e decidere se concedere o negare l'accesso all'applicazione di terze parti.
:::(Attenzione) (Nota) Nella configurazione di un connettore give, il controllo "Salta la richiesta di consenso dell'utente" consente di controllare l'attributo prompt
sulla richiesta di autorizzazione. Se questo controllo è disabilitato, verrà utilizzato il valore consenso
, mentre se è abilitato verrà utilizzato il valore login
.
Se sono necessari altri valori dell'attributo prompt, contattare support@tulip.co e abiliteremo ulteriori opzioni per questa proprietà.
:::
3. Codice di autorizzazione:
Se l'utente concede il consenso, il server di autorizzazione genera un codice di autorizzazione e reindirizza l'utente a Tulip insieme al codice di autorizzazione. Viene incluso anche il parametro state, che consente al client di verificare l'integrità della risposta. Questo parametro di stato deve corrispondere al parametro di stato passato al passo 1.
Esempio di reindirizzamento all'URI di reindirizzamento del cliente:
REDIRECT_URI?code=AUTHORIZATION_CODE&state=STATE
4. Richiesta del token:
Il client ha ora il codice di autorizzazione e lo usa per fare una richiesta sicura, da server a server, all'endpoint del token dell'Authorization Server. Il client include il grant_type (impostato su "authorization_code"), il client_id, il client_secret (un segreto noto solo al client e al server di autorizzazione), il redirect_uri e il codice di autorizzazione.
Esempio di richiesta di token: