Saltar al contenido principal
Didit recauda 7,5M $ para construir la infraestructura para identidad y fraude
Didit
Volver al blog
Blog · 7 de marzo de 2026

Asegurando Webhooks con Cloudflare Workers: Guía de Integración con Didit (ES)

Aprende a construir un endpoint de webhook robusto y seguro para la verificación de identidad de Didit usando Cloudflare Workers. Esta guía cubre la verificación de firma HMAC, validación de marca de tiempo y mejores prácticas.

Por DiditActualizado el
securing-webhooks-with-cloudflare-workers-a-didit-integration-guide.png

Seguridad Mejorada con Cloudflare WorkersCloudflare Workers proporcionan un entorno sin servidor ideal para procesar webhooks de forma segura, ofreciendo protección a nivel de borde y verificación de firma eficiente.

La Verificación de Firma HMAC es CrucialSiempre verifica la firma HMAC-SHA256 de los webhooks entrantes para asegurar su autenticidad e integridad, previniendo la inyección o manipulación de datos no autorizados.

La Validación de Marca de Tiempo Mitiga Ataques de ReplayImplementa comprobaciones de marca de tiempo para asegurar que las solicitudes de webhook sean recientes, protegiendo contra ataques de replay donde actores maliciosos reenvían solicitudes antiguas y legítimas.

Didit Simplifica la Verificación Segura de IdentidadLa plataforma nativa de IA de Didit proporciona notificaciones de webhook robustas y en tiempo real para todos los productos de verificación de identidad, asegurando la entrega segura y confiable de datos para tus aplicaciones.

En el panorama digital interconectado actual, los webhooks son la piedra angular de la comunicación en tiempo real entre servicios. Permiten notificaciones instantáneas para eventos como resultados de verificación de identidad, confirmaciones de pago y actividad del usuario. Sin embargo, la conveniencia de los webhooks conlleva un desafío de seguridad crítico: garantizar la autenticidad e integridad de los datos recibidos. Sin las salvaguardas adecuadas, tu aplicación podría ser vulnerable a suplantaciones, manipulaciones o ataques de replay.

Esta guía te mostrará cómo construir un endpoint de webhook seguro para la verificación de identidad de Didit utilizando Cloudflare Workers. Cloudflare Workers ofrece una plataforma potente y sin servidor en el borde, ideal para procesar y asegurar webhooks con mínima latencia y máxima fiabilidad. Didit, como plataforma de identidad nativa de IA, se basa en webhooks seguros para entregar notificaciones KYC en tiempo real, lo que hace que esta integración sea crucial para cualquier negocio que aproveche las robustas soluciones de verificación de identidad de Didit.

¿Por qué asegurar tus Webhooks?

Imagina recibir una notificación de webhook que afirma falsamente que un usuario ha pasado la Verificación de ID, cuando en realidad, falló. O quizás un actor malicioso reproduce un webhook antiguo y legítimo para activar una acción en tu sistema varias veces. Estos escenarios resaltan la necesidad crítica de la seguridad de los webhooks.

Las principales amenazas a los endpoints de webhook incluyen:

  • Suplantación: Un atacante envía un webhook falso, haciéndose pasar por Didit, para engañar a tu sistema y que realice acciones no autorizadas.
  • Manipulación: Un atacante intercepta un webhook legítimo y modifica su carga útil antes de que llegue a tu servidor.
  • Ataques de Replay: Un atacante captura un webhook legítimo y lo reenvía más tarde para activar la misma acción de nuevo, lo que podría llevar a transacciones duplicadas u otros problemas.

Asegurar tus webhooks implica verificar la identidad del remitente y garantizar que los datos no hayan sido alterados. Didit proporciona un mecanismo robusto para esto a través de firmas HMAC-SHA256 y validación de marca de tiempo, que implementaremos en nuestro Cloudflare Worker.

Configurando tu Secreto de Webhook de Didit

