Сообщения аудита ThingWorx
В этом разделе, включающем следующие подразделы, представлены сведения о содержимом сообщений аудита ThingWorx. Щелкните название раздела, чтобы показать его содержимое. Щелкните название еще раз, чтобы скрыть содержимое.
Типы сообщений аудита 
Подсистема аудита создает сообщения для различных задач в ThingWorx Platform. Сообщения разделяются на следующие общие типы:
Изменения объекта - аудит изменений, таких как создание, удаление или модификация сущности. Сущность может представлять вещь или не вещь, например подсистему или организацию.
Изменения пользователей - аудит изменений, таких как создание или модификация пользователя или ключа приложения. Сведения об аудите переключения контекста безопасности см. в следующем разделе.
Операции с объектом - аудит операций с сущностями. Примеры включают задачу (туннелирование) удаленной сессии с вещью.
Операции в системе - аудит ситуаций, когда целевой объект для сообщения не существует, например в операциях входа пользователя в систему и импорта/экспорта.
Операции аудита - вызовы сообщений аудита, инициированных сервисами аудита, и добавление сообщений в журнал аудита.
Сообщения аудита содержат записи аудита, в которых представлена информация о задаче.
Аудит переключения контекста безопасности 
Начиная с версии ThingWorx Platform 8.5 подсистема аудита выполняет аудит переключения контекста безопасности от одного пользователя к другому, а также повышение контекста безопасности для суперпользователя. Примером может служить переключение контекста безопасности, происходящее при вызове метода SecurityContext.createUserContext(User anotherUser) интерфейса API в ThingWorx Extension. Этот метод позволяет расширению или сценарию переключаться на контекст безопасности другого пользователя. Метод SecurityContext.createSuperUserContext() интерфейса API в ThingWorx Extension делает возможным переключение расширения или сценария на контекст безопасности суперпользователя системы, что позволяет коду расширения получить доступ ко всем сущностям, к которым может получить доступ этот суперпользователь.
Изменение контекста безопасности часто происходит внутри ThingWorx Platform, чтобы различные функции могли получить доступ к сервисам и сущностям, которые могут быть невидимыми для стандартных пользователей. По этой причине не для всех изменений контекста безопасности будет выполняться аудит. Аудит будет проводиться только при обнаружении умышленных изменений контекста безопасности, которые могут указывать на нарушение безопасности.
Категория для этих сообщений - SECURITY_CONFIGURATION. Имеются следующие сообщения аудита для переключения контекста безопасности:
audit.securityContext.SuperUser
User _currentUser__switched context to SuperUser within the Entity Context of __thingName__.
audit.SecurityContext.Changed
User __currentUser__ switched context to __username__within the Entity Context of __thingName__.
Записи аудита 
Каждая запись аудита состоит из двух компонентов: ключа категории аудита и ключа сообщения аудита.
Ключ категории аудита - лексема локализации, определяющая функциональную область или категорию, с которой связывается сообщение аудита. Этот ключ имеет тип STRING. Список категорий см. в разделе Категории аудита.
Ключ сообщения аудита - лексема локализации, которая указывает текст сообщения аудита. Этот ключ имеет тип STRING.
Значение для каждого компонента выбирается из соответствующего встроенного определения или экземпляра события.
Аргументы сообщения аудита 
Сообщение аудита предоставляет аргументы, которые используются, чтобы создать локализованное текстовое сообщение и наименование сущности, выполнившей операцию. Для генерации локализованного текстового сообщения используется набор подстановочных пар "имя-значение" ValueCollection. Эта информация загружается из полей eventData экземпляра события. Сущность ThingWorx (например, вещь или пользователь) связывается с сообщением аудита, включающим в себя сведения о том, кем или чем была выполнена операция, которая обозначена в теме сообщения аудита.
Категории аудита 
Все записи аудита связываются с категорией аудита. Категории аудита позволяют просто фильтровать данные аудита и просматривать тренд задач для определенной категории операций.
У каждой записи аудита имеется единственная категория, которая сохраняется как строковое значение вместе с записью аудита. Отображаемая строка категории аудита локализуется. Категория отображается на языке выбранной пользователем предпочтительной языковой настройки.
В таблице "Лексемы локализации" ThingWorx Composerу каждой категории и у каждого сообщения есть своя лексема локализации. Эти лексемы также называют CategoryKey и MessageKey при включении/выключении категорий и сообщений.
Ниже приведен пример таблицы локализации, в которой показаны наименования и значения лексем локализации для категорий и сообщений аудита.
В следующей таблице кратко описаны и представлены примеры отслеживаемых действий для каждой категории. В ней также предоставляются лексемы локализации (или "ключи") для категорий и сообщений.
Категории аудита, отслеживаемые события и их ключи (лексемы локализации)
Категория
Описание
Примеры
Ключи категорий и ключи сообщений
ANALYTICS
Действия, относящиеся к сущностям аналитики. Операции, выполняемые ThingWorx Analytics.
Операции создания, правки и удаления в определениях анализа данных.
Другие действия в ThingWorx Analytics.
Ключ категории: audit.AuditCategory.Analytics
AUDIT
Для внутреннего использования подсистемы аудита.
По умолчанию включено.
Включает отслеживание выполнения сервиса аудита, поскольку в нем потенциально могут содержаться конфиденциальные данные. Сообщение аудита возвращает USERNAME для выполняющего сервис. По умолчанию аудит выполняется для следующих сервисов:
ArchiveAuditHistory
ArchiveAuditHistoryDirectPersistence
PurgeAuditData
ExportAuditData
ExportOnlineAuditData
CleanUpOfflineAudit
По умолчанию аудит не выполняется для следующих сервисов:
QueryAuditHistory
QueryAuditHistoryWithQueryCriteria
QueryAuditHistoryContextConstrained
GetAuditEntryCount
Ключ категории: audit.AuditCategory.Audit
Ключи сообщений:
audit.Audit.ExecutedService.ArchiveAuditHistory
audit.Audit.ExecutedService.ArchiveAuditHistoryDirectPersistence
audit.Audit.ExecutedService.PurgeAuditData
audit.Audit.ExecutedService.ExportAuditData
audit.Audit.ExecutedService.ExportOnlineAuditData
audit.Audit.ExecutedService.CleanUpOfflineAudit
audit.Audit.ExecutedService.Query AuditHistory
audit.Audit.ExecutedService.GetAuditEntryCount
AUTHENTICATION
Действия, относящиеся к аутентификации.
Успешный или неудачный вход пользователя в систему, выход пользователя и ошибки, связанные с использованием ключей приложений. Например: Login successful for user: Administrator
Запись Logout позволяет отслеживать действия выхода пользователя из системы. Эта запись генерируется для инициированного пользователем выхода из ThingWorx Composer. Имя пользователя включается в сообщение аудита.
Запись LoginSucceeded включает отслеживание успешных действий входа пользователя. Имя пользователя включается в сообщение аудита.
Запись LoginFailed включает отслеживание сбоев действий при входе пользователя в систему. Имя пользователя включается в сообщение аудита.
Запись ApplicationKeySucceeded включает отслеживание успешной аутентификации с ключом приложения. Имя пользователя включается в сообщение аудита.
Запись ApplicationKeyFailed включает отслеживание сбоев аутентификации с ключом приложения. Имя пользователя включается в сообщение аудита.
Ключ категории: audit.AuditCategory.Authentication
Ключи сообщений
com.thingworx.things.security.SecurityMonitorThing.Logout.Audit
com.thingworx.things.security.SecurityMonitorThing.LoginSucceeded.Audit
com.thingworx.things.security.SecurityMonitorThing.LoginFailed.Audit
com.thingworx.things.security.SecurityMonitorThing.ApplicationKeySucceeded.Audit
com.thingworx.things.security.SecurityMonitorThing.ApplicationKeyFailed.Audit
COLLABORATION
Действия, относящиеся к сущностям совместной работы.
Операции создания, правки и удаления в блогах и вики.
Ключ категории: audit.AuditCategory.Collaboration
DATA_MANAGEMENT
Действия, связанные с управлением или использованием данных.
Операции удаления данных.
Ключ категории: audit.AuditCategory.DataManagement
DATA_STORAGE
Действия, относящиеся к сущностям хранилищ данных и соответствующим подсистемам.
Операции создания, правки и удаления в таблицах данных, потоках и других сущностях хранения данных.
Ключ категории: audit.AuditCategory.DataStorage
DEVICE_COMMUNICATION
Действие, используемое при взаимодействии с устройствами Edge.
Сервис CloseWebSocketSessions в WSCommunicationSubsystem подлежит аудиту. Дополнительные сведения о сервисе см. в подразделе "Сервисы" раздела "Подсистема WebSocketCommunications".
* 
Что касается сообщений аудита об удаленных сессиях с агентами и развертываниями пакета SCM для агентов, сообщения аудита для связанных действий создаются соответствующими категориями аудита - REMOTE_ACCESS и SCM.
Ключ категории: audit.AuditCategory.DeviceCommunication
FILE_TRANSFER
Действия и события, относящиеся к выгрузке и загрузке файлов.
Успешное завершение переноса, отмена переноса и генерация ошибок для операции переноса файлов.
Ключ категории: audit.AuditCategory.FileTransfer
IMPORT_EXPORT
Действия, относящиеся к импорту и экспорту данных в ThingWorx.
Модель и операции импорта/экспорта данных.
Импорт расширения.
Ключ категории: audit.AuditCategory.ImportExport
LIFECYCLE
Действия, относящиеся к специфичным для вещи событиям, таким как ThingEnable.
События, такие как ThingEnable и ThingDisable, генерируются при вызове соответствующих сервисов для вещи. Аудит событий ThingStart по умолчанию отключен из-за загрузки при запуске и перезапуске ThingWorx Platform.
Ключ категории: audit.AuditCategory.Lifecycle
Ключи сообщений:
com.thingworx.things.Thing.ThingStart.Audit
audit.EntityLifecycle.Enable
audit.EntityLifecycle.Disable
Операции создания и удаления, связанные со всеми сущностями, включая группы вещей
Операции с аудитом и сообщения аудита:
Пользователь X создал новую группу вещей Y - сообщение аудита "тип" "наименование" создано.
Пользователь X удалил группу вещей Y - сообщение аудита "Тип "наименование" удален.
Пользователь X удалил все дочерние элементы группы вещей Y - сообщение аудита "Удалены все дочерние элементы тип наименование".
Ключ категории: audit.LifeCycle
Ключи сообщений:
audit.LifeCycle.Created
audit.LifeCycle.Deleted
audit.LifeCycle.DeletedAll
THINGGROUPMEMBERSHIPS
Операции добавления, относящиеся к участию в группе вещей
Операции с аудитом и сообщения аудита:
Пользователь X добавил вещь 123 как дочерний элемент группы вещей Y - сообщение аудита: "Вещь наименование вещи добавлена в качестве дочернего элемента ThingGroup имя группы вещей".
Пользователь X добавил группу вещей ABC как дочерний элемент группы вещей Y - сообщение аудита: "Группа ThingGroup наименование группы вещей 1 добавлена в качестве дочернего элемента ThingGroup имя группы вещей 2.
Ключ категории: audit.ThingGroupMemberships
Ключи сообщений:
com.thingworx.thinggroups.ThingGroup.AddedThingAsChildMember
com.thingworx.thinggroups.ThingGroup.AddedThingGroupAsChildMember
Операции удаления, относящиеся к участию в группе вещей
Операции с аудитом и сообщения аудита:
Пользователь X удалил вещь 123 как дочерний элемент группы вещей Y - сообщение аудита: "Удалена вещь наименование вещи как дочерний элемент группы вещей имя группы вещей".
Пользователь X удалил группу вещей ABC как дочерний элемент группы вещей Y - сообщение аудита: "Удалена группа вещей наименование группы вещей 1 как дочерний элемент группы вещей имя группы вещей 2".
Пользователь X удалил все дочерние элементы (вещи и/или группы вещей) из группы вещей Y - сообщение аудита "Удалены все дочерние элементы группы вещей имя группы вещей".
Ключ категории: audit.ThingGroupMemberships
Ключи сообщений:
com.thingworx.thinggroups.ThingGroup.DeletedThingAsChildMember
com.thingworx.thinggroups.ThingGroup.DeletedThingGroupAsChildMember
com.thingworx.thinggroups.ThingGroup.DeletedAllChildMembers
MODELING
Действия, относящиеся к сущностям моделирования. При создании сущности генерируется сообщение аудита, которое содержит сведения о владельце, назначенном новой сущности. Имейте в виду, что владельцу сущности автоматически присваивается имя пользователя, создавшего сущность.
Система генерирует сообщение аудита при использовании любого из способов создания сущности:
посредством вызова PUT в Composer;
посредством вызова API-интерфейса Create, API-интерфейса Clone или API-интерфейса SetOwner.
Любой пользователь, авторизованный для просмотра подсистемы аудита, может просматривать отчеты об изменениях владения.
Операции создания, правки и удаления на вещах, шаблонах вещи, профилях вещи, структурах данных, сетях, проектах, моделях и тегах.
Сообщение аудита имеет следующий формат:
"Created <Source Type> <Source> with owner <username of owner>."
Здесь:
Source Type - вид созданной сущности. Например, "Вещь".
Source - наименование новой сущности.
Поле owner содержит username пользователя, выполняющего действие создания.
Ключ категории: audit.AuditCategory.Modeling
Ключ сообщения: audit.EntityLifecycle.Create.
REMOTE_ACCESS
Действия, относящиеся к удаленному доступу (туннелирование).
Запуск сессии пользователя - сообщение аудита содержит идентификатор пользователя и время начала сессии.
Остановка сессии пользователя - сообщение аудита включает идентификатор пользователя, время окончания и общее время сессии.
Ключ категории: audit.AuditCategory.RemoteAccess
SCM (управление содержимым программного обеспечения)
Действия, относящиеся к пакетам, развертыванию и изменениям конфигурации.
Создание, правка, публикация и удаление пакетов. Создание, запуск, перенос и удаление развертывания. Включает тестирование и фактическое развертывание, активы, указанные для тестового развертывания, и успешные или неудачные операции установки пакетов. Изменения конфигурации для автоматической очистки и для параллельного развертывания.
Информация о развертывании пакетов включает идентификатор пользователя при инициировании развертывания непосредственно пользователем. Если развертывание инициируется платформой, SYSTEM указывается как сущность, развертывающая пакет.
Ключ категории: audit.AuditCategory.SoftwareManagement
SECURITY_CONFIGURATION
Действия, относящиеся к сущностям безопасности и разрешений, включая пользователей, группы пользователей, группы вещей, организации, ключи приложений, службы каталогов и аутентификаторы.
При каждом внесении изменения во владение сущности генерируется сообщение аудита. Владелец может быть изменен в Composer, путем вызова API или путем импорта XML-файла сущностей
Сообщение аудита владения не генерируется в следующих случаях:
подсистема аудита выключена;
сущность была обновлена без изменений владения;
вызов API-интерфейса SetOwner осуществляется тем же самым владельцем, который уже является владельцем данной сущности.
Операции создания, правки и удаления для пользователей, групп пользователей, групп вещей, организаций, ключей приложений, служб каталогов и аутентификаторов.
Позволяет отслеживать изменения в группе пользователей. Запись audit.Groups.Added создается при каждом добавлении пользователя или группы пользователей в качестве участника другой группы пользователей. Сущность audit.Groups.Removed создается при каждом удалении пользователя или группы пользователей из группы пользователей.
Изменения разрешений для сущностей (все типы сущностей). См. выше раздел Аудит переключения контекста безопасности.
Общий формат сообщения аудита об изменении владения приведен ниже.
"Owner for <Source Type> <Source> changed from <original owner username> to <new owner username>."
Здесь:
Source Type - вид сущности, для которой изменился владелец. Например, "Вещь".
Source - имя сущности, для которой изменился владелец.
Поле original owner username содержит username пользователя, выполняющего действие изменения.
Поле new owner username содержит username нового владельца.
Ключ категории: audit.AuditCategory.SecurityConfiguration
Ключи сообщений:
audit.Groups.Added
audit.Groups.Removed
audit.entity.ownership.change
Администратор, который разрешает и запрещает делегирование разрешений видимости группы вещей в подсистеме управления пользователями
Операции с аудитом и сообщения аудита:
Администратор включил разрешение на видимость группы вещей в подсистеме управления пользователями - сообщение аудита: "Включено делегирование разрешений на видимость для группы вещей".
Администратор отключил разрешение на видимость группы вещей в подсистеме управления пользователями - сообщение аудита: "Отключено делегирование разрешений на видимость для группы вещей".
Ключ категории: audit.AuditCategory.SecurityConfiguration
Ключи сообщений:
com.thingworx.thinggroups.ThingGroup.VisibilityPermissionDelegationEnabled
com.thingworx.thinggroups.ThingGroup.VisibilityPermissionDelegationDisabled
SYSTEM
Действия, относящиеся к системным сущностям.
Операции создания, правки и удаления для таблиц локализации, ресурсов, подсистем и журналов.
Изменения конфигурации подсистемы и действия, включая запуск, остановку и перезапуск. Все относящиеся к подсистеме записи находятся в этой категории и не будут отображаться в других категориях.
* 
При вызове операции перезапуска в результате выполнения операции генерируется (в зависимости от состояния подсистемы) два или три сообщения аудита. Если состояние подсистемы имеет значение RUNNING, в журнал записывается три сообщения: по одному для операций перезапуска, остановки и запуска. Если статус подсистемы - не RUNNING, записывается два сообщения: по одному для операций перезапуска и запуска. В этом случае действие остановки не выполняется.
Ключ категории: audit.AuditCategory.System
VISUALIZATION
Действия, относящиеся к сущностям визуализации.
Операции создания, правки и удаления для мэшапов, мастеров, гаджетов, инструментальных панелей, меню, медиаобъектов, определений стилей и определений состояний.
Ключ категории: audit.AuditCategory.Visualization
Включение и выключение событий аудита 
При перезапуске ThingWorx Platform все вещи инициируют событие ThingStart. Выполнение аудита всех этих событий приводит к длительному времени запуска платформы. Во избежание такой ситуации событие ThingStart в категории LIFECYCLE по умолчанию отключено. В следующей таблице показаны другие сообщения аудита, которые отключены по умолчанию.
Сообщения аудита по умолчанию отключены
Категория аудита
Ключ сообщения аудита
AUDIT
audit.Audit.ExecutedService.QueryAuditHistory
audit.Audit.ExecutedService.QueryAuditHistoryWithQueryCriteria
QueryAuditHistoryContextConstrained
audit.Audit.ExecutedService.GetAuditEntryCount
THINGGROUPMEMBERSHIPS
com.thingworx.thinggroups.ThingGroup.AddedThingAsChildMember
com.thingworx.thinggroups.ThingGroup.DeletedThingAsChildMember
com.thingworx.thinggroups.ThingGroup.AddedThingGroupAsChildMember
com.thingworx.thinggroups.ThingGroup.DeletedThingGroupAsChildMember
com.thingworx.thinggroups.ThingGroup.DeletededAllChildMembers
LIFECYCLE
audit.Lifecycle.ThingStart
Если все еще требуется выполнять аудит любых операций, перечисленных в таблице выше, можно включить сообщения, отредактировав файл конфигурации платформы platform-settings.json. Кроме того, если требуется отключить категории и сообщения о событиях, которые не используются, можно отредактировать этот файл конфигурации.
* 
Невозможно включать или отключать отдельные события в категории LIFECYCLE. Необходимо включить или выключить все, используя нотацию "MessageKeys" : ["ALL"].
Чтобы проверить, какие категории отключены, перейдите к ThingWorx Composer и на левой навигационной панели перейдите к разделу Мониторинг > Журнал приложения и найдите отключенные категории аудита.
* 
При внесении изменений в файл platform-settings.json для категорий аудита и сообщений о событиях требуется перезапуск экземпляра ThingWorx Platform. Этот тип изменения должен выполняться по возможности редко.
Файл platform-settings.json не содержит раздел для аудита. Чтобы включать или отключать категории и сообщения, необходимо добавить структуру JSON в файл. Для экземпляра ThingWorx Platform, для которого требуются сообщения аудита, требуется пользователь, имеющий разрешения на поиск и правку файла platform-settings.json и на добавление подходящей конфигурации.
* 
Раздел Audit должен быть добавлен как соседний узел в запись JSON в PlatformSettingsConfig. Он может располагаться до или после узла PlatformSettingsConfig, но должен находиться на одном уровне с узлом.
Включение или отключение аудита конкретных событий:
1. Перейдите в каталог ThingWorxPlatform и откройте файл platform-settings.json в текстовом редакторе.
2. В конце файла создайте новую группу с именем "Audit" и добавьте группы и ключи для категорий и сообщений о событиях, следуя приведенным ниже шаблонам.
Каждая категория должна иметь свою собственную запись "CategoryKey" в группе "Enabled" или в группе "Disabled".
За каждым ключом категории должна следовать запись "MessageKeys". Чтобы включить или отключить всю категорию, необходимо наличие и ключа категории, и ключа сообщения, подобных следующему примеру.

