Документация1С-Битрикс: Модулиnative.apiРазработчикамСобытия

Проверки доступа

Проверки выполняются в порядке таблицы. Событие After вызывается после успешной проверки. Во всех событиях доступен apiContext — контекст API.

ПроверкаДо проверкиПосле проверкиОстальные параметры
Глобальные IPonBeforeIpAccessGlobalonAfterIpAccessGlobalhttpRequest, ipBlacklist, ipWhitelist
IP роутаonBeforeIpAccessonAfterIpAccesshttpRequest, route, ipBlacklist, ipWhitelist
АвторизацияonBeforeAuthorizationonAfterAuthorizationhttpRequest, route
ГруппыonBeforeGroupAccessonAfterGroupAccesshttpRequest, route
РасписаниеonBeforeScheduleonAfterSchedulehttpRequest, route
Лимит запросовonBeforeRequestLimitonAfterRequestLimithttpRequest, route

Глобальные IP-списки проверяются до маршрутизации. IP-списки роута — после onAfterRouting, до авторизации. Для роута вызываются onBeforeIpAccess и onAfterIpAccess; onBeforeIpAccessGlobal и onAfterIpAccessGlobal относятся только к глобальной проверке и повторно не запускаются. События IP-проверки роута вызываются и при пустых списках, в том числе при попадании в кеш ответа. Для штатного OPTIONS и ненайденного роута они не вызываются.

Данные проверки

В onBeforeIpAccessGlobal и onBeforeIpAccess можно заменить массивы ipBlacklist и ipWhitelist через EventResult::SUCCESS. Списки должны содержать допустимые IP-адреса или CIDR. After получает списки после применения результатов Before; их изменение в After не запускает повторную проверку. Примеры регистрации — в разделе «События».

Исходные IP-списки карты доступны через конфиг роута; изменения Before-обработчика передаются в параметрах события и не записываются в карту:

$config = $route->getConfig();
$blacklist = $config->getSecurityIpBlacklist();
$whitelist = $config->getSecurityIpWhitelist();

Списки групп:

$config = $route->getConfig();
$blacklist = $config->getSecurityGroupBlacklist();
$whitelist = $config->getSecurityGroupWhitelist();

ID пользователя API после авторизации:

$userId = $apiContext->getAuth()?->getUserId();

Остановка запроса

Для немедленного ответа верните обычный массив или HttpResponse. Для штатного результата ошибки используйте EventResult::ERROR с exception или response — см. результат обработчика. Обычный return false проверку не отменяет.

Константы — в справочнике ModuleEventConfig.