Antes de poder verificar los webhooks de Didit, necesitas tu Clave Secreta de Webhook única. Esta clave es fundamental para la verificación de firmas criptográficas. Así es como puedes recuperarla:

  1. Inicia sesión en tu Consola de Didit.
  2. Navega a ConfiguraciónClaves API.
  3. Copia tu Clave Secreta de Webhook.

Esta clave secreta debe almacenarse de forma segura y nunca exponerse públicamente. Para Cloudflare Workers, es mejor almacenarla como un secreto de Worker o una variable de entorno.

Construyendo un Cloudflare Worker Seguro para Webhooks de Didit

Cloudflare Workers son aplicaciones de JavaScript, TypeScript o WebAssembly que se ejecutan en la red global de Cloudflare, cerca de tus usuarios. Esto los hace increíblemente rápidos y escalables para manejar las solicitudes de webhook entrantes. Aquí tienes una guía paso a paso para crear un Worker que procese de forma segura los webhooks de Didit.

1. Crea tu Cloudflare Worker

Primero, configura un nuevo proyecto de Cloudflare Worker. Puedes hacerlo usando la herramienta CLI wrangler:

npx wrangler generate didit-webhook-handler
cd didit-webhook-handler

2. Añade tu Secreto de Webhook de Didit como un Secreto de Cloudflare

Para mantener seguro tu secreto de webhook, añádelo como un secreto a tu Worker:

npx wrangler secret put DIDIT_WEBHOOK_SECRET

Cuando se te solicite, pega tu Clave Secreta de Webhook de la Consola de Didit.

3. Implementa la Lógica del Webhook en index.js

El archivo index.js de tu Worker contendrá la lógica para recibir, validar y procesar los webhooks de Didit. Los pasos principales son:

  1. Leer el Cuerpo de la Solicitud Crudo: La firma HMAC se genera a partir del cuerpo de la solicitud crudo, por lo que es crucial no analizarlo antes de la verificación.
  2. Verificar la Firma HMAC-SHA256: Compara la firma proporcionada en el encabezado X-Signature con una firma que generes utilizando tu DIDIT_WEBHOOK_SECRET y el cuerpo de la solicitud crudo.
  3. Validar la Marca de Tiempo: Comprueba el encabezado X-Timestamp para asegurar que la solicitud sea reciente (por ejemplo, dentro de 5 minutos) para prevenir ataques de replay.
  4. Analizar JSON y Procesar: Si la verificación pasa, analiza el cuerpo JSON y maneja el resultado de la verificación de identidad.

Aquí tienes un ejemplo básico del código del Worker:

import { createHmac } from 'crypto'; // Cloudflare Workers provide 'crypto' module

export default {
  async fetch(request, env, ctx) {
    if (request.method !== 'POST') {
      return new Response('Method Not Allowed', { status: 405 });
    }

    const diditWebhookSecret = env.DIDIT_WEBHOOK_SECRET;
    if (!diditWebhookSecret) {
      return new Response('Webhook secret not configured', { status: 500 });
    }

    const signature = request.headers.get('X-Signature');
    const timestamp = request.headers.get('X-Timestamp');
    const rawBody = await request.text();

    if (!signature || !timestamp || !rawBody) {
      return new Response('Missing required webhook headers or body', { status: 400 });
    }

    // 1. Validate Timestamp (e.g., within 5 minutes)
    const FIVE_MINUTES_IN_SECONDS = 300;
    const currentTimestamp = Math.floor(Date.now() / 1000);
    if (Math.abs(currentTimestamp - parseInt(timestamp, 10)) > FIVE_MINUTES_IN_SECONDS) {
      return new Response('Webhook timestamp too old or in the future', { status: 403 });
    }

    // 2. Verify HMAC-SHA256 Signature
    const expectedSignature = createHmac('sha256', diditWebhookSecret)
      .update(`${timestamp}.${rawBody}`)
      .digest('hex');

    if (expectedSignature !== signature) {
      return new Response('Invalid webhook signature', { status: 403 });
    }

    // 3. Process the webhook payload
    try {
      const payload = JSON.parse(rawBody);
      // Log or process the payload, e.g., update user status in your database
      console.log('Received Didit webhook:', payload);

      // Example: Accessing verification status
      if (payload.event === 'session.completed' && payload.data.status === 'approved') {
        console.log(`User ${payload.data.vendor_data} successfully verified.`);
        // Trigger further actions like granting access or updating user profile
      }
      // Didit offers various products like ID Verification, Passive & Active Liveness, and AML Screening.
      // The webhook payload will reflect results from these checks.

      return new Response('Webhook processed successfully', { status: 200 });
    } catch (error) {
      console.error('Error parsing webhook body:', error);
      return new Response('Error parsing JSON payload', { status: 400 });
    }
  },
};

