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
Configurer les variables d’environnement dans Postman :n Créez les variables d’environnement suivantes dans Postman. Les variables
nonce,timestampetsignaturedoivent ê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)ntimestamp(laisser vide)nsignature(laisser vide)nn
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);nnn
Créez l’en-tête SOAP :n Intégrez l’élément
tokenPassportsuivant 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’attributalgorithm="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>nSupport expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Services Web et intégrations
