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é.