HTTP > Effectuer une requête JWT module

Le module Adobe Workfront Fusion HTTP > Effectuer une requête JWT envoie une requête HTTP(S) à une URL et l’autorise avec un jeton JSON Web Token (JWT) que le module signe pour vous à chaque appel. La réponse est ensuite traitée de la même manière que dans le module standard HTTP > Effectuer une requête.

Ce module se comporte comme le module standard Effectuer une requête, avec une différence principale : il signe automatiquement un jeton JWT à partir des revendications que vous fournissez et l’ajoute à la requête, par défaut comme Authorization: Bearer <token>.

Utilisez ce module pour appeler toute API qui attend un JWT signé pour l’authentification, comme les services qui nécessitent un jeton porteur de courte durée signé avec un secret partagé (HMAC) ou une clé privée (RSA/ECDSA), sans créer le jeton lors d’une étape distincte.

Si l’API utilise OAuth 2.0, authentification de base, une clé API ou un certificat client, utilisez plutôt le module HTTP dédié correspondant.

NOTE
Si vous vous connectez à un produit Adobe qui n’a pas encore de connecteur dédié, il est recommandé d’utiliser le module Adobe Authenticator.
Pour plus d’informations, voir Module Adobe Authenticator.

Conditions d’accès

Développez pour afficher les exigences d’accès aux fonctionnalités de cet article.
table 0-row-2 1-row-2 2-row-2 3-row-2 layout-auto html-authored no-header
Package Adobe Workfront

Tout package de workflow Adobe Workfront et tout package d’automatisation et d’intégration Adobe Workfront

Workfront Ultimate

Packages Workfront Prime et Select, avec l’achat supplémentaire de Workfront Fusion.

Licences Adobe Workfront

Standard

Travail ou supérieur

Licence Adobe Workfront Fusion

Basé sur les opérations : disponible pour les organisations disposant de licences basées sur les opérations

Basé sur un connecteur (hérité) : Workfront Fusion pour l’automatisation et l’intégration du travail

Produit Si votre organisation dispose d’un package Workfront Select ou Prime qui n’inclut pas l’automatisation et l’intégration de Workfront, elle doit acquérir Adobe Workfront Fusion.

Pour plus d’informations sur le contenu de ce tableau, consultez Conditions d’accès requises dans la documentation.

Pour plus d’informations sur les licences Adobe Workfront Fusion, consultez Licences Adobe Workfront Fusion.

Créer une connexion JWT

Le module nécessite une connexion JWT. La connexion stocke le matériel de signature afin que le secret ou la clé privée n’ait pas à apparaître dans le scénario.

Créer une connexion JWT dans Fusion

  1. Ajoutez le module HTTP > Effectuer une requête JWT à votre scénario.

  2. Cliquez sur Ajouter à côté du champ Connexion.

  3. Configurez les champs de connexion :

    table 0-row-2 1-row-2 2-row-2 layout-auto html-authored no-header
    Nom de la connexion Saisissez un nom pour la connexion.
    Algorithme

    Sélectionnez l’algorithme de signature de la connexion.

    • HS256
    • HS384
    • HS512
    • RS256
    • RS384
    • RS512
    • PS256
    • PS384
    • PS512
    • ES256
    • ES384
    • ES512
    Secret

    Saisissez la clé de signature.

    • Pour les algorithmes HS*, utilisez la chaîne secrète partagée .
    • Pour les algorithmes RS*, PS* et ES*, utilisez la clé privée codée en PEM.
  4. Cliquez sur Continuer pour créer la connexion et revenir au module.

IMPORTANT
Une connexion JWT se signe avec un seul algorithme. Si votre scénario nécessite plusieurs algorithmes de signature, créez une connexion distincte pour chaque algorithme. Cela correspond au comportement existant de l’application JWT autonome.

HTTP > Effectuer une requête JWT le module et ses champs

Lorsque vous configurez le module HTTP > Effectuer une requête JWT, Adobe Workfront Fusion affiche les champs répertoriés ci-dessous dans l’ordre dans lequel ils apparaissent dans l’interface utilisateur du module. Un titre en gras dans un module indique un champ obligatoire. Les champs marqués comme avancés sont masqués, sauf si vous sélectionnez Afficher les paramètres avancés.

Connection
Sélectionnez une connexion JWT existante ou créez-en une.
URL
URL cible de la requête.
Method
Méthode HTTP telle que GET, POST, PUT, PATCH ou DELETE.
Headers
En-têtes de requête personnalisés au format clé/valeur.
Query String
Paramètres de chaîne de requête au format clé/valeur.
Body type
Méthode d’encodage du corps de la requête. Les options incluent Raw, application/x-www-form-urlencoded et multipart/form-data.
Parse response
Lorsqu’elle est activée, Fusion analyse le corps de la réponse en fonction du type de contenu de la réponse.
JWT Payload (revendications)
Paires clé/valeur incluses comme revendications dans la payload JWT. Les revendications réservées exp, iat et nbf doivent être un NumericDate — un nombre de secondes depuis l'époque Unix. Les valeurs de revendication conservent leur type JSON, de sorte que les nombres restent des nombres et les booléens restent des booléens.
Timeout (avancé)
Spécifiez le délai d’expiration de la requête en secondes (1 à 300). La valeur par défaut est de 40 secondes.
Retry Count (avancé)
Spécifiez le nombre de fois où la requête doit être réessayée si la requête échoue en raison d’une erreur réessayable.
Additional Retry Status Codes (avancé)
Spécifiez d’autres codes d’état HTTP qui doivent être traités comme pouvant être réessayés.
Share cookies with other HTTP modules (advanced)
Activez cette option pour partager les cookies du serveur avec tous les modules HTTP de votre scénario.
Self-signed certificate (avancé)
Téléchargez votre certificat si vous souhaitez utiliser TLS à l’aide de votre certificat autosigné.
Rejette les connexions qui utilisent des certificats non vérifiés (auto-signés) (avancé)
Activez cette option pour rejeter les connexions qui utilisent des certificats TLS non vérifiés.
Suivre la redirection (avancé)
Activez cette option pour suivre les redirections d’URL avec les réponses 3xx.
Désactive la sérialisation de plusieurs clés de chaîne de requête identiques à des tableaux (avancé)
Par défaut, Workfront Fusion gère plusieurs valeurs pour la même clé de paramètre de chaîne de requête d’URL que les tableaux. Par exemple, www.test.com?foo=bar&foo=baz sera converti en www.test.com?foo[0]=bar&foo[1]=baz. Activez cette option pour désactiver cette fonction.
Demander du contenu compressé (avancé)
Activez cette option pour demander une version compressée du site web. Ajoute un en-tête Accept-Encoding pour demander un contenu compressé.
Use Mutual TLS (avancé)
Activez cette option pour utiliser le protocole TLS mutuel dans la requête HTTP.
Sign Options (avancé)

