Saltar al contenido principal
Verifica cada solicitud antes de aceptarla en tu sistema. Usa la clave de API del webhook y el secreto de cliente configurados para esta URL de recepción: son distintos de la clave de la API REST de integraciones.

Encabezados de autenticación

Los nombres de los encabezados no distinguen mayúsculas y minúsculas.

Qué se firma exactamente

Bridge construye la entrada del HMAC a partir del evento JSON con esta expresión de Python y luego codifica la cadena en UTF-8:
Esto ordena recursivamente las claves de los objetos, conserva el orden de los arrays, escapa los caracteres no ASCII y usa los espacios predeterminados de Python después de comas y dos puntos. No agrega un salto de línea final. La clave es el secreto de cliente codificado en UTF-8. Es una convención de serialización JSON de Python, no RFC 8785 / JCS. No la reemplaces por un resumen de los bytes crudos arbitrarios de la solicitud, JSON compacto, un JSON.stringify genérico de JavaScript ni una cadena con una marca de tiempo como prefijo. Los espacios, los escapes Unicode y el formato de números pueden cambiar la entrada HMAC aunque el objeto interpretado parezca equivalente. Usa el verificador de Python de abajo o prueba otra implementación contra el vector antes de conectarla.
La entrada HMAC actual contiene únicamente el JSON del evento. X-Bridge-Timestamp no está incluido en la firma. Comprueba la vigencia, pero no consideres que la marca de tiempo por sí sola ofrece protección criptográfica contra reenvíos: un cuerpo y una firma válidos anteriores pueden presentarse con otra marca de tiempo. Autentica la clave de API del webhook y usa una bandeja de entrada duradera y procesamiento idempotente, como explica Recepción de eventos.

Verificador de Python

Guárdalo como bridge_webhooks.py. Devuelve el objeto interpretado y verificado para que el código posterior use la misma interpretación que se autenticó. Obtén los secretos de variables de entorno del servidor o de tu almacén de secretos.
La ventana de cinco minutos es una política del receptor; mantén sincronizado el reloj de tu servidor. El verificador también rechaza claves JSON duplicadas y ambiguas. No desactives la autenticación para depurar una discrepancia: revisa las credenciales configuradas y compara la entrada canónica con los datos de prueba siguientes.

Vector de firma reproducible

Estos valores son datos sintéticos de prueba, no credenciales reales ni un evento para enviar a Bridge. Al probar las comprobaciones de vigencia, fija el argumento now del verificador en 1800000000. Objeto de evento:
Cadena JSON exacta que se firma: las secuencias \u siguientes contienen barras invertidas ASCII literales, no caracteres decodificados.
Cambiar un campo debe hacer fallar la verificación. Cambiar solo el orden de las claves de entrada o enviar Unicode literal en lugar de escapes Unicode JSON debe seguir verificando después de interpretar el JSON y reconstruir la misma representación canónica.

Después de verificar

Guarda el evento de forma duradera antes de confirmar su recepción. Un HMAC válido confirma la representación autenticada del evento; no demuestra que se haya ejecutado tu acción de negocio, que el evento sea nuevo ni que represente el estado más reciente del recurso. Continúa con entrega, duplicados y orden.