Sécuriser les Webhooks avec Cloudflare Workers : Guide d'Intégration Didit (FR)
Découvrez comment créer un point de terminaison de webhook robuste et sécurisé pour la vérification d'identité Didit à l'aide de Cloudflare Workers.

Sécurité Améliorée avec Cloudflare WorkersLes Cloudflare Workers offrent un environnement sans serveur idéal pour traiter les webhooks en toute sécurité, offrant une protection de pointe et une vérification de signature efficace.
La Vérification de Signature HMAC est CrucialeVérifiez toujours la signature HMAC-SHA256 des webhooks entrants pour garantir leur authenticité et leur intégrité, empêchant ainsi l'injection ou la falsification de données non autorisées.
La Validation d'Horodatage Atténue les Attaques par RejeuMettez en œuvre des contrôles d'horodatage pour garantir que les requêtes de webhook sont récentes, protégeant ainsi contre les attaques par rejeu où d'anciennes requêtes légitimes sont renvoyées par des acteurs malveillants.
Didit Simplifie la Vérification d'Identité SécuriséeLa plateforme nativement IA de Didit fournit des notifications de webhook robustes et en temps réel pour tous les produits de vérification d'identité, garantissant une livraison de données sécurisée et fiable pour vos applications.
Dans le paysage numérique interconnecté d'aujourd'hui, les webhooks sont la pierre angulaire de la communication en temps réel entre les services. Ils permettent des notifications instantanées pour des événements tels que les résultats de vérification d'identité, les confirmations de paiement et l'activité des utilisateurs. Cependant, la commodité des webhooks s'accompagne d'un défi de sécurité critique : assurer l'authenticité et l'intégrité des données reçues. Sans les mesures de protection appropriées, votre application pourrait être vulnérable à l'usurpation d'identité, à la falsification ou aux attaques par rejeu.
Ce guide vous expliquera comment créer un point de terminaison de webhook sécurisé pour la vérification d'identité Didit à l'aide de Cloudflare Workers. Les Cloudflare Workers offrent une plateforme puissante et sans serveur en périphérie, idéale pour traiter et sécuriser les webhooks avec une latence minimale et une fiabilité maximale. Didit, en tant que plateforme d'identité nativement IA, s'appuie sur des webhooks sécurisés pour fournir des notifications KYC en temps réel, ce qui rend cette intégration cruciale pour toute entreprise tirant parti des solutions robustes de vérification d'identité de Didit.
Pourquoi Sécuriser Vos Webhooks ?
Imaginez recevoir une notification de webhook qui prétend faussement qu'un utilisateur a réussi la vérification d'identité, alors qu'en réalité, il a échoué. Ou peut-être qu'un acteur malveillant rejoue un ancien webhook légitime pour déclencher une action dans votre système plusieurs fois. Ces scénarios soulignent le besoin critique de sécurité des webhooks.
Les principales menaces pour les points de terminaison de webhook comprennent :
- Usurpation d'identité : Un attaquant envoie un faux webhook, se faisant passer pour Didit, pour inciter votre système à prendre des actions non autorisées.
- Falsification : Un attaquant intercepte un webhook légitime et modifie sa charge utile avant qu'il n'atteigne votre serveur.
- Attaques par rejeu : Un attaquant capture un webhook légitime et le renvoie plus tard pour déclencher la même action à nouveau, ce qui peut entraîner des transactions en double ou d'autres problèmes.
La sécurisation de vos webhooks implique la vérification de l'identité de l'expéditeur et la garantie que les données n'ont pas été altérées. Didit fournit un mécanisme robuste pour cela grâce aux signatures HMAC-SHA256 et à la validation d'horodatage, que nous mettrons en œuvre dans notre Cloudflare Worker.
Configuration de Votre Secret de Webhook Didit
Avant de pouvoir vérifier les webhooks Didit, vous avez besoin de votre clé secrète de webhook unique. Cette clé est primordiale pour la vérification de signature cryptographique. Voici comment la récupérer :
- Connectez-vous à votre Console Didit.
- Accédez à Paramètres → Clés API.
- Copiez votre Clé Secrète de Webhook.
Cette clé secrète doit être stockée en toute sécurité et ne jamais être exposée publiquement. Pour les Cloudflare Workers, il est préférable de la stocker en tant que secret de Worker ou variable d'environnement.
Construire un Cloudflare Worker Sécurisé pour les Webhooks Didit
Les Cloudflare Workers sont des applications JavaScript, TypeScript ou WebAssembly qui s'exécutent sur le réseau mondial de Cloudflare, à proximité de vos utilisateurs. Cela les rend incroyablement rapides et évolutifs pour gérer les requêtes de webhook entrantes. Voici un guide étape par étape pour créer un Worker qui traite en toute sécurité les webhooks Didit.
1. Créez Votre Cloudflare Worker
Tout d'abord, configurez un nouveau projet Cloudflare Worker. Vous pouvez le faire en utilisant l'outil CLI wrangler :
npx wrangler generate didit-webhook-handler
cd didit-webhook-handler
2. Ajoutez Votre Secret de Webhook Didit en tant que Secret Cloudflare
Pour garder votre secret de webhook sécurisé, ajoutez-le en tant que secret à votre Worker :
npx wrangler secret put DIDIT_WEBHOOK_SECRET
Lorsque vous y êtes invité, collez votre clé secrète de webhook depuis la console Didit.
3. Implémentez la Logique de Webhook dans index.js
Le fichier index.js de votre Worker contiendra la logique pour la réception, la validation et le traitement des webhooks Didit. Les étapes principales sont :
- Lire le Corps de Requête Brut : La signature HMAC est générée à partir du corps de requête brut, il est donc crucial de ne pas le parser avant la vérification.
- Vérifier la Signature HMAC-SHA256 : Comparez la signature fournie dans l'en-tête
X-Signatureavec une signature que vous générez en utilisant votreDIDIT_WEBHOOK_SECRETet le corps de requête brut. - Valider l'Horodatage : Vérifiez l'en-tête
X-Timestamppour vous assurer que la requête est récente (par exemple, dans les 5 minutes) afin d'éviter les attaques par rejeu. - Analyser le JSON et Traiter : Si la vérification réussit, analysez le corps JSON et gérez le résultat de la vérification d'identité.
Voici un exemple de base du code du 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. Déployez Votre Worker
Une fois votre code prêt, déployez-le sur Cloudflare :
npx wrangler deploy
Après le déploiement, Cloudflare vous fournira une URL pour votre Worker. C'est le point de terminaison que vous configurerez dans votre console Didit pour la réception des webhooks.
Configuration de Didit pour Envoyer des Webhooks
Avec votre Cloudflare Worker sécurisé déployé, la dernière étape consiste à indiquer à Didit où envoyer vos notifications en temps réel :
- Retournez à votre Console Didit.
- Accédez à Workflows et sélectionnez le workflow que vous souhaitez configurer (par exemple, votre workflow KYC qui utilise la vérification d'identité Didit et la Liveness Passive & Active).
- Dans les paramètres du workflow, recherchez la configuration de l'URL du Webhook.
- Entrez l'URL de votre Cloudflare Worker déployé.
- Enregistrez vos modifications.
Désormais, chaque fois qu'une session de vérification d'identité est terminée ou que son statut change, Didit enverra une notification de webhook sécurisée à votre Cloudflare Worker, qui la validera et la traitera.
Comment Didit Aide
Didit est conçu avec la sécurité et l'expérience développeur au cœur. Notre plateforme d'identité nativement IA offre une architecture modulaire qui vous permet de composer facilement des workflows de vérification complexes. En ce qui concerne les webhooks, Didit simplifie le processus en :
- Fournissant des Notifications de Webhook Sécurisées : Tous les webhooks Didit sont signés avec une signature HMAC-SHA256 et incluent un horodatage, garantissant l'authenticité et l'intégrité des données que vous recevez. Ceci est crucial pour des produits comme la vérification d'identité, la correspondance faciale 1:1 et le filtrage AML, où la précision des données est primordiale.
- Mises à Jour en Temps Réel : Recevez des notifications instantanées pour chaque étape du processus de vérification, permettant à votre application de réagir immédiatement aux résultats de vérification des utilisateurs.
- Données Complètes : Les charges utiles des webhooks incluent tous les détails nécessaires sur la session de vérification, y compris les résultats de divers produits Didit comme la Liveness Passive & Active, la Vérification Téléphonique et E-mail, et la Preuve d'Adresse.
- Approche Axée sur le Développeur : Didit offre un bac à sable instantané, une documentation publique claire et des API propres, rendant l'intégration simple. Notre niveau KYC Core gratuit et notre modèle de paiement par vérification réussie, sans frais d'installation, facilitent le démarrage et la mise à l'échelle.
En intégrant les webhooks Didit avec un Cloudflare Worker sécurisé, vous établissez un canal résilient et digne de confiance pour les mises à jour de vérification d'identité en temps réel, protégeant votre entreprise et vos utilisateurs.
Prêt à Commencer ?
Prêt à voir Didit en action ? Obtenez une démo gratuite dès aujourd'hui.
Commencez à vérifier les identités gratuitement avec le niveau gratuit de Didit.