Introduction
Lorsque vous utilisez une chaîne qui effectue plusieurs appels API avec un jeton d’authentification qui expire, comme ceux utilisés par les API de Workiva, il existe un risque que le jeton expire avant que tous les appels ne soient lancés. Dans ce cas, tous les appels d’API restants échoueront. La réauthentification avant chaque appel d’API pourrait éviter ce problème, mais elle ajouterait une surcharge supplémentaire à la chaîne.
Ce guide explique comment mettre en œuvre le modèle Refresh OAuth Tokens Dynamically. Le modèle est destiné aux chaînes qui utilisent le connecteur HTTP pour effectuer des appels d’API lorsque l’API nécessite une authentification via un jeton qui a une date et une heure d’expiration. Bien qu’elle soit conçue pour l’API Workiva, elle peut être adaptée à d’autres API qui utilisent des méthodes d’authentification similaires.
La chaîne comprend un mécanisme permettant de rafraîchir automatiquement le jeton lorsqu’il est sur le point d’expirer. Elle soustrait 2 minutes (cette valeur peut être ajustée) du délai d’expiration du jeton existant en tant que tampon et le compare à l’heure actuelle. Si l’heure actuelle est postérieure à l’heure d’expiration ajustée, la chaîne déclenche le processus de réauthentification pour générer un nouveau jeton, qui est ensuite édité par la chaîne. Si le jeton est toujours valide, la chaîne ignore la réauthentification et émet simplement le jeton existant.
Note : Si aucun jeton n'est transmis à cette chaîne, elle passera automatiquement par le processus d'authentification et en générera un, ce qui signifie que cette chaîne peut également être utilisée pour notre (première) demande d'authentification initiale ainsi que pour toutes les suivantes.
Conditions préalables
Chaînes
Les connecteurs suivants doivent être activés et configurés dans votre espace de travail :
Le modèle contient les variables d’espace de travail suivantes conçues pour être utilisées avec l’API Workiva, modifiez-les et configurez-les comme il convient :
- wsv_platform (l’endroit où se trouve votre espace de travail, pour les États-Unis utilisez « app », pour l’UE/EMEA utilisez « eu », pour l’APAC utilisez « apac »)
- wsv_Client ID (l’ID client de votre subvention API)
- wsv_Client Secret (le secret de votre API)
Déployer la chaîne
Le modèle de chaîne "Refresh OAuth Tokens Dynamically" se trouve dans la section Workiva Chains de l'écran Templates.
Voici comment le trouver :
- Dans Chain Builder, allez dans l'onglet Templates
- Sélectionnez Workiva Chains dans le menu du haut.
- Recherchez Refresh OAuth Tokens Dynamically Chain Template en haut à droite et ouvrez le modèle.
- Après avoir localisé le modèle, cliquez sur New Chain pour le déployer dans votre espace de travail.
- Configurez le modèle pour votre espace de travail et votre API.
- N'oubliez pas de publier la chaîne une fois qu'elle est configurée et si vous souhaitez l'utiliser telle quelle sans aucune modification.
Note : Pour des instructions détaillées sur la création d'une chaîne à partir d'un modèle, voir l'article Créer et gérer des chaînes.
Configurer le modèle
Ce modèle peut être ajouté à une chaîne existante à l'aide de la commande Run Chain et fonctionnera sans aucune modification supplémentaire pour l'API Workiva. Voir ici les instructions sur l'utilisation de la commande d'événement "Exécuter la chaîne".
Un exemple d'utilisation de cette chaîne serait au sein d'un groupe de commande existant qui utilise l'itération. Cette chaîne pourrait être exécutée à partir d’une commande d’événement « Run Chain » avec sa propre branche dans le groupe, définissant les variables de chaîne dynamique avec les sorties de chaîne de cette chaîne.
Dans la commande « Run Chain », vous pouvez utiliser votre variable de chaîne dynamique pour vous assurer que c’est toujours le dernier jeton qui est vérifié.
Vous devez ensuite mettre à jour cette même variable de chaîne dynamique avec le résultat de la commande « Run Chain ».
Vous pouvez ensuite utiliser ces mêmes variables de chaîne dynamique dans toutes les commandes de requête HTTP que vous effectuez.
Mettre à jour la durée de la mémoire tampon
Par défaut, ce modèle ajoute une période tampon de 2 minutes au délai d’expiration du jeton existant afin d’éviter tout problème de synchronisation. Vous pouvez modifier cette variable dans la commande conditionnelle « Vérifier si la date d’expiration est proche ».
Une fois cette commande éditée, double-cliquez sur la première variable « Advanced Query - convert epoch timestamp - timestamp » dans les conditions.
Vous pouvez ensuite ajuster la valeur du montant comme vous le souhaitez.