Company-/Classroom-/Enterprise-Einstellungen – Webhooks
Nur verfügbar für
Administratoren können Webhooks verwenden, um die Integrität des Datenzugriffs zu prüfen und sicherzustellen, dass eine Benachrichtigung wirklich von Onshape stammt und während der Übertragung nicht manipuliert wurde. Bei der Aktivierung der Webhook-Basisauthentifizierung wird der Autorisierungs-Header in allen Webhook-Anfragen ausgefüllt.
Um zu Ihren Onshape-Einstellungen für Webhooks zu gelangen, klicken Sie oben rechts im Onshape-Fenster auf das Benutzersymbol für Ihr Konto (). Dies öffnet ein Dropdown-Menü. Klicken Sie auf „Company-/Classroom-/Enterprise-Einstellungen“.
Klicken Sie in der Liste links auf der Seite auf „Webhooks“.
Administratoren können Webhooks verwenden, um die Integrität des Datenzugriffs zu prüfen und sicherzustellen, dass eine Benachrichtigung wirklich von Onshape stammt und während der Übertragung nicht manipuliert wurde. Bei einer Aktivierung der Webhook-Basisauthentifizierung wird der Autorisierungs-Header in allen Webhook-Anfragen ausgefüllt. „Webhook-Signaturen“ konfiguriert Webhooks für die Verwendung von Signaturen zum Schutz vor Angriffen. Erzeugen Sie Primär- und Sekundärschlüssel, um die Schlüssel in Ihrer Produktionsanwendung abwechselnd zu verwenden. Dadurch können Administratoren veraltete Schlüssel verwerfen oder austauschen, ohne die aktuelle Verbindung zu unterbrechen. Wenn einer der Schlüssel übereinstimmt, wird er von Onshape als gültig akzeptiert. In Zwischenablage kopieren sendet den entsprechenden Schlüssel in die Zwischenablage. Rücksetzen entfernt den Schlüssel aus dem Bezugsfeld. Sobald die Primärschlüssel generiert sind, klicken Sie auf Änderungen speichern, um die Einträge zu übernehmen.
Administratoren sollten sicherstellen, dass Webhooks nur an sichere Endpunkte (https) gehen, da diese Daten nicht verschlüsselt sind.
Die Signaturwerte können vom Webhook-Ziel anhand der folgenden Struktur abgeglichen werden:
Signature = <Base64<HMAC256-digest<<timestamp header value>.<webhook payload>>>
Onshape-Webhooks enthalten die folgenden zusätzlichen Header:
-
X-onshape-webhook-timestamp: Zeitstempel, der angibt, wann der Webhook gesendet wurde
-
X-onshape-webhook-signature-primary: vorhanden, wenn der primäre Signaturschlüssel in den Company-Einstellungen angegeben ist
-
X-onshape-webhook-signature-secondary: vorhanden, wenn der sekundäre Signaturschlüssel in den Company-Einstellungen angegeben ist
JAVA
void matchSignatureHeader(String messageBody, String timestamp, String signatureKey, String signature) throws Exception {
String payload = timestamp + "." + messageBody;
String algorithm = "HmacSHA256";
Mac mac = Mac.getInstance(algorithm);
mac.init(new SecretKeySpec(signatureKey.getBytes(), algorithm));
byte[] payloadBytes = mac.doFinal(payload.getBytes());
Assert.assertArrayEquals(payloadBytes, Base64.decodeBase64(signature.getBytes()));
}
NODE.JS
const crypto = require('crypto');
……
var signatureKey; // The primary or secondary key
var message = timestampHeader + "." + rawPayload; // The timestamp header and the webhook payload
var hashValue = crypto.createHmac('SHA256', signatureKey).update(message).digest('base64');
if (hashValue === signatureHeader) { // signatureHeader is the primary or secondary signature header received with the webhook
// Signatures match
}