Интеграция с частными системами с помощью обратного прокси-сервера
Возможно, вы захотите поставлять GitHub вебхуки в частные системы, которые недоступны напрямую из интернета, такие как системы CI, инструменты управления работой и кастомные приложения. Вы можете использовать обратный прокси, чтобы получать полезные нагрузки webhook и GitHub доставлять их в вашу частную систему.
Обратный прокси-сервер — это веб-сервер, который находится между клиентом и приложением. Обратный прокси-сервер получает запросы от клиента и пересылает их в приложение. Это гарантирует отсутствие прямого взаимодействия между клиентами в Интернете и базовым приложением. Различные системы могут служить обратным прокси-сервером, в том числе:
- Веб-серверы, такие как nginx
- Шлюзы API
- Бесплатные, открытые сети наложения с открытым кодом, такие как OpenZiti
- Коммерческие средства управления входящего трафика, такие как ngrok
- Бесплатные средства управления входящего трафика с открытым кодом, такие как zrok
Настройка обратного прокси-сервера зависит от используемой системы.
Защита трафика на обратный прокси-сервер
При развертывании обратного прокси-сервера следует следовать всем рекомендациям, рекомендованным поставщиком обратного прокси-сервера, чтобы защитить базовый прокси-сервер. Кроме того, следует выполнить следующие шаги, чтобы убедиться, что в вашу заявку пересылаются только запросы.GitHub
Ограничение входящего трафика вебхуками GitHub
Вам следует настроить обратный прокси так, чтобы он разрешал HTTPS-POST запросы только из подмножества GitHub IP-диапазонов, используемых для доставки вебхуков. Это гарантирует, что обратный прокси-сервер не обрабатывает и не пересылает другие запросы.
Конечная точка /meta возвращает JSON-объект с указанием IP-диапазонов GitHub. Диапазоны IP-адресов, используемые для доставки веб-перехватчиков, перечислены в элементе hooks .
Проверка полезных данных веб-перехватчика
Если ваш webhook настроен с секретным токеном, GitHub он будет включать криптографический хэш каждой полезной нагрузки webhook. Вы должны использовать этот хэш для проверки полученной GitHub полезной нагрузки до того, как ваша приватная система предпримет какие-либо действия. Дополнительные сведения см. в разделе Проверка доставки веб-перехватчика.
Вы можете реализовать проверку полезных данных на обратном прокси-сервере или в частной системе.