Paramètres Company/Classe/Enterprise - Webhooks
Disponible uniquement pour
Les administrateurs peuvent utiliser des webhooks pour vérifier l'intégrité de l'accès aux données, en s'assurant qu'une notification a bien été envoyée par Onshape et qu'elle n'a pas été falsifiée pendant le transport. L'activation de l'authentification de base du webhook remplit l'en-tête d'autorisation dans toutes les demandes du webhook.
Pour accéder aux paramètres de vos Webhooks dans Onshape, cliquez sur l'icône utilisateur de votre compte () dans le coin supérieur droit de votre fenêtre Onshape. Cela ouvre un menu déroulant. Cliquez sur Paramètres de l'entreprise/de la classe ou de l'entreprise.
Cliquez sur Webhooks dans la liste sur le côté gauche de la page :
Les administrateurs peuvent utiliser des webhooks pour vérifier l'intégrité de l'accès aux données, en s'assurant qu'une notification a bien été envoyée par Onshape et qu'elle n'a pas été falsifiée pendant le transport. L'activation de l'authentification de base du webhook remplit l'en-tête d'autorisation dans toutes les demandes du webhook. Webhook signatures configure les webhooks pour qu'ils utilisent des signatures afin de se protéger contre les attaques. Générer clés primaires et secondaires pour faire pivoter les clés dans votre application de production. Cela permet aux administrateurs de déprécier ou d'échanger des clés sans interrompre la connexion en cours. Si l'une des clés correspond, elle sera acceptée comme valide par Onshape. Copier dans le presse-papiers envoie la clé correspondante dans votre presse-papiers. Réinitialiser supprime la clé du champ correspondant. Une fois les clés primaires générées, cliquez sur Enregistrer les modifications pour accepter les entrées.
Les administrateurs doivent s'assurer que tous les webhooks se trouvent dans des emplacements de point finaux sécurisés (https), car ces données ne sont pas chiffrées.
Les valeurs de signature peuvent être mises en correspondance par la cible du webhook à l'aide de la structure suivante :
Signature = <Base64<HMAC256-digest<<timestamp header value>.<webhook payload>>>
Les webhooks Onshape contiennent les en-têtes supplémentaires suivants :
-
X-onshape-webhook-timestamp - Horodatage indiquant quand le webhook a été envoyé
-
X-onshape-webhook-signature-primary - Présent si la clé de signature principale est spécifiée dans les paramètres de la société
-
X-onshape-webhook-signature-secondary - Présent si la clé de signature secondaire est spécifiée dans les paramètres de la société
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
}