Autorización de webhook
Introducción
Verificar la legitimidad de las solicitudes entrantes de webhooks es crucial para su autenticación. Este proceso garantiza que las solicitudes provengan de fuentes confiables, protegiendo así las aplicaciones de accesos no autorizados y actividades maliciosas. Sin una autenticación adecuada, los sistemas corren el riesgo de sufrir filtraciones y ataques de datos.
Esta página ofrece una introducción a los webhooks y su funcionamiento. Para obtener más información sobre los webhooks, visita nuestro portal para desarrolladores aquí.
¿Qué es un Webhook?
Un webhook requiere un emisor (configurado para reconocer eventos) y un receptor (una aplicación con una API). Cuando ocurre un evento, el emisor notifica al receptor. Los webhooks son una forma sencilla de suscribirse a las respuestas a los eventos de la aplicación.
Los webhooks te notifican automáticamente mediante un evento si se publica nueva información o datos.
Veamos un ejemplo:

- Tu vuelo se retrasa.
- El webhook se activa debido al retraso.
- Se te envía una notificación push para avisarte del retraso.
Tipos de webhooks
En este documento, repasamos ejemplos introductorios de tres métodos de autenticación de webhook que ofrece Esendex. Para obtener ejemplos más detallados e información sobre estos métodos, puedes acceder al portal para desarrolladores aquí.
Ten en cuenta que actualmente, sólo podrás tener un método de autenticación de webhook por cuenta. Si intentas enviar con más de uno, recibirás un error que indica que solo se permite uno.
Autenticación básica
¿Qué es la autenticación básica?
La autenticación básica es un método de autenticación HTTP sencillo que requiere que los clientes proporcionen su nombre de usuario y contraseña para acceder a un punto final de la API. Este enfoque se utiliza comúnmente para proteger las API, garantizando que solo los usuarios autorizados puedan acceder a ciertos recursos.
Trayectoria
- Al configurar la autenticación básica para un webhook, puedes proporcionar una combinación de nombre de usuario y contraseña o directamente el token de autenticación básica. Esta flexibilidad facilita la integración y la gestión de las credenciales de seguridad.
- Al proporcionar una combinación de nombre de usuario y contraseña, generamos un token de autenticación mediante codificación base64 (nombre de usuario:contraseña). Este enfoque se ajusta al mecanismo estándar utilizado en la autenticación básica.
- Si el usuario no cumple con las directrices de creación de tokens especificadas, ofrecemos una opción alternativa que te permite configurar el token directamente.
Token de verificación de autenticación (token de portador)
¿Qué es 0Auth?
En Auth0, el proceso de autenticación por tokens requiere que los usuarios confirmen su identidad. Tras la verificación, Auth0 genera un token único, como un token de acceso. Este token proporciona a los usuarios acceso a recursos seguros, eliminando la necesidad de ingresar repetidamente sus credenciales.
Trayectoria
Nuestra plataforma necesita permiso para enviar información al servidor de nuestro cliente. Para ello, necesitamos una clave especial que demuestre que tenemos autorización.
- La plataforma del cliente contará con un servidor de autorización que actúa como guardián y emitirá claves de acceso temporales llamadas tokens de acceso.
- Te proporcionaremos a nuestra plataforma un ID público para que el servidor de nuestro cliente nos reconozca. Posteriormente, comprobaremos su autenticidad proporcionando un código secreto (clientSecurityValue) que solo nosotros y el servidor de autorización de nuestro cliente conoceremos.
- A continuación, indicamos a nuestra plataforma dónde obtener un token de acceso (tokenUrl) de nuestro cliente y cuál es el código secreto que debe coincidir para pasar por el gatekeeper (servidor de autorización) del cliente.
- Si el gatekeeper comprueba que son correctos, emitirá un token de acceso temporal a nuestra plataforma que le permitirá enviar información al servidor del cliente con una marca de tiempo que expirará tras un tiempo determinado.
- Ahora, cuando nuestra plataforma envía una llamada de webhook al servidor del cliente, incluirá el token de acceso como prueba de que ha sido autorizado. Si se acepta, la información se envía correctamente.
- Se debe utilizar un nuevo token de acceso para cada llamada de webhook.
Encabezado personalizado (clave API)
¿Qué es el encabezado del cliente?
La autenticación mediante clave API con encabezado personalizado es un método que utiliza una clave única generada por el servidor. Los clientes incluyen esta clave en un encabezado HTTP personalizado al realizar solicitudes de acceso a una API. Este enfoque garantiza un acceso seguro al verificar la identidad del cliente que realiza la solicitud.
Trayectoria
- Clave API: Una clave API es una cadena secreta que identifica al remitente del webhook.
- Nosotros generamos la clave API para ti.
- Tu clave API debe ser única. Se recomienda generar una nueva clave API para cada suscripción a un webhook.
- Tu clave API es información confidencial y se tratará como tal.
- Encabezado personalizado: La clave API se envía a través de un encabezado HTTP personalizado, definido por el consumidor del webhook.
- El nombre del encabezado personalizado suele ser un identificador único, como “x-api-key” o “api-key”.
- Se recomienda usar HTTPS para la comunicación con webhooks a fin de proteger la clave API y otros datos en tránsito.
- Solicitud de webhook: Cuando se activa el webhook, el productor del webhook (Esendex Connect) incluye un encabezado personalizado con la clave API en la solicitud.
- El consumidor del webhook debe estar configurado para reconocer el encabezado personalizado y su clave API relacionada.
- Autenticación: El consumidor del webhook verifica la presencia y validez del encabezado personalizado que contiene la clave API. Si el encabezado está incluido y la clave API es correcta, la solicitud del webhook se considera auténtica.
- La clave API tendrá 32 caracteres alfanuméricos, sensibles a mayúsculas y minúsculas.
- Validación: El consumidor del webhook (el usuario, es decir, tú) valida la solicitud del webhook utilizando la clave API para decidir si debe autenticarse.
Ejemplo
Supongamos que tienes una clave API, “MY_ESENDEX_CONNECT_KEY”, y deseas usarla en un encabezado personalizado llamado “x-my-titan-key”. La solicitud del webhook debe incluir este encabezado:
x-titan-app-key: ESENDEX_CONNECT_API_KEY
El consumidor del webhook debe validar que este encabezado exista y que el valor “MY_ESENDEX_CONNECT_KEY” corresponda a una clave API válida.
Puedes obtener más información sobre los webhooks en nuestro portal para desarrolladores aquí.