Aller au contenu principal

Sécuriser les webhooks

Une fois que votre serveur est prêt à recevoir des requêtes de webhook, vous voudrez vous assurer qu'il peut gérer les requêtes de manière sécurisée. Logto génère une signature pour chaque charge utile de requête de webhook, ce qui vous permet de vérifier que la requête provient de Logto.

Obtenir la clé de signature

Vous devrez obtenir la clé de signature depuis la page des détails du webhook dans Logto Console > Webhooks pour vérifier la signature.

Vérifier la signature

Extrayez la signature de l'en-tête logto-signature-sha-256 de la requête de webhook.

Ensuite, vous devez générer une signature en utilisant votre clé de signature et le corps de la requête de webhook, et vous assurer que le résultat correspond à la signature de Logto.

remarque

Utilisez le corps brut de la requête de webhook pour la génération de la signature ; évitez d'utiliser le corps analysé, car les serveurs peuvent le prétraiter avant d'atteindre votre gestionnaire de point de terminaison de webhook.

Logto utilise un digest hexadécimal HMAC pour calculer la signature.

Voici un exemple de comment vérifier la signature en Node.js :

import { createHmac } from 'node:crypto';

export const verify = (signingKey: string, rawBody: Buffer[], expectedSignature: string) => {
const hmac = createHmac('sha256', signingKey);
hmac.update(rawBody);
const signature = hmac.digest('hex');
return signature === expectedSignature;
};