"CategoryKey" : "audit.AuditCategory.Audit"
"MessageKeys" : ["ALL"]
"CategoryKey" принимает строку ключа для категории, показанной в таблице Табл. 122. Например, audit.AuditCategory.Lifecycle.
Значение "CategoryKey" всегда выделяется двойными кавычками. Строка всегда оканчивается запятой.
Запись "MessageKeys" всегда использует квадратные скобки вокруг значения, независимо от того, существует ли только один ключ сообщения или несколько ключей сообщений. При наличии нескольких ключей сообщений используйте запятую в конце каждого ключа, кроме последнего.
"MessageKeys" принимает строку литерала ["ALL"], а также ключи сообщений, показанные в таблице Табл. 122.
Убедитесь, что для каждой группы используются соответствующие скобки, как показано в приведенном ниже примере.

"PlatformSettingsConfig:: {
"BasicSettings":( . . .
}
}
"Audit": {
"Disabled": [{
"CategoryKey": "audit.AuditCategory.Collaboration",
"MessageKeys": ["ALL"]
}, {
"CategoryKey": "audit.AuditCategory.Authentication",
"MessageKeys": [
"com.thingworx.things.security.SecurityMonitorThing.LoginSucceeded.Audit",
"com.thingworx.things.security.SecurityMonitorThing.ApplicationKeySucceeded.Audit"
]
}],
"Enabled": [{
"CategoryKey": "audit.AuditCategory.Lifecycle",
"MessageKeys": ["ALL"]
}, {
"CategoryKey": "audit.AuditCategory.Authentication",
"MessageKeys": [
"com.thingworx.things.security.SecurityMonitorThing.LoginFailed.Audit"
]
}, {
"CategoryKey": "audit.AuditCategory.ThingGroupMemberships",
"MessageKeys": [
"com.thingworx.thinggroups.ThingGroup.DeletdThingAsChildMember"
"com.thingworx.thinggroups.ThingGroup.DeletedThingGroupAsChildMember"
"com.thingworx.thinggroups.ThingGroup.DeletedAllChildMembers"
]
}, {
"CategoryKey": "audit.AuditCategory.Authentication",
"MessageKeys": [
"com.thingworx.things.security.SecurityMonitorThing.LoginFailed.Audit"
]
}]
}
3. Сохраните и закройте файл.
4. Как и при любом изменении файла platform-settings.json, необходимо остановить и перезапустить ThingWorx Platform.
Дополнительные сведения см. в подразделе "Добавление раздела аудита событий в platform-settings.json" раздела Сведения о конфигурации platform-settings.json.
Было ли это полезно?