Connettere i fornitori SaaS con gli snap REST abilitati a OAuth di SnapLogic

OAuth è uno standard aperto per l'autorizzazione. OAuth fornisce alle applicazioni client un "accesso delegato sicuro" alle risorse del server per conto del proprietario della risorsa. Specifica un processo che consente ai proprietari delle risorse di autorizzare l'accesso di terzi alle proprie risorse server senza condividere le proprie credenziali.

- Wikipedia

SnapLogic ha molti snap che utilizzano OAuth, tra cui Box, Eloqua, LinkedIn, Facebook e Google Analytics. Lo supportiamo anche in modo generico con i nostri Snap REST che possono essere usati per connettersi con fornitori per i quali non abbiamo ancora creato uno Snap, quindi è utile capire cos'è OAuth e come funziona.

Sebbene non sia necessario avere una conoscenza pregressa di OAuth per continuare a leggere, se si desidera comprendere lo standard OAuth a un livello più approfondito, oauth.net rappresenta un buon punto di partenza.

Facciamo un esempio di utilizzo comune: l'utente desidera utilizzare SnapLogic (l'applicazione) per connettersi a Google Drive (il server). In questo esempio, l'account Google è il proprietario, il server è la piattaforma Identify di Google e il client è lo snap REST di SnapLogic.

Utilizzeremo gli snap REST di SnapLogic per inviare e ricevere dati all'API Drive di Google, ma prima è necessario configurarli. Poiché dobbiamo accedere ai contenuti di Google, lo Snap deve dimostrare a Google di essere stato autorizzato dall'utente a interagire con il suo Google Drive, consentendo allo stesso tempo all'utente di revocare l'accesso direttamente dal suo account (Google fornisce una pagina di impostazioni "App collegate al tuo account" in cui gli utenti possono facilmente rivedere e rimuovere le app).

Il primo passo è accedere a Google Developers Console e creare un nuovo progetto:

Creare il progetto SnapLogic in Google Drive

Una volta creato il progetto, dobbiamo abilitare l'integrazione di Drive API:

Abilitare l'integrazione API di Drive

Quindi, personalizziamo la schermata di consenso OAuth fornendo il nome del prodotto e, facoltativamente, un logo:

Fornite il nome del prodotto e il logo alla schermata di consenso OAuth

Infine, configuriamo una nuova credenziale "OAuth 2.0 client ID" per identificare il nostro Snap a Google quando chiediamo l'autorizzazione all'utente. Utilizziamo "https://elastic.snaplogic.com/api/1/rest/admin/oauth2callback/rest" come URI di reindirizzamento autorizzato.

Creare l'ID cliente OAuth 2.0 per l'applicazione Web

Prendere nota dell'ID cliente e del segreto generati:

ID cliente e Segreto cliente

Ora possiamo creare una pipeline, aggiungere lo snap REST Get e configurarlo per richiedere l'autorizzazione all'utente per elencare i suoi file di Google Drive:

Creare una nuova pipeline con REST Get Snap, aggiungere un nuovo account OAuth2

Quando si crea l'account REST OAuth2, si utilizzano l'ID e il segreto del client forniti in precedenza e si configurano i campi rimanenti con i valori specificati nella documentazione di Google OAuth for Web Server Apps:

Configurare l'account OAuth2

La casella di controllo "Intestazione autenticata" indica a REST Snap di includere un'intestazione HTTP "Authorization" a ogni richiesta, il cui valore è il token di accesso presto acquisito come token Bearer. In alternativa, si può scegliere di non abilitare questa impostazione e di includere invece un "access_token" in ogni richiesta, il cui valore è l'espressione speciale "$account.access_token", che è stato creato dopo un'autorizzazione riuscita.

Il "redirect_uri"deve essere fornito in entrambe le configurazioni degli endpoint auth e token e il valore deve corrispondere all'URI di reindirizzamento autorizzato configurato per la credenziale ID client OAuth 2.0 creata in precedenza. Il parametro "response_typeIl parametro di autenticazione " deve avere un valore di "code" (definito dalla specifica OAuth), e il tag "scopeIl parametro "definisce le funzionalità di Google Drive richieste (si può modificare l'ambito in base a quello appropriato per il proprio caso d'uso).