4. Despliega tu Worker

Una vez que tu código esté listo, despliégalo en Cloudflare:

npx wrangler deploy

Después del despliegue, Cloudflare te proporcionará una URL para tu Worker. Este es el endpoint que configurarás en tu Consola de Didit para recibir webhooks.

Configurando Didit para Enviar Webhooks

Con tu Cloudflare Worker seguro desplegado, el paso final es decirle a Didit dónde enviar tus notificaciones en tiempo real:

  1. Vuelve a tu Consola de Didit.
  2. Navega a Flujos de trabajo y selecciona el flujo de trabajo que deseas configurar (por ejemplo, tu flujo de trabajo KYC que utiliza la Verificación de ID y la Prueba de Vida Pasiva y Activa de Didit).
  3. En la configuración del flujo de trabajo, busca la configuración de la URL del Webhook.
  4. Introduce la URL de tu Cloudflare Worker desplegado.
  5. Guarda tus cambios.

Ahora, cada vez que una sesión de verificación de identidad se complete o su estado cambie, Didit enviará una notificación de webhook segura a tu Cloudflare Worker, que luego la validará y procesará.

Cómo Ayuda Didit

Didit está diseñado con la seguridad y la experiencia del desarrollador en su núcleo. Nuestra plataforma de identidad nativa de IA proporciona una arquitectura modular que te permite componer flujos de trabajo de verificación complejos con facilidad. Cuando se trata de webhooks, Didit simplifica el proceso al:

  • Proporcionar Notificaciones de Webhook Seguras: Todos los webhooks de Didit están firmados con una firma HMAC-SHA256 e incluyen una marca de tiempo, lo que garantiza la autenticidad e integridad de los datos que recibes. Esto es crucial para productos como la Verificación de ID, la Coincidencia Facial 1:1 y el Screening AML, donde la precisión de los datos es primordial.
  • Actualizaciones en Tiempo Real: Obtén notificaciones instantáneas para cada etapa del proceso de verificación, lo que permite que tu aplicación reaccione inmediatamente a los resultados de verificación del usuario.
  • Datos Completos: Las cargas útiles de los webhooks incluyen todos los detalles necesarios sobre la sesión de verificación, incluidos los resultados de varios productos de Didit como Prueba de Vida Pasiva y Activa, Verificación de Teléfono y Correo Electrónico, y Prueba de Dirección.
  • Enfoque Primero en el Desarrollador: Didit ofrece un entorno de pruebas instantáneo, documentación pública clara y APIs limpias, lo que facilita la integración. Nuestra capa KYC Core gratuita y el modelo de pago por verificación exitosa, sin tarifas de configuración, facilitan el inicio y la escalabilidad.

Al integrar los webhooks de Didit con un Cloudflare Worker seguro, estableces un canal resistente y confiable para las actualizaciones de verificación de identidad en tiempo real, protegiendo tu negocio y a tus usuarios.

¿Listo para Empezar?

¿Listo para ver Didit en acción? Obtén una demostración gratuita hoy.

Empieza a verificar identidades gratis con la capa gratuita de Didit.

Infraestructura para identidad y fraude.

Una API para KYC, KYB, Monitoreo de Transacciones y Detección de Fraude en Wallets. Intégrala en 5 minutos.

Pide a una IA que resuma esta página
Asegurar Webhooks con Cloudflare Workers y Didit.