Corroborar las firmas de un Webhook

Verifica los eventos que Quadminds envía a tus puntos de conexión de Webhooks

De manera opcional, Quadminds puede firmar los eventos de Webhook que envíe a tus puntos de conexión incluyendo una firma en el encabezado de cada evento Quadminds-Signature. Esto te permite corroborar que los eventos fueron enviados por Quadminds y no por un tercero.

Para ello, primero debes agregar una clave secreta en el campo secret de la configuración del Webhook. Después de esta configuración, Quadminds comienza a firmar cada webhook que envía al punto de conexión.

Cómo verificar firmas

En cada evento firmado, el encabezado Quadminds-Signature contiene el secret y el payload del mensaje recibido. Quadminds genera firmas usando un código de autenticación de mensajes basado en hash (HMAC) con SHA-256.

El proceso para verificar la firma es generar un hash a partir del par clave/mensaje donde la clave es el secret y el mensaje es el payload recibido.

  • 1. Calcula un HMAC con la función hash SHA256. Usa la clave secreta de la firma del punto de conexión como la clave y el payload recibido como el mensaje.
  • 2. Pasa el hash a base64.
  • 3. Verifica el hash generado con el hash recibido.

Aquí te dejamos un link de referencia con implementaciones en distintos lenguajes de programación: https://gist.github.com/jasny/2200f68f8109b22e61863466374a5c1d