REST-API Token Based Authentifizierung 24. Oktober 2024 11:58 Aktualisiert Token-basierte Authentifizierung ist eine der 4 Möglichkeiten, die im Zusammenhang mit REST-API verwendet werden können. Neben Token können Sie auch Basic Auth, OAuth2.0 und JSON Web Token verwenden. Einen Überblick finden Sie unter REST-API-Authentifizierung. Die Token-basierte Authentifizierung ist eine von der BOC Group entwickelte Methode, die den Benutzerzugriff auf die REST-API unter Verwendung eines Tokens anstelle eines Benutzernamens und Passworts ermöglicht. Dieser Prozess umfasst das Senden eines Sicherheitshashes, der aus dem öffentlichen Identifikator des Kunden, dem geheimen Schlüssel des Kunden, einer GUID, einem Zeitstempel der Anfrage und den mit der Anfrage verbundenen Parametern generiert wird. Dieser Ansatz hilft, den unbefugten Zugriff auf die API zu verhindern und Probleme im Zusammenhang mit wiederholten Übertragungen und dem Missbrauch von Anfragen zu entschärfen. Diese Authentifizierungsmethode ist nur für Java-Client-Anwendungen verfügbar. Dieser Leitfaden demonstriert einen einfachen Authentifizierungs- und REST-API-Aufruf (get model) zwischen einem BOC Management Office-Produkt und dem beispielhaften REST-API-Tool Bruno eines Drittanbieters, kann aber leicht an Ihre spezifischen Anforderungen angepasst werden. Das bereitgestellte Beispiel wird nicht für jede Anfrage funktionieren und soll nur einen Ausgangspunkt für die weitere Verwendung bieten. Voraussetzungen Bitte stellen Sie sicher, dass die tokenbasierte Authentifizierung in Ihrem BOC Management Office Produkt korrekt konfiguriert ist: ADONIS / ADOGRC 16.0 und höher REST-API Settings | ADONIS ADONIS / ADOGRC 15.0 und niedriger REST-API Settings | ADONIS ADOIT 17.0 und höher REST-API Settings | ADOIT ADOIT 17.0 und niedriger REST-API Settings | ADOIT Definieren Sie in Bruno Ihre Variablen SECRET und IDENTIFIER als Umgebungsvariablen. Beispiel Repository lese API: GET {URL}/rest/4.0/repos/{repo_id}/models/{model_id} Pre Request Script: const CryptoJS = require("crypto-js")let uuid = require("uuid");// Fetch the SECRET and IDENTIFIER from Postman variableslet REST_SECRET = bru.getEnvVar("SECRET");let REST_IDENTIFIER = bru.getEnvVar("IDENTIFIER");// Define static headers for the requestlet aHeaders = {"x-axw-rest-identifier": REST_IDENTIFIER,"x-axw-rest-guid": uuid.v4(),"x-axw-rest-timestamp": Date.now().toString(),};// Put the header and query object keys and values in an array and add the SECRETlet aRESTTokenCollection = [...Object.keys(aHeaders),...Object.values(aHeaders),REST_SECRET,];// Put query parameters into the tokenreq.getUrl((queryParam) =>aRESTTokenCollection.push(queryParam.key,decodeURIComponent(queryParam.value)));// Sort by locale "en-US"aRESTTokenCollection.sort((a, b) => a.localeCompare(b, "en-US"));// Create HMAC-SHA512 signature from the stringified collectionlet aRESTToken = CryptoJS.HmacSHA512(aRESTTokenCollection.join(""),REST_SECRET);// Encode the signature and add it as token to the headersaHeaders["x-axw-rest-token"] = aRESTToken.toString(CryptoJS.enc.Base64);// if it's a post/patch method add the application/json headerif (req.getMethod == "POST" || req.getMethod == "PATCH") {aHeaders["Content-Type"] = "application/json";}//if it's a put method add the */* headerif (req.getMethod == "PUT") {aHeaders["Content-Type"] = "*/*";}// Add the headers to the request req.setHeaders(aHeaders); Further Information REST-API Documentation: Welcome to the BOC Developer Portal | BOC Developer Portal Verwandte Beiträge REST-API in einem SSO IDM Szenario Erstellung von Datenbanken Wie behebe ich die REST-Statuscodes 401 und 500? Wie erstelle ich eine benutzerdefinierte Excel Import Vorlage? Wie kann ich eine Supportanfrage stellen?