Passer au contenu principal

Sécurité des webhooks

Il existe plusieurs niveaux de sécurité et de validation que vous pouvez intégrer dans votre application web pour gérer les webhooks Oktave.

Benoit Fievet avatar
Écrit par Benoit Fievet
Mis à jour il y a plus de 4 ans

HTTPS/TLS

La première étape à suivre pour sécuriser votre application web est de vous assurer que vous utilisez HTTPS pour le point final de votre application web. Oktave ne se connectera pas à une URL HTTPS avec un certificat auto-signé, utilisez donc un certificat d'un fournisseur tel que Let's Encrypt.

Validation des signatures à partir de Oktave

Votre application web doit vérifier que Oktave est le service qui a envoyé un webhook avant de répondre à cette demande. Ceci est important pour sécuriser les données sensibles et pour protéger votre application et vos serveurs contre les abus.

Oktave signera toutes les requêtes entrantes vers votre application avec un en-tête HTTP Oktave-Signature. Oktave utilise les en-têtes envoyés dans la requête webhook (POST) et votre webhook secret disponible dans votre compte pour créer cette signature. La signature utilise l'algorithme de hachage HMAC-SHA256 avec le webhook secret de votre compte Oktave comme clé secrète.

Votre application peut vérifier que cette signature est correcte en utilisant le SDK Oktave côté serveur (voir exemples ci-dessous). Vous aurez besoin du webhook secret de votre compte, de la valeur des en-têtes HTTP Oktave Oktave-Event-Id, Oktave-Signature, Oktave-Timestamp qui vous ont été transmise.

<?php

$config = [
// ...
'webhook_secret' => '{your_webhook_secret}',
];

$oktave = new Oktave\Client($config);

// SIMPLE USAGE

// return true if the request signature is valid
$oktave->webhooks->verifySignatureFromGlobals();

// ADVANCED USAGE

$eventID = $_SERVER['HTTP_OKTAVE_EVENT_ID'];
$requestTimestamp = $_SERVER['HTTP_OKTAVE_TIMESTAMP'];
$signature = $_SERVER['HTTP_OKTAVE_SIGNATURE'];

// return true if the request signature is valid
$oktave->webhooks->verifySignature($eventID, $requestTimestamp, $signature);

Webhooks et adresses IP

Oktave utilise une architecture cloud pour fournir des services et, à ce titre, ne dispose pas d'une plage fixe d'adresses IP qui émettent des webhooks.

Lors de la conception de votre architecture réseau, vous pouvez souhaiter disposer d'un ensemble de serveurs et d'un équilibreur de charge dans une zone démilitarisée qui reçoivent les demandes de webhook de Oktave, et qui transmettent ensuite ces demandes à votre réseau privé.

Avez-vous trouvé la réponse à votre question ?