Аудит подключений к сервисам REST/SOAP/WS#
Аудит подключений к сервисам REST/SOAP/WS предназначен для регистрации событий аутентификации и подключения пользователей к сервисным интерфейсам системы.
Сервисные интерфейсы могут быть опубликованы по протоколам:
REST;
SOAP;
WebSocket (WS).
Аудит используется для:
контроля обращений к сервисам;
анализа успешных и неуспешных попыток входа;
расследования инцидентов информационной безопасности и технических сбоев.
Аудит доступен по пути:
Аудит > Аудит подключений к сервисам REST/SOAP/WS.
Интерфейс аудита подключений к сервисам#
Интерфейс аудита подключений к сервисам используется для просмотра событий подключения к REST-, SOAP- и WS-интерфейсам системы.
Форма Btk_AuditConnectServiceAvi работает в режиме просмотра. Создание, редактирование и удаление записей через интерфейс недоступны.
Панель фильтрации#
В верхней части формы расположен фильтр по периоду.
Поле |
Описание |
|---|---|
|
Дата начала периода. Отбор выполняется по полю |
|
Дата окончания периода. Отбор выполняется по полю |
При первом открытии формы flt_dFrom автоматически устанавливается на начало текущего дня.
Примечание
Явной проверки обязательности периода в форме нет, но для эксплуатации дату Период с лучше не очищать. Это уменьшает объем выборки и ускоряет построение списка.
Список подключений#
В основной таблице отображаются события подключений к сервисам с учетом заданного периода.
Колонка |
Описание |
|---|---|
Дата |
Дата и время подключения |
Действие |
Результат подключения: успех или ошибка |
Пользователь |
Пользователь, выполнивший подключение |
ФИО |
ФИО пользователя |
Описание |
Описание ошибки или дополнительная информация |
IP-адрес |
IP-адрес клиента |
Сервис |
Имя сервиса |
URL |
Адрес запроса |
Записи сортируются по дате подключения в порядке убывания: от новых к более старым.
Настройка аудита#
Аудит доступен только в режиме просмотра. Создание, редактирование и удаление записей через интерфейс недоступны.
Отдельной настройки для включения или отключения аудита подключений к сервисам REST/SOAP/WS не предусмотрено. Запись выполняется автоматически, если запрос проходит через стандартный контур аутентификации и обрабатывается серверной логикой аудита.
Запись выполняет AuditHelper.writeToAudit(...): если URL запроса содержит /rest/, /soap/ или /ws/, строка записывается напрямую в Btk_AuditConnectService.
Для работы аудита должны выполняться следующие условия:
таблица
Btk_AuditConnectServiceустановлена в системе;вызов проходит через стандартный контур аутентификации, который вызывает
AuditHelper.writeToAudit(...)илиAuditHelper.writeErrToAudit(...);фактический URL запроса содержит
/rest/,/soap/или/ws/;вызов не является мобильным REST-вызовом с заголовком
Workspace = Android, так как такие подключения относятся к другому журналу.
Для отбора записей в форме используется фильтр по периоду. При первом открытии значение поля Период с устанавливается на начало текущего дня.
Проверить появление записей можно запросом:
select *
from Btk_AuditConnectService
order by dConnect desc;
Если записи не появляются, нужно проверять не флаг аудита, а маршрут обработки запроса:
проходит ли запрос через
AuditHelper;какие
contextParamsпереданы;какой фактический
REQUEST_URLобрабатывается сервером.
События формирования записей#
Запись создается автоматически при обработке обращений к сервисным URL системы, если адрес запроса содержит один из сегментов:
/rest/;/soap/;/ws/.
Фиксируются успешные и неуспешные попытки входа пользователя.
Хранение данных#
Данные хранятся в таблице Btk_AuditConnectService.
При создании записи фиксируются:
дата и время подключения;
результат операции;
URL запроса;
имя сервиса;
пользователь;
описание ошибки или дополнительная информация;
IP-адрес клиента.
Хранимые поля#
Основные поля таблицы:
Поле |
Описание |
|---|---|
|
Идентификатор записи |
|
Идентификатор класса |
|
Дата и время подключения |
|
Признак результата операции |
|
Адрес запроса |
|
Имя сервиса |
|
Имя пользователя |
|
Описание ошибки или дополнительная информация |
|
IP-адрес клиента |
В интерфейсе дополнительно отображаются вычисляемые поля:
Поле |
Описание |
|---|---|
|
Текстовое представление результата: Успех, если |
|
ФИО пользователя, определяемое по данным таблицы |
Особенности заполнения полей#
Значение dConnect заполняется текущими датой и временем.
Значение sService извлекается из URL запроса.
Если в URL есть параметр access_token, его значение маскируется.
Строковые поля ограничиваются допустимой длиной.
Программная логика#
Добавление записи выполняется автоматически серверной логикой аудита при обращении к REST-, SOAP- и WS-endpoint’ам.
При создании записи:
формируется запись в таблице
Btk_AuditConnectService;фиксируется текущее время;
сохраняются результат операции, URL, сервис, пользователь, описание и IP-адрес.
Для аудита предусмотрен скрипт регистрации задания очистки regCleanupJob.
Скрипт:
регистрирует настройку фоновой очистки записей;
использует системное задание очистки
CleanupJob;задает срок хранения записей — 30 дней;
устанавливает тип удаления
sqlDelete;создает задание очистки в неактивном состоянии по умолчанию.
Особенности эксплуатации#
Аудит подключений к сервисам фиксирует только обращения к сервисным интерфейсам REST/SOAP/WS. Клиентские подключения пользователей к приложению фиксируются в отдельном аудите подключений.
Объем журнала зависит от:
количества обращений к сервисам;
количества успешных и неуспешных попыток входа;
количества интеграционных пользователей;
длины URL и описаний ошибок;
срока хранения записей.
Срок хранения этого журнала рекомендуется согласовывать со сроком хранения обычного аудита подключений Btk_AuditConnect.
Хранение и очистка#
Для рабочей базы рекомендуется ограниченный срок хранения:
30–90 дней — рабочий ориентир;
более длительное хранение — при наличии требований к расследованию инцидентов или аудиту интеграций.
Штатная настройка очистки регистрируется, но по умолчанию создается неактивной.
Рекомендуется:
контролировать рост таблицы и индексов;
анализировать количество записей по дням;
отслеживать долю ошибок подключения;
согласовывать срок хранения с аудитом подключений пользователей;
переносить старые данные в архив при необходимости.