Importante
Servicios de terceros y notificaciones push obsoletos
Los servicios de terceros y las notificaciones push en App Services han quedado obsoletos en favor de la creación de puntos finales HTTP que usan dependencias externas en funciones.
Webhooks se han renombrado a HTTPS Endpoints sin cambios en el comportamiento. Debe migrar los Webhooks existentes.
Los servicios existentes continuarán funcionando hasta el de septiembre 30 2025de.
Dado que los servicios de terceros y las notificaciones push ya no se utilizan, se han eliminado de forma predeterminada de la interfaz de usuario de App Services. Si necesita administrar un servicio de terceros o una notificación push existente, puede volver a agregar las configuraciones a la interfaz de usuario siguiendo estos pasos:
En la navegación izquierda, debajo del Manage sección, haga clic en App Settings.
Habilite el interruptor junto a Temporarily Re-Enable 3rd Party Services y luego guarde los cambios.
Overview
Dependiendo del servicio, los webhooks entrantes ofrecen varias formas de validar las solicitudes y personalizar la respuesta que Atlas App Services reenvía al servicio externo.
Request Validation Methods
Para validar que una solicitud de webhook proviene de una fuente confiable, algunos servicios externos requieren que las solicitudes entrantes incorporen una string secreta de una de varias formas prescritas. Otros servicios, como el servicio HTTP, permiten que opcionalmente requieras la validación de la solicitud.
Hay dos tipos de Request Validation para webhooks: Verificación defirma de carga útil y secreto como parámetro de consulta.
Se requiere HTTP/1.1 o superior al realizar solicitudes.
Nota
Para máxima seguridad, genere programáticamente el secret cadena que utiliza un paquete seguro como el módulo secretos de PythonAsegúrese de no publicar el secreto ni incluirlo en su sistema de control de versiones.
Verificación de la firma del payload
La opción de validación de solicitud Verify Payload Signature requiere que las solicitudes entrantes incluyan un código hexadecimal.
Hash HMAC SHA-256 generado a partir del cuerpo de la solicitud y la secret cadena en el X-Hook-Signature encabezado.
Ejemplo
Consider the following webhook request body and secret:
const body = { "message":"MESSAGE" } const secret = 12345
La siguiente función Atlas genera el hash para este body secrety:
// Generate an HMAC request signature exports = function(secret, body) { // secret = the secret validation string // body = the webhook request body return utils.crypto.hmac(EJSON.stringify(body), secret, "sha256", "hex"); } // Returns: "828ee180512eaf8a6229eda7eea72323f68e9c0f0093b11a578b0544c5777862"
El valor hash debe asignarse al encabezado de solicitud HTTP X-Hook-Signature en cada solicitud:
X-Hook-Signature:sha256=<hex-encoded-hash>
Para probar que la solicitud fue firmada correctamente, podríamos ejecutar el siguiente comando curl:
curl -X POST \ -H "Content-Type: application/json" \ -H "X-Hook-Signature:sha256=828ee180512eaf8a6229eda7eea72323f68e9c0f0093b11a578b0544c5777862" \ -d '{"message":"MESSAGE"}' \ <webhook URL>
Secret as a Query Parameter
La Require Secret as Query Param opción de validación de solicitud requiere que las solicitudes entrantes incluyan la secret cadena especificada como un parámetro de consulta adjunto al final de la URL.
Ejemplo
Considere un webhook configurado para usar un valor secret de 12345. Todas las solicitudes deben dirigirse a la URL del webhook con el secreto como parámetro de consulta.
<webhook URL>?secret=12345
Para comprobar que las solicitudes a esta URL se verifican correctamente, podríamos ejecutar el siguiente comando curl:
curl -H "Content-Type: application/json" \ -d '{ "message": "HELLO" }' \ -X POST '<webhook URL>?secret=12345'
Objeto de respuesta de webhook
App Services automatically passes a response object that represents the webhook's HTTP response as the second argument to webhook Function. The following table lists the available methods for modifying the response object:
Método | Arguments | Descripción | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
| ||||||||||
|
| Establecer el cuerpo de la respuesta HTTP. If Ejemplo | |||||||||
| name stringvalue string | Establezca la respuesta HTTP encabezado especificado por Ejemplo | |||||||||
| name stringvalue string | Establece la cabecera HTTP de respuesta especificada por Ejemplo |