Configuración de empresa/aula/empresa: Webhooks
Solo disponible para
Los administradores pueden usar webhooks para comprobar la integridad del acceso a los datos, lo que garantiza que Onshape haya enviado realmente una notificación y que se haya manipulado durante el tránsito. Si se habilita la autenticación básica mediante webhook, se completa el encabezado de autorización en todas las solicitudes de webhook.
Para acceder a la configuración de tus Webhooks en Onshape, haz clic en el icono de usuario de tu cuenta () en la esquina superior derecha de la ventana de Onshape. Esto abre un menú desplegable. Haz clic en Configuración de la empresa, el aula o la empresa.
Haga clic en Webhooks en la lista del margen izquierdo de la página:
Los administradores pueden usar webhooks para comprobar la integridad del acceso a los datos, lo que asegura que Onshape realmente envió una notificación y que no se ha manipulado durante el tránsito. Mediante la habilitación de la autenticación básica de webhook, se rellena el encabezado Autorización de todas las solicitudes de webhook. Las firmas de webhook configuran los webhooks a fin de que utilicen firmas para protegerse contra ataques. Genere claves principales y secundarias para rotar claves en su aplicación de producción. Esto permite a los administradores dejar de usar o intercambiar claves sin interrumpir la conexión actual. Si alguna de las claves coincide, Onshape la aceptará como válida. Copiar al portapapeles envía la clave relacionada al portapapeles. Restablecer elimina la clave del campo relacionado. Una vez generadas las claves principales, haga clic en Guardar cambios para aceptar las entradas.
Los administradores deben asegurarse de que todos los webhooks se encuentren en ubicaciones de punto anterior seguras (https), ya que estos datos no están cifrados.
El objetivo del webhook puede hacer coincidir los valores de firma mediante la siguiente estructura:
Signature = <Base64<HMAC256-digest<<timestamp header value>.<webhook payload>>>
Los webhooks de Onshape contienen los siguientes encabezados adicionales:
-
X-onshape-webhook-timestamp: marca de tiempo que indica cuándo se envió el webhook
-
X-onshape-webhook-signature-primary: está presente si se especifica la clave de firma principal en la configuración de la compañía
-
X-onshape-webhook-signature-secondary: está presente si se especifica la clave de firma secundaria en la configuración de la compañía
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
}