À propos de l'intégration à des systèmes privés en utilisant le proxy inverse
Vous pouvez fournir GitHub des webhooks à des systèmes privés qui ne sont pas directement accessibles à partir d’Internet, tels que les systèmes CI, les outils de gestion des travaux et les applications personnalisées. Vous pouvez utiliser un proxy inverse pour recevoir des charges utiles de webhook à partir de GitHub et les remettre à 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 :
- Serveurs web, comme nginx
- Passerelles d’API
- Réseaux de superposition open source gratuits, comme OpenZiti
- Outils de gestion du trafic entrant commercial, comme ngrok
- Outils de gestion d’entrée open source gratuits, comme 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. En outre, vous devez effectuer les étapes suivantes pour vérifier que seules les demandes envoyées GitHub sont transférées à votre application.
Limitation du trafic entrant vers GitHub des webhooks
Vous devez configurer votre proxy inverse pour autoriser uniquement les requêtes HTTPS POST à partir du sous-ensemble de GitHub plages d’adresses IP utilisées pour fournir des webhooks. Ainsi, votre proxy inverse ne traitera ni ne transmettra d'autres demandes.
Le point de terminaison /meta retourne une liste d'objets 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 des webhooks
Si votre webhook est configuré avec un jeton secret, GitHub inclura un hachage cryptographique de chaque charge utile de webhook. Vous devez utiliser ce hachage pour valider la charge utile reçue de GitHub avant qu'une action ne soit effectuée 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é.