Authentification basée sur un token REST-API 31 mars 2026 13:24 Mise à jour L'authentification basée sur un token est l'une des 4 méthodes disponibles dans le contexte du REST-API. En plus du token, vous pouvez utiliser l'authentification basique, OAuth2.0 et JSON Web Token. Pour un aperçu, veuillez consulter Authentification REST-API. L'authentification basée sur un token est une méthode propriétaire développée par BOC Group qui permet à l'utilisateur d'accéder à l'API REST en utilisant un token au lieu d'un nom d'utilisateur et d'un mot de passe. Ce processus inclut l'envoi d'un hash de sécurité généré à partir de l'identifiant public du client, de la clé secrète du client, d'un GUID, d'un horodatage de la requête et des paramètres associés à la requête. Cette approche aide à prévenir les accès non autorisés à l'API et atténue les problèmes liés aux transmissions répétées et aux abus de requêtes.Cette méthode d'authentification est disponible uniquement pour les applications clientes JavaCe guide démontrera une authentification simple et un appel REST-API (obtenir un modèle) entre un produit BOC Management Office et l'outil REST-API tiers exemplaire Bruno, mais peut être facilement adapté à vos besoins spécifiques. L'exemple fourni ne fonctionnera pas pour toutes les requêtes et doit seulement servir de point de départ pour un usage ultérieur. PrérequisVeuillez vous assurer que l'authentification basée sur un token est correctement configurée dans votre produit BOC Management Office : ADONIS / ADOGRC 16.0 et supérieur Paramètres REST-API | ADONIS ADONIS / ADOGRC 15.0 et inférieur Paramètres REST-API | ADONIS ADOIT 17.0 et supérieur Paramètres REST-API | ADOIT ADOIT 17.0 et inférieur Paramètres REST-API | ADOIT Dans Bruno, définissez vos variables SECRET et IDENTIFIER en tant que variables d'environnement. ExempleAPI de lecture du dépôt : GET {URL}/rest/4.0/repos/{repo_id}/models/{model_id}Script pré-requête :const CryptoJS = require("crypto-js") let uuid = require("uuid"); // Récupérer le SECRET et l'IDENTIFIER des variables Postman let REST_SECRET = bru.getEnvVar("SECRET"); let REST_IDENTIFIER = bru.getEnvVar("IDENTIFIER"); // Définir les en-têtes statiques pour la requête let aHeaders = { "x-axw-rest-identifier": REST_IDENTIFIER, "x-axw-rest-guid": uuid.v4(), "x-axw-rest-timestamp": Date.now().toString(), }; // Mettre les clés et valeurs des en-têtes et de l'objet query dans un tableau et ajouter le SECRET let aRESTTokenCollection = [ ...Object.keys(aHeaders), ...Object.values(aHeaders), REST_SECRET, ]; // Mettre les paramètres de la requête dans le token req.getUrl((queryParam) => aRESTTokenCollection.push( queryParam.key, decodeURIComponent(queryParam.value) ) ); // Trier selon la locale "en-US" aRESTTokenCollection.sort((a, b) => a.localeCompare(b, "en-US")); // Créer la signature HMAC-SHA512 à partir de la collection convertie en chaîne let aRESTToken = CryptoJS.HmacSHA512( aRESTTokenCollection.join(""), REST_SECRET ); // Encoder la signature et l'ajouter comme token aux en-têtes aHeaders["x-axw-rest-token"] = aRESTToken.toString(CryptoJS.enc.Base64); // si c'est une méthode post/patch ajouter l'en-tête application/json if (req.getMethod == "POST" || req.getMethod == "PATCH") { aHeaders["Content-Type"] = "application/json"; } //si c'est une méthode put ajouter l'en-tête */* if (req.getMethod == "PUT") { aHeaders["Content-Type"] = "*/*"; } // Ajouter les en-têtes à la requête req.setHeaders(aHeaders);Informations complémentairesDocumentation REST-API : Bienvenue sur le portail développeur BOC | Portail développeur BOC Articles associés Dépannage de la connexion REST-API Activation de REST lors de l'utilisation de SSO avec IDM Comment corriger les codes d'état REST 401 et 500 ? Guides de création de base de données Comment envoyer une demande de support ?