Sécuriser les webhooks
Une fois que votre serveur est prêt à recevoir des requêtes de webhook, vous voudrez peut-être vous assurer qu'il peut traiter 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 la Console d'administration 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.
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;
};