ANS-0823 · SERVICES WEB ET INTéGRATIONS

Comment configurer l’authentification par jeton (TBA) pour les services Web SOAP NetSuite dans Postman

Apprenez à configurer un environnement Postman avec un script de pré-requête et un en-tête SOAP pour effectuer des appels sécurisés à l'API NetSuite SuiteTalk à l'aide de HMAC-SHA256.

Solution courte

Pour utiliser l’authentification par jeton (TBA) avec les services Web NetSuite SuiteTalk dans Postman, configurez un script de pré-requête afin de générer une signature dynamique, un nonce et un horodatage. Enregistrez les identifiants d’authentification sous forme de variables d’environnement. Le script utilisera HMAC-SHA256 pour signer la requête, garantissant ainsi une communication sécurisée. Intégrez ces valeurs générées dynamiquement dans l’en-tête SOAP pour que les appels API aboutissent.

Scénario

Les organisations qui s'intègrent à NetSuite via les services Web SuiteTalk ont souvent besoin de méthodes d'authentification sécurisées. Lors de l’utilisation de Postman pour tester ou développer ces intégrations, l’un des défis courants consiste à mettre en œuvre correctement l’authentification par jeton (TBA) afin de générer les en-têtes de sécurité nécessaires pour chaque requête. Cela implique la création dynamique d’une signature, d’un nonce et d’un horodatage pour garantir l’intégrité et l’authenticité des appels API.

Solution

La mise en œuvre de l’authentification par jeton (TBA) pour les services Web NetSuite SuiteTalk dans Postman implique la configuration de variables d’environnement et d’un script de pré-requête afin de générer dynamiquement les paramètres d’authentification.

Remarque importante : bien que les intégrations existantes utilisant l’authentification par jeton (TBA) continuent de fonctionner, NetSuite déprécie la TBA pour les nouvelles intégrations à compter de la version 2027.1, et recommande à la place OAuth 2.0 pour les nouvelles intégrations de services Web SOAP et REST. Ce guide présente la méthode TBA pour les configurations existantes ou les exigences héritées spécifiques.nn

  1. Configurer les variables d’environnement dans Postman :n Créez les variables d’environnement suivantes dans Postman. Les variables nonce, timestamp et signature doivent être laissées vides, car leurs valeurs seront générées dynamiquement par le script de pré-requête.nn

    • GA_KEEP_0004n
    • GA_KEEP_0005n
    • GA_KEEP_0006n
    • GA_KEEP_0007n
    • GA_KEEP_0008n
    • nonce (laisser vide)n
    • timestamp (laisser vide)n
    • signature (laisser vide)nn
  2. Mettez en œuvre le script de pré-requête :n Ajoutez le code JavaScript suivant dans l’onglet « Pre-request Script » de votre requête Postman. Ce script génère un nonce aléatoire, un horodatage et calcule la signature HMAC-SHA256 à l’aide des identifiants fournis et des valeurs dynamiques.nn

javascriptn    function generateRandomString(length) {n        var text = "";n        var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";n        for(var i = 0; i < length; i++) {n            text += possible.charAt(Math.floor(Math.random() * possible.length));n        }n        return text;n    }nn    var nonce = generateRandomString(16);n    var timestamp = Math.floor(Date.now()/1000);n    var accountId = postman.getEnvironmentVariable("accountId");n    var consumerKey = postman.getEnvironmentVariable("consumerKey");n    var token = postman.getEnvironmentVariable("token");n    var consumerSecret = postman.getEnvironmentVariable("consumerSecret");n    var tokenSecret = postman.getEnvironmentVariable("tokenSecret");nn    var baseString = accountId + '&';n    baseString += consumerKey + '&';n    baseString += token + '&';n    baseString += nonce + '&';n    baseString += timestamp;nn    var key = consumerSecret + '&' + tokenSecret;n    var signature = CryptoJS.HmacSHA256(baseString, key).toString(CryptoJS.enc.Base64);nn    postman.setEnvironmentVariable("signature", signature);n    postman.setEnvironmentVariable("nonce", nonce);n    postman.setEnvironmentVariable("timestamp", timestamp);n

nn

  1. Créez l’en-tête SOAP :n Intégrez l’élément tokenPassport suivant dans la section ` du corps de votre requête SOAP. Les espaces réservés {{variableName}} seront automatiquement renseignés par Postman à l’aide des variables d’environnement définies par le script de pré-requête. Veuillez noter l’attribut algorithm="HMAC-SHA256"`.nn

xmln    <soapenv:Header>n    <tokenPassport xmlns="urn:messages_2017_1.platform.webservices.netsuite.com">n    <account>{{accountId}}</account>n    <consumerKey>{{consumerKey}}</consumerKey>n    <token>{{token}}</token>n    <nonce>{{nonce}}</nonce>n    <timestamp>{{timestamp}}</timestamp>n    <signature algorithm="HMAC-SHA256">{{signature}}</signature>n    </tokenPassport>n    </soapenv:Header>n

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Services Web et intégrations

Parler à un consultant