Introduzione
Quando si utilizza una catena che effettua più chiamate API con un token di autenticazione in scadenza, come quelle utilizzate dalle API di Workiva, c'è il rischio che il token scada prima che tutte le chiamate vengano avviate. In tal caso, le chiamate API rimanenti non andranno a buon fine. La ri-autenticazione prima di ogni chiamata API potrebbe evitare questo problema, ma aggiungerebbe ulteriore overhead alla catena.
Questa guida spiega come implementare il modello Refresh OAuth Tokens Dynamically. Il modello è destinato alle catene che utilizzano il connettore HTTP per effettuare chiamate API in cui l'API richiede l'autenticazione tramite un token con data e ora di scadenza. Sebbene sia stata creata per l'API di Workiva, può essere adattata ad altre API che utilizzano metodi di autenticazione simili.
La catena include un meccanismo per aggiornare automaticamente il token quando è prossimo alla scadenza. Sottrae 2 minuti (questo valore può essere modificato) dal tempo di scadenza del token esistente come buffer e lo confronta con l'ora corrente. Se l'ora corrente è successiva all'orario di scadenza modificato, la catena attiva il processo di ri-autenticazione per generare un nuovo token, che viene poi emesso dalla catena. Se il token è ancora valido, la catena salta la ri-autenticazione e si limita a generare il token esistente.
Nota: Se non viene passato alcun token a questa catena, questa verrà automaticamente sottoposta al processo di autenticazione e ne genererà uno, il che significa che questa catena può essere utilizzata anche per la nostra (prima) richiesta di autenticazione iniziale e per quelle successive.
Prerequisiti
Catene
I seguenti connettori devono essere abilitati e configurati nel tuo workspace:
Il modello contiene le seguenti variabili Workspace progettate per essere utilizzate con l'API di Workiva:
- wsv_platform (l'app in cui si trova il tuo spazio di lavoro, per gli Stati Uniti usa "app", per l'UE/EMEA usa "eu", per l'APAC usa "apac")
- wsv_Client ID (l'ID client della tua concessione API)
- wsv_Client Secret (il segreto della tua concessione API)
Distribuire la catena
Il modello di catena "Refresh OAuth Tokens Dynamically" si trova nella sezione Catene di Workiva della schermata Modelli.
Ecco come trovarlo:
- In Builder catena, vai alla scheda Template
- Seleziona Catene di Workiva dal menu in alto
- Cerca Refresh OAuth Tokens Dynamically Chain Template in alto a destra e apri il modello.
- Dopo aver individuato il modello, clicca su Nuova catena per distribuirlo nel tuo spazio di lavoro.
- Configura il modello per il tuo spazio di lavoro e la tua API.
- Ricordati di pubblicare la catena una volta configurata e se desideri utilizzarla così com'è senza doverla modificare.
Nota: Per istruzioni dettagliate sulla creazione di una catena da un modello, consulta l'articolo Creare e gestire catene.
Configura il template
Questo modello può essere aggiunto a una catena esistente utilizzando il comando Esegui catena e funzionerà senza ulteriori modifiche per l'API di Workiva. Consulta qui le istruzioni su come utilizzare il comando "Esegui catena".
Un esempio di utilizzo di questa catena potrebbe essere all'interno di un gruppo di comandi esistente che utilizza l'iterazione. Questa catena potrebbe essere eseguita da un comando di evento "Esegui catena" con il suo ramo nel gruppo, impostando le variabili dinamiche di catena con i risultati di questa catena.
All'interno del comando "Esegui catena" puoi utilizzare la tua variabile di catena dinamica per assicurarti che sia sempre l'ultimo token a essere controllato.
Devi quindi aggiornare la stessa variabile di catena dinamica con l'output del comando "Esegui catena".
Potrai quindi utilizzare le stesse variabili della catena dinamica in tutti i comandi di richiesta HTTP che effettuerai.
Aggiorna il tempo di buffer
Per impostazione predefinita, questo modello aggiunge 2 minuti di buffer alla scadenza del token esistente per evitare problemi di tempistica. Puoi modificarla nel comando condizionale "Controlla se la data di scadenza è vicina".
Una volta modificato questo comando, fai doppio clic sulla prima variabile delle condizioni "Query avanzata - convertire timestamp epoch - timestamp".
Puoi quindi regolare il valore della quantità come preferisci.