apache — прокси-страницу php во внутренней сети для использования с Slack App

Я построил Slack App для нашей команды.

Я смог создать Slack Button и использовал это для авторизации приложения с oauth.access

My Slack App добавляет Косая черта на канал в Slack

Все идет нормально.

Команде Слэша требуется Request URL это просто страница, которая получит полезную нагрузку команды слэша и при необходимости отправит ответ обратно на канал Slack.

Вот руб, сервер, на котором размещена страница, которую я должен использовать для Request URL находится в нашей внутренней сети и доступен только пользователям нашего VPN.

  • Наш главный сайт, доступный для всего мира, https://example.com
  • Сервер, на котором размещена эта страница, находится по адресу: https://slack.example.com который доступен только пользователям нашего VPN (оба являются серверами Apache 2.4)
  • Любой не в VPN, который запрашивает slack.example.com, вместо этого обслуживается https://example.com
  • Я не могу переместить страницу php на сервер, доступный за пределами нашей VPN (это часть более крупного приложения, которое не может быть перемещено) но Я могу добавить страницу php служить, что хосты https://example.com.

Я думаю, что я мог бы добавить страницу PHP в example.com который может выступать в качестве прокси-сервера получения сообщений от slack.comпередавая их slack.example.com затем получить ответ от slack.example.com и отправив этот ответ обратно slack.com,

Возможно ли это, и если да, то как мне это сделать? Я открыт для других решений, возможно, используя Apache для прокси?

0

Решение

Я бы запустил страницу запроса на отдельном сервере в вашей демилитаризованной зоне, действующем в качестве прокси-сервера для внутреннего сервера приложений. Вот краткое описание:

  1. Сценарий php для URL-адреса запроса (= страница запроса) должен быть доступен для общего доступа в Интернет, чтобы Slack мог его вызвать. Я бы поставил его на отдельный сервер и поместил бы этот сервер в DMZ вашей компании. Обычно это лучшее место для серверов, которые должны быть доступны извне, но также должны иметь доступ к серверам внутри вашей компании. Обязательно используйте SSL и токен подтверждения для защиты ваших звонков от Slack.

  2. Страница запроса может быть запущена на небольшом сервере и должна иметь веб-сервер (например, apache) и php. Если вы планируете получать более сложные запросы, вам также может понадобиться база данных. Также потребуется запустить SSL, поэтому вам понадобится сертификат. Вы также можете использовать существующий веб-сервер извне (example.com), если он соответствует этим требованиям.

  3. Страница запроса должна иметь доступ к вашему серверу приложений, например, через VPN. Он должен функционировать как прокси-сервер: получать запрос от Slack, делать запросы к серверу приложений на основе особенностей команды slash, а затем возвращать информацию обратно в Slack.

  4. Другим важным моментом является аутентификация пользователя. Я прочел из вашего вопроса, что не все пользователи в вашей команде Slack должны иметь доступ к серверу приложений, поэтому в вашем скрипте запроса должен быть метод, позволяющий определить, каким пользователям разрешен доступ, а каким нет. Было бы проще, если бы эти пользователи могли быть идентифицированы по принадлежности к определенной группе Slack. В любом случае вам, вероятно, понадобится дополнительный бот, который обеспечивает отображение пользователей Slack на пользователей VPN.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]