Аудит подключений#

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

Аудит доступен:

  • как отдельная форма аудита подключений;

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

Форма открывается по пути:
Аудит > Аудит подключений.

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

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

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

Поле

Описание

flt_sFio

ФИО пользователя

flt_sUser

Пользователь

flt_sClientHostIp

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

flt_dBeginDate

Дата начала периода

flt_dEndDate

Дата окончания периода

flt_sApplicationName

Приложение

Фильтр flt_dBeginDate автоматически устанавливается на дату 30 дней назад и напрямую используется в SQL-запросе.

Примечание

Фильтр Дата с следует считать обязательным. Если очистить дату начала периода, выборка может работать некорректно. Дата окончания периода необязательна.

Список подключений#

В основной таблице отображаются события подключений с учетом заданных фильтров.

Колонка

Описание

Дата

Дата и время события

Действие

Тип действия или события подключения

Имя приложения

Приложение, через которое выполнено подключение

Пользователь

Пользователь, связанный с событием

ФИО

ФИО пользователя

Описание

Дополнительное описание события

IP-адрес

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

Использование в аудите пользователя#

В форме Аудит пользователя аудит подключений отображается на вкладке Подключение.

В этом режиме фильтры берутся из мастер-формы аудита пользователя:

  • период с;

  • период по;

  • пользователь.

Эти параметры обязательны для построения вкладки подключений.

Настройка аудита#

Аудит работает в режиме просмотра. Через интерфейс недоступны:

  • создание записей;

  • редактирование записей;

  • удаление записей;

  • копирование записей.

Для аудита подключений Btk_AuditConnect отдельного переключателя включения или отключения не предусмотрено. Записи формируются автоматически при использовании штатных механизмов подключения и работы клиентского приложения.

Записи аудита создаются:

  • при входе пользователя в систему и ошибках входа — через AuditHelper.writeToAudit(...) и AuditHelper.writeErrToAudit(...);

  • при открытии и закрытии приложения — через ApplicationAvi, где вызывается Btk_AuditConnectApi.createRecordAT(...).

Для работы аудита должны выполняться следующие условия:

  • таблица Btk_AuditConnect установлена в системе;

  • приложение использует штатный контур авторизации AuthProvider;

  • открытие и закрытие клиентского приложения проходят через штатный ApplicationAvi.

При открытии формы по умолчанию устанавливается период за последние 30 дней.

Проверить появление записей аудита можно запросом:

select *
from Btk_AuditConnect
order by dDate desc;

Если входы пользователей есть, а записи аудита не появляются, нужно проверять не флаг аудита, а контур обработки подключения:

  • вызывается ли AuditHelper при авторизации;

  • проходит ли открытие и закрытие приложения через ApplicationAvi;

  • нет ли ошибок при записи в таблицу Btk_AuditConnect.

События формирования записей#

Аудит заполняется событиями:

  • Connect;

  • StartSession;

  • Login;

  • Open;

  • Close;

  • errLogin.

Часть событий аутентификации REST/SOAP/WS записывается в Btk_AuditConnectService, а не в Btk_AuditConnect.

Хранение данных#

Данные хранятся в сущности Btk_AuditConnect и таблице btk_auditconnect.

Запись может выполняться:

  • через API;

  • через прямую SQL-вставку.

В Btk_AuditConnect фиксируются:

  • клиентские подключения;

  • отдельные сценарии, например мобильное приложение;

  • ошибки подключения.

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

Поле

Описание

id

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

idClass

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

sApplicationName

Имя приложения

sUser

Пользователь

sAction

Код действия

sDescription

Описание события

dDate

Дата и время события

sClientHostIp

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

Программная логика#

Основные методы:

  • Btk_AuditConnectApi.createRecord(...) — создает запись аудита подключения;

  • Btk_AuditConnectApi.createRecordAT(...) — создает запись аудита подключения в автономной транзакции.

Дополнительно используются:

  • AuditHelper.writeToAudit(...);

  • AuditHelper.writeErrToAudit(...).

При отсутствии IP-адреса метод createRecord(...) записывает диагностическую информацию в поле описания.

Особенности эксплуатации#

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

Объем журнала зависит от:

  • количества пользователей;

  • количества подключений;

  • количества ошибок аутентификации;

  • количества клиентских приложений;

  • срока хранения записей.

Если аудит подключений используется вместе с журналом подключений к сервисам REST/SOAP/WS, сроки хранения этих журналов лучше согласовать.

Хранение и очистка#

Рекомендуется ограниченный срок хранения:

  • 30–90 дней — рабочий ориентир.

Аудит подключений постоянно растет, поэтому необходимо регулярно контролировать объем таблицы и индексов.

Для оценки объема используются:

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

  • доля ошибок;

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

  • распределение по приложениям;

  • распределение между Btk_AuditConnect и Btk_AuditConnectService.

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

  • анализировать рост не реже одного раза в месяц;

  • корректировать срок хранения;

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