Skip to main content

Livraison de webhooks à des systèmes privés

Pour limiter l'exposition de votre système privé à internet, vous pouvez utiliser un proxy inverse pour transférer les webhooks de GitHub vers votre système privé.

À propos de l'intégration à des systèmes privés en utilisant le proxy inverse

Vous pouvez fournir des webhooks GitHub à des systèmes privés qui ne sont pas directement accessibles depuis internet, comme les systèmes de CI, les outils de gestion du travail et les applications personnalisées. Vous pouvez utiliser un proxy inverse pour recevoir les charges utiles des webhooks de GitHub et les fournir à votre système privé.

Un proxy inverse est un serveur web qui s'intercale entre un client et une application. Le proxy inverse reçoit les demandes du client et les transfère à l'application. Ainsi, aucune communication directe n'a lieu entre les clients sur l'internet et l'application sous-jacente. Plusieurs systèmes peuvent servir de proxy inverse, notamment :

  • les serveurs web, comme nginx
  • Passerelles d’API
  • réseaux de superposition open source gratuits, comme OpenZiti
  • les outils de gestion de l'entrée commerciale, comme ngrok
  • outils de gestion d’entrée open source gratuits, tels que zrok

La façon dont vous configurez votre proxy inverse varie selon le système que vous utilisez.

Sécurisation du trafic vers votre proxy inverse

Lors du déploiement d'un proxy inverse, vous devez suivre toutes les pratiques recommandées par votre fournisseur de proxy inverse pour sécuriser le serveur proxy sous-jacent. De plus, vous devez effectuer les étapes suivantes pour vérifier que seules les requêtes provenant de GitHub sont transférées à votre application.

Limitation du trafic entrant aux webhooks GitHub

Vous devez configurer votre proxy inverse de manière à n'autoriser que les requêtes POST HTTPS provenant du sous-ensemble de GitHub qui sont utilisées pour fournir des webhooks. Ainsi, votre proxy inverse ne traitera ni ne transmettra d'autres demandes.

Le /meta point de terminaison retourne un objet JSON répertoriant les plages d'adresses IP de GitHub. Les plages d'adresses IP utilisées pour distribuer des webhooks sont répertoriées dans l'élément hooks.

Validation des charges utiles de webhook

Si votre webhook est configuré avec un jeton secret, GitHub inclura un code de hachage cryptographique de chaque charge utile du webhook. Vous devez utiliser ce hachage pour valider la charge utile reçue de GitHub avant qu'une action ne soit entreprise par votre système privé. Pour plus d’informations, consultez « Validation des livraisons de webhook ».

Vous pouvez effectuer la validation des charges utiles soit sur le proxy inverse, soit sur votre système privé.