Аудит подключений к сервисам REST/SOAP/WS#

Аудит подключений к сервисам REST/SOAP/WS предназначен для регистрации событий аутентификации и подключения пользователей к сервисным интерфейсам системы.

Сервисные интерфейсы могут быть опубликованы по протоколам:

  • REST;

  • SOAP;

  • WebSocket (WS).

Аудит используется для:

  • контроля обращений к сервисам;

  • анализа успешных и неуспешных попыток входа;

  • расследования инцидентов информационной безопасности и технических сбоев.

Аудит доступен по пути:
Аудит > Аудит подключений к сервисам REST/SOAP/WS.

Интерфейс аудита подключений к сервисам#

Интерфейс аудита подключений к сервисам используется для просмотра событий подключения к REST-, SOAP- и WS-интерфейсам системы.

Форма Btk_AuditConnectServiceAvi работает в режиме просмотра. Создание, редактирование и удаление записей через интерфейс недоступны.

Панель фильтрации#

В верхней части формы расположен фильтр по периоду.

Поле

Описание

flt_dFrom

Дата начала периода. Отбор выполняется по полю dConnect

flt_dTo

Дата окончания периода. Отбор выполняется по полю dConnect

При первом открытии формы 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-адрес клиента.

Хранимые поля#

Основные поля таблицы:

Поле

Описание

id

Идентификатор записи

idClass

Идентификатор класса

dConnect

Дата и время подключения

bAction

Признак результата операции

sURL

Адрес запроса

sService

Имя сервиса

sUser

Имя пользователя

sDescription

Описание ошибки или дополнительная информация

sIP

IP-адрес клиента

В интерфейсе дополнительно отображаются вычисляемые поля:

Поле

Описание

sAction

Текстовое представление результата: Успех, если bAction = 0; Ошибка, если bAction != 0

sFIO

ФИО пользователя, определяемое по данным таблицы Btk_User

Особенности заполнения полей#

Значение 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 дней — рабочий ориентир;

  • более длительное хранение — при наличии требований к расследованию инцидентов или аудиту интеграций.

Штатная настройка очистки регистрируется, но по умолчанию создается неактивной.

Рекомендуется:

  • контролировать рост таблицы и индексов;

  • анализировать количество записей по дням;

  • отслеживать долю ошибок подключения;

  • согласовывать срок хранения с аудитом подключений пользователей;

  • переносить старые данные в архив при необходимости.