Pour chaque option de signe que vous souhaitez ajouter à la requête, cliquez sur Ajouter un élément et saisissez le nom et la valeur du paramètre.

Options supplémentaires transmises au signataire JWT, telles que expiresIn, issuer, audience, subject et keyid. Les valeurs de durée telles que expiresIn sont interprétées par la bibliothèque jsonwebtoken. Un nombre brut est traité comme une milliseconde. Par conséquent, utilisez une chaîne unitaire telle que "1h" ou "3600s" pour être explicite. L’algorithme est issu de la connexion et ne peut pas être remplacé ici.

Header Name (avancé)
Saisissez ou mappez le nom de l’en-tête de requête qui reçoit le jeton JWT signé. Par défaut : Authorization. Le nom de l’en-tête ne doit pas contenir de point (.), car les noms en pointillés sont rejetés et ne peuvent pas être masqués dans les journaux de requêtes.
Token Type (avancé)
Saisissez ou mappez le schéma d’authentification placé avant le jeton, par exemple Bearer. Laissez ce champ vide pour envoyer le jeton brut sans préfixe.

Création du jeton

  1. Le module collecte les revendications dans le champ ​ Payload (revendications) du JWT .
  2. Créances réservées telles que exp``iat, et nbf sont converties en valeurs NumericDate.
  3. Le module applique les options de signature et signe le jeton à l’aide de l’algorithme de la connexion.
  4. Le jeton signé est placé dans l’en-tête de la requête défini par Nom de l’en-tête.
  5. Si le paramètre Type de jeton est défini, le module ajoute le préfixe avant le jeton. Par exemple, Bearer eyJ….
  6. La requête est envoyée et la réponse est traitée de la même manière que le module standard HTTP > Effectuer une requête.

Le jeton signé est automatiquement masqué dans les journaux de débogage et d’erreur afin de ne jamais être exposé.

Exemple

Connexion

  • Algorithme : HS256
  • Secret : my-shared-secret

Paramètres du module

  • URL : https://api.example.com/v1/orders

  • Méthode : GET

  • Payload du JWT (revendications) :

    • sub = service-account-42
    • iss = make-integration
  • Options de signature :

    • expiresIn = 1h
  • Nom de l’en-tête : Authorization

  • Type de jeton : Bearer

Résultat

Le module envoie la requête avec un en-tête similaire à :

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

FAQ / pièges

Pourquoi mon jeton a-t-il expiré si rapidement ?

Vous avez probablement saisi un nombre nu pour des expiresIn telles que 3600. La bibliothèque jsonwebtoken interprète les nombres simples en millisecondes. Utilisez plutôt une chaîne unitaire telle que "1h" ou "3600s".

Quand le jeton est-il créé ?

Le module signe un nouveau JWT chaque fois qu’il s’exécute, et non lorsque vous créez la connexion. La connexion stocke uniquement le matériel de signature et l’algorithme, de sorte que les revendications telles que iat et exp reflètent le moment de l’exécution de ce module.

Si la requête fait l’objet de nouvelles tentatives au cours de la même exécution de module, Fusion réutilise le même jeton signé pour ces nouvelles tentatives au lieu de signer un nouveau jeton pour chaque tentative. Pour cette raison, une valeur de expiresIn très courte peut expirer avant qu’une nouvelle tentative ne se produise et entraîner une nouvelle tentative d’envoi d’un jeton ayant déjà expiré. Pour éviter cela, utilisez une chaîne d’unité claire telle que "1h" ou "3600s" et évitez les durées de vie des jetons trop courtes.

Puis-je modifier l’algorithme par demande ?

Non. L’algorithme est fixé par la connexion. Si vous avez besoin d’un autre algorithme, créez une autre connexion JWT.

Puis-je envoyer le jeton dans un en-tête personnalisé ?

Oui. Définissez le champ ​ Nom de l’en-tête ​ sur un nom personnalisé, mais il ne peut pas contenir de point (.).

Puis-je envoyer le jeton brut sans Bearer ?

Oui. Laissez le champ Type de jeton vide.

Le jeton est-il visible dans les journaux ?

Non. Le jeton signé est automatiquement masqué dans les journaux de débogage et d’erreur.

NOTE
Remarque technique : la signature utilise la bibliothèque jsonwebtoken et reflète le comportement de signature de l’application JWT autonome. De ce fait, les mêmes entrées produisent le même jeton que l’application JWT autonome.
recommendation-more-help
workfront-fusion-help-workfront-fusion