La specifica di Google "access_type" e "approval_prompt" sono inclusi anche nella configurazione dell'endpoint auth. Un parametro "access_type" di "offline" chiede a Google di restituire un token di aggiornamento dopo la prima autorizzazione riuscita dell'utente. Ciò consente a Snap di aggiornare l'accesso a Google Drive dell'utente senza che quest'ultimo sia presente. L'opzione "approval_prompt" di "auto", indicherà a Google di fornire il token di aggiornamento solo nella prima occasione in cui l'utente ha dato il consenso offline. Un valore di "force" chiederà all'utente di acconsentire nuovamente all'accesso offline per acquisire un nuovo token di aggiornamento.

Facendo clic sul pulsante "Autorizza" si avvia la danza OAuth. A seconda che l'utente abbia già effettuato l'accesso al proprio account Google o sia collegato a più account Google, potrebbe essere necessario effettuare il login o scegliere quale account utilizzare. In ogni caso, se l'utente non ha già autorizzato l'applicazione, gli verrà richiesto di consentire a REST Snap di accedere ai dati di Google Drive:

Finestra di consenso all'autorizzazione Snap

Queste autorizzazioni corrispondono alla voce "scopes" definiti in precedenza. Si noterà che si tratta di un sito web google.com e l'indirizzo URL (https://accounts.google.com/o/oauth2/auth) inizia con lo stesso valore di quello inserito per il campo "OAuth2 Endpoint" di cui sopra. Snap ha aggiunto anche alcuni degli altri campi e alcuni parametri di sicurezza supplementari sono stati aggiunti dalla piattaforma SnapLogic.

Supponendo che l'utente dia il suo consenso facendo clic sul pulsante Consenti, le fasi successive avvengono dietro le quinte della piattaforma SnapLogic e servono principalmente a verificare che né SnapLogic né Google siano stati ingannati dalla controparte.

Google restituirà un codice di autorizzazione alla piattaforma SnapLogic, che invierà immediatamente una richiesta all'URL "OAuth2 Token" (anch'esso inserito in precedenza) con i parametri del codice di autorizzazione, dell'ID cliente, del segreto cliente e dell'URI di reindirizzamento. Se la richiesta viene ricevuta con successo, Google reindirizzerà nuovamente a SnapLogic, ma questa volta includerà un token di accesso, un timestamp di scadenza dell'accesso e un token di aggiornamento.

Se tutto va bene, all'utente verrà mostrata la vista SnapLogic Designer con il modulo REST OAuth Account nuovamente visibile, ma ora con i valori dei token di accesso e di aggiornamento:

Account OAuth2 con token di accesso e di aggiornamento acquisito

Il pulsante "Aggiorna" è ora visibile (grazie all'acquisizione di un token di aggiornamento), consentendo all'utente di acquisire manualmente un nuovo token di accesso quando quello esistente scade. L'utente può anche scegliere di attivare l'impostazione "Auto-refresh token" per consentire a SnapLogic Platform di aggiornare automaticamente qualsiasi token di accesso in scadenza, consentendo una vera modalità offline.

Aggiornare automaticamente i token di accesso attivando l'impostazione Aggiornamento automatico token.

Possiamo fare clic sul pulsante "Applica" per associare l'account OAuth2 autorizzato allo Snap REST. L'utente può ora iniziare a interrogare l'API di Google Drive per elencare i propri file di Google Drive.

Il Riferimento all'API di Google Drive dettaglia le capacità complete di ciò con cui la nostra integrazione può interagire. Ad esempio, potremmo elencare i file il cui titolo contiene "Clienti target". A tal fine, l'"URL del servizio" viene aggiornato in https://www.googleapis.com/drive/v2/filese aggiungiamo un "q" con il parametro di query parametro di ricerca valore "title contains 'Target Customers'":

REST Ottenere la ricerca e l'elenco dei file di GDrive

Salvare e chiudere la finestra di dialogo delle impostazioni per convalidare la pipeline e visualizzare in anteprima i risultati:

REST Ottenere l'anteprima dei risultati dell'API GDrive

et voilà, abbiamo completato con successo una OAuth 2.0 Authorization Dance e utilizzato il token di accesso acquisito per connetterci con Google Drive! Tutta la potenza dell'API di Google Drive è ora accessibile all'interno di SnapLogic.

Categoria: Prodotto
Argomenti: API REST SaaS

Stiamo assumendo!

Scoprite la vostra prossima grande opportunità di carriera.