Toutes les automatisations de DynamiHost reposent sur un seul mécanisme ouvert : les webhooks. Ce centre d'aide a un guide dédié pour les plateformes les plus connues, mais votre outil n'en a pas besoin. Si un service peut vous donner une URL qui accepte un HTTP POST, DynamiHost peut lui envoyer chaque scan, et il en va de même d'un serveur que vous gérez vous-même.

Ce qu'il vous faut

  • Une offre DynamiHost avec les webhooks : Trial, Pro ou Business. Si la page Webhooks de votre tableau de bord affiche un message de verrouillage, votre offre n'inclut pas encore les webhooks.
  • Une URL de votre outil d'automatisation, ou une route sur votre propre serveur, qui accepte les requêtes POST avec un corps JSON.

Les règles pour l'URL

  • L'URL doit utiliser http ou https et ne doit pas contenir d'identifiants intégrés.
  • Le nom d'hôte doit se résoudre en une adresse IP publique. Les plages privées, de bouclage, lien-local, multicast et réservées sont rejetées à l'enregistrement de l'endpoint, et revérifiées au moment de la livraison.
  • Les redirections ne sont jamais suivies : pointez l'endpoint vers l'URL finale.
  • Répondez avec n'importe quel statut 2xx pour marquer une livraison comme réussie. Tout le reste, ou l'absence de réponse sous 10 secondes, compte comme un échec et est réessayé.

Configurez-la

  1. Dans votre outil, trouvez sa fonction de webhook entrant, de déclencheur HTTP ou d'écoute de requêtes, et copiez l'URL qu'elle vous donne. Sur votre propre serveur, créez d'abord la route.
  2. Ouvrez Webhooks dans le tableau de bord et cliquez sur Add endpoint.
  3. Collez l'URL, sélectionnez l'événement scan.created, et enregistrez.
  4. Copiez le secret de signature affiché une seule fois pour l'endpoint.
  5. De retour sur la page Webhooks, cliquez sur Send test sur l'endpoint et confirmez que votre outil ou serveur a reçu l'événement d'exemple. Scannez ensuite un de vos codes avec votre téléphone pour une vraie livraison.

Vérifiez que cela vient bien de DynamiHost

Chaque livraison porte un en-tête x-dynamihost-signature : le HMAC-SHA256 hexadécimal de la valeur de l'en-tête x-dynamihost-timestamp (l'heure de cette tentative de livraison, en secondes), d'un point, et du corps brut, avec pour clé le secret de votre endpoint. Le champ timestamp dans le corps est l'heure de l'événement lui-même et n'est pas ce qui est signé. Vérifiez-le avant d'agir sur une livraison, surtout sur un serveur que vous exposez à Internet. Des extraits de vérification prêts à l'emploi en Node et Python sont sur la page Intégrations du tableau de bord, et Webhooks : soyez notifié à chaque scan, dans ce centre d'aide, décrit en entier le format de la charge utile, le calendrier des réessais et la règle de désactivation automatique.

Idées d'automatisation

  • Un petit script sur votre serveur qui écrit les scans dans votre propre base de données.
  • Un outil interne qui accepte déjà les webhooks d'autres produits : le JSON de DynamiHost suit le même schéma.
  • Une plateforme d'automatisation de niche sans guide propre : les étapes ci-dessus sont toute l'intégration.