Impostazioni azienda/classe/impresa - Webhooks
Disponibile solo per
Gli amministratori possono utilizzare i webhook per verificare l'integrità dell'accesso ai dati, assicurandosi che una notifica sia stata effettivamente inviata da Onshape e che non sia stata manomessa durante il transito. L'abilitazione dell'autenticazione di base dei webhook compila l'intestazione Authorization in tutte le richieste webhook.
Per accedere alle impostazioni dei tuoi Webhooks in Onshape, fai clic sull'icona utente del tuo Account () nell'angolo in alto a destra della finestra di Onshape. Si apre un menu a tendina. Fai clic su Impostazioni Azienda/Classroom/Enterprise.
Fai clic su Webhook nell'elenco sul lato sinistro della pagina:
Gli amministratori possono utilizzare i webhook per verificare l'integrità dell'accesso ai dati, assicurandosi che una notifica sia stata effettivamente inviata da Onshape e che non sia stata manomessa durante il transito. L'abilitazione dell'autenticazione di base dei webhook compila l'intestazione Authorization in tutte le richieste webhook. Le firme Webhook configurano i webhook in modo che utilizzino le firme per proteggersi dagli attacchi. Generare chiavi primarie e secondarie per ruotare le chiavi nell'applicazione di produzione. Ciò consente agli amministratori di deprecare o scambiare le chiavi senza interrompere la connessione corrente. Se una delle due chiavi corrisponde, verrà accettata come valida da Onshape. Copia negli appunti invia la chiave correlata agli appunti. Ripristina rimuove la chiave dal campo correlato. Una volta generate le chiavi primarie, fate clic su Salva le modifiche per accettare le iscrizioni.
Gli amministratori devono assicurarsi che tutti i webhook si trovino in posizioni punto finale protette (https), poiché questi dati non sono crittografati.
I valori della firma possono essere abbinati dalla destinazione webhook utilizzando la seguente struttura:
Signature = <Base64<HMAC256-digest<<timestamp header value>.<webhook payload>>>
I webhook Onshape contengono le seguenti intestazioni aggiuntive:
-
X-onshape-webhook-timestamp - Data/ora che indica quando il webhook è stato inviato
-
X-onshape-webhook-signature-primary - Presente se la chiave della firma principale è specificata nelle impostazioni aziendali
-
X-onshape-webhook-signature-secondary - Presente se la chiave della firma secondaria è specificata nelle impostazioni aziendali
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
}