Les Webhooks Peopulse sont sécurisés à l’aide de JWT (JSON Web Tokens) signés numériquement avec l’algorithme RS256. La vérification de la signature s’appuie sur une clé publique fournie via un JWKS (JSON Web Key Set).
Authentification de la requête :
Chaque requête de webhook inclut un JWT dans le header HTTP. Ce token permet de garantir l’intégrité et l’authenticité de la requête. Le payload du token contient les informations suivantes :
jsonCopierModifier{
"iat": <int>, // Issued At — Timestamp de l’émission du token
"nbf": <int>, // Not Before — Le token n’est valide qu’à partir de ce timestamp
"exp": <int>, // Expiration — Timestamp d’expiration du token
"hash": "<string>" // Hachage du corps de la requête HTTP (payload)
}
Etapes de vérification par le client :
Pour traiter et sécuriser un Webhook, votre système doit suivre les étapes suivantes :
- Extraire et vérifier la signature du JWT à l’aide de la clé publique JWKS et l’algorithme RS256.
- Vérifier la validité temporelle du token en contrôlant les champs
iat
,nbf
etexp
. - Calculer le hachage du corps de la requête reçue (payload) et le comparer avec la valeur
hash
contenue dans le JWT. - Accepter ou rejeter la requête en fonction du résultat des vérifications ci-dessus.