← К кейсам

Кейсы

Ограничение входящих REST-хуков по методам

Модуль для коробочного Bitrix24: разрешённые методы, IP-адреса, время работы и лимиты запросов для каждого входящего вебхука.

Доступ под конкретную интеграцию

Интеграции может быть нужно всего несколько REST-методов, например чтение данных и создание записи. При этом входящий вебхук получает доступ в рамках выбранных скоупов и прав своего владельца.

Я сделал модуль для коробочного Bitrix24, который позволяет задать дополнительный список разрешённых методов отдельно для каждого вебхука. Так у каждой интеграции появляется собственный набор правил.

Настройки для каждого вебхука

В админке выбирается уже существующий входящий вебхук. Для него включается ограничение и отмечаются разрешённые методы. Список сгруппирован по разделам REST, а нужный метод можно найти через поиск.

Выбор входящего вебхука для настройки ограничений
Правило привязывается к выбранному вебхуку.

В той же карточке настраиваются:

  • разрешённые IP-адреса, маски и диапазоны;
  • время, в которое вебхук может работать;
  • количество запросов за выбранный интервал;
  • код и текст ответа при блокировке;
  • ведение, просмотр и очистка журнала вызовов.
Разрешённые методы, IP-адреса, время работы и лимит запросов вебхука
Методы и дополнительные ограничения собраны в настройках одного вебхука.

Что получает интеграция при блокировке

Если вызов не разрешён правилом, модуль возвращает настроенную REST-ошибку. В примере используется код WEBHOOK_REQUEST_BLOCKED с пояснением, что запрос заблокирован настройками безопасности.

REST-ответ с ошибкой WEBHOOK_REQUEST_BLOCKED
Ответ на вызов, который не разрешён настройками вебхука.

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