ThingWorx 監査メッセージ
このトピックでは、ThingWorx 監査メッセージのコンテンツについて以下のセクションで詳しく説明します。セクションのタイトルをクリックすると、コンテンツが表示されます。タイトルを再びクリックすると、コンテンツが非表示になります。
監査メッセージのタイプ 
監査サブシステムは ThingWorx Platform におけるさまざまなアクティビティに関するメッセージを生成します。これらのメッセージは以下の一般タイプに分類されます。
オブジェクトに対する変更 - エンティティの作成、削除、修正などの変更の監査。このエンティティは Thing の場合と非 Thing の場合 (サブシステムまたは組織など) があります。
ユーザーに対する変更 - ユーザーまたはアプリケーションキーの作成または修正などの変更の監査。セキュリティコンテキストの切り替えの監査については、次のセクションを参照してください。
オブジェクトに対する操作 - エンティティに対する操作の監査。例としては、Thing に対するリモートセッションアクティビティ (トンネリング) が挙げられます。
システムに対する操作 - ユーザーログインやインポート/エクスポート操作などの、メッセージにターゲットオブジェクトが存在しない監査。
監査操作 - 監査サービスの呼び出しによって監査メッセージがトリガーされ、監査ログにメッセージが追加されます。
監査メッセージには、そのアクティビティについての情報を提供する監査エントリが含まれています。
セキュリティコンテキストの切り替えの監査 
v.8.5 の ThingWorx Platform では、監査サブシステムは、あるユーザーから別のユーザーへのセキュリティコンテキストの切り替え、およびセキュリティコンテキストのスーパーユーザーへの昇格を監査します。一例として、セキュリティコンテキストの切り替えは、ThingWorx Extension API の SecurityContext.createUserContext(User anotherUser) メソッドが呼び出されたときに発生します。このメソッドによって、拡張機能またはスクリプトが別のユーザーのセキュリティコンテキストに切り替わります。ThingWorx Extension API の SecurityContext.createSuperUserContext() メソッドによって、拡張機能またはスクリプトがシステムのスーパーユーザーのセキュリティコンテキストに切り替わり、スーパーユーザーがアクセス可能なすべてのエンティティに拡張機能のコードがアクセス可能になります。
セキュリティコンテキストの変更は 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__.
監査エントリ 
各監査エントリは、監査カテゴリキーと監査メッセージキーの 2 つのコンポーネントから成ります。
監査カテゴリキーは、監査メッセージが関連付けられる機能領域 (カテゴリ) を指定するローカライズトークンです。このキーは STRING です。カテゴリのリストについては、監査カテゴリを参照してください。
監査メッセージキーは、監査メッセージのテキストを指すローカライズトークンです。このキーは STRING です。
各コンポーネントの値は、対応する組み込みイベント定義またはインスタンスから取り込まれます。
監査メッセージの引数 
監査メッセージでは、ローカライズされたテキストメッセージの生成に使用される引数とその操作を実行したエンティティの名前が提供されます。置換名/値のペアの ValueCollection を使用して、ローカライズされたテキストメッセージが生成されます。この情報はイベントインスタンスの eventData フィールドから取り込まれます。監査メッセージには、監査メッセージで取り上げられている操作を実行している ThingWorx エンティティ (Thing またはユーザーなど) が関連付けられています。
監査カテゴリ 
すべての監査エントリが監査カテゴリに関連付けられています。監査カテゴリにより、監査データをフィルタして、特定のカテゴリの操作でのアクティビティの傾向を把握するのが非常に簡単になります。
各監査エントリに 1 つのカテゴリがあり、監査エントリとともに文字列として保存されています。表示される監査カテゴリ文字列はローカライズされています。ユーザーの指定ロケールに基づいて、監査カテゴリが適切な言語で表示されます。
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
コラボレーションエンティティに関連する操作。
ブログと Wiki に対する作成、編集、削除操作。
カテゴリキー: audit.AuditCategory.Collaboration
DATA_MANAGEMENT
データの管理または使用に関連する操作。
データに対する削除操作。
カテゴリキー: audit.AuditCategory.DataManagement
DATA_STORAGE
データストレージエンティティと関連サブシステムに関連する操作。
データテーブル、ストリーム、その他のデータストレージエンティティに対する作成、編集、削除操作。
カテゴリキー: audit.AuditCategory.DataStorage
DEVICE_COMMUNICATION
エッジデバイスとの通信に関連する操作。
WSCommunicationSubsystemCloseWebSocketSessions サービスが監査されます。このサービスの詳細については、「WebSocket 通信サブシステム」のトピックのサービスのセクションを参照してください。
* 
エージェントとのリモートセッションおよびエージェントへの SCM パッケージのデプロイメントに関する監査メッセージ用に、それぞれの監査カテゴリ REMOTE_ACCESS および SCM が関連操作の監査メッセージを提供します。
カテゴリキー: audit.AuditCategory.DeviceCommunication
FILE_TRANSFER
ファイルのアップロードとダウンロードに関連する操作とイベント。
ファイル転送の場合、転送の正常な完了、転送のキャンセル、転送中のエラーの生成。
カテゴリキー: audit.AuditCategory.FileTransfer
IMPORT_EXPORT
ThingWorx との間のデータのインポートとエクスポートに関連する操作。
モデルとデータのインポート/エクスポート操作。
拡張機能のインポート。
カテゴリキー: audit.AuditCategory.ImportExport
LIFECYCLE
Thing 固有のイベント (ThingEnable など) に関連する操作。
対応するサービスが Thing で呼び出されると、ThingEnableThingDisable などのイベントが生成されます。ThingWorx Platform の起動時と再起動時のロードにより、ThingStart イベントの監査はデフォルトでは無効になっています。
カテゴリキー: audit.AuditCategory.Lifecycle
メッセージキー:
com.thingworx.things.Thing.ThingStart.Audit
audit.EntityLifecycle.Enable
audit.EntityLifecycle.Disable
Thing Group を含むすべてのエンティティに関連する作成操作と削除操作
監査対象の操作とメッセージは次のとおりです。
ユーザー X が新規 Thing Group Y を作成 - 監査メッセージは「type "name" が作成されました」。
ユーザー X が Thing Group Y を削除 - 監査メッセージは「type "name" が削除されました」。
ユーザー X が Thing Group Y のすべての子メンバーを削除 - 監査メッセージは「typename のすべての子メンバーを削除しました」。
カテゴリキー: audit.LifeCycle
メッセージキー:
audit.LifeCycle.Created
audit.LifeCycle.Deleted
audit.LifeCycle.DeletedAll
THINGGROUPMEMBERSHIPS
Thing Group メンバーシップに関連する追加操作
監査対象の操作と監査メッセージは次のとおりです。
ユーザー X が Thing Group Y の子メンバーとして Thing 123 を追加 - 監査メッセージは「Thing thingName を Thing Group thingGroupName の子メンバーとして追加しました」
ユーザー X が Thing Group Y の子メンバーとして Thing Group ABC を追加 - 監査メッセージは「Thing Group thingGroupName1 を Thing Group thingGroupName2 の子メンバーとして追加しました」
カテゴリキー: audit.ThingGroupMemberships
メッセージキー:
com.thingworx.thinggroups.ThingGroup.AddedThingAsChildMember
com.thingworx.thinggroups.ThingGroup.AddedThingGroupAsChildMember
Thing Group メンバーシップに関連する削除操作
監査対象の操作と監査メッセージは次のとおりです。
ユーザー X が Thing Group Y の子メンバーとしての Thing 123 を削除 - 監査メッセージは「ThingGroup thingGroupName の子メンバーとしての Thing thingName を削除しました」
ユーザー X が Thing Group Y の子メンバーとしての Thing Group ABC を削除 - 監査メッセージは「ThingGroup thingGroupName2 の子メンバーとしての ThingGroup thingGroupName1 を削除しました」
ユーザー X が Thing Group Y のすべての子メンバー (Thing および ThingGroup) を削除 - 監査メッセージは「ThingGroup thingGroupName のすべての子メンバーを削除しました」
カテゴリキー: audit.ThingGroupMemberships
メッセージキー:
com.thingworx.thinggroups.ThingGroup.DeletedThingAsChildMember
com.thingworx.thinggroups.ThingGroup.DeletedThingGroupAsChildMember
com.thingworx.thinggroups.ThingGroup.DeletedAllChildMembers
MODELING
モデリングエンティティに関連する操作。エンティティが作成されると、新しいエンティティに割り当てられた所有者が記載された監査メッセージが生成されます。エンティティの所有者は、そのエンティティを作成したユーザーの名前に自動的に設定されます。
以下のいずれかの方法によってエンティティが作成されると、監査メッセージが生成されます。
Composer での PUT 呼び出し
Create API、Clone API、または SetOwner API の呼び出し
監査サブシステムを表示する権限を持つすべてのユーザーが、所有権の変更に関するレポートを表示できます。
Thing、Thing Template、Thing Shape、データシェイプ、ネットワーク、プロジェクト、モデル、タグに対する作成、編集、削除操作。
監査メッセージのフォーマットは以下のとおりです。
"Created <Source Type> <Source> with owner <username of owner>."
ここで、
Source Type は、作成されたエンティティの種類です。たとえば、Thing です。
Source は、新しいエンティティの名前です。
owner は、作成操作を実行しているユーザーの username を示します。
カテゴリキー: audit.AuditCategory.Modeling
メッセージキー: audit.EntityLifecycle.Create
REMOTE_ACCESS
リモートアクセス (トンネリング) に関連する操作。
ユーザーセッションの開始 - 監査メッセージには、そのセッションのユーザー ID と開始時刻が含まれます。
ユーザーセッションの停止 - 監査メッセージには、そのセッションのユーザー ID、終了時刻、および合計時間が含まれます。
カテゴリキー: audit.AuditCategory.RemoteAccess
SCM (Software Content Management)
パッケージ、デプロイメント、コンフィギュレーション変更に関連する操作。
パッケージの作成、編集、パブリッシング、削除。デプロイメントの作成、開始、遷移、削除。テストと実際のデプロイメント、テストデプロイメントに指定されているアセット、パッケージインストールの成否が含まれます。自動パージと同時デプロイメントのコンフィギュレーション変更。
ユーザーが直接デプロイメントを開始した場合、パッケージデプロイメントの情報にはユーザー ID が含まれます。デプロイメントがプラットフォームによって開始された場合、パッケージをデプロイしたエンティティとして SYSTEM がリストされます。
カテゴリキー: audit.AuditCategory.SoftwareManagement
SECURITY_CONFIGURATION
ユーザー、ユーザーグループ、Thing Group、組織、アプリケーションキー、ディレクトリサービス、認証システムなど、セキュリティエンティティとアクセス許可に関連する操作。
エンティティの所有権が変わるたびに、監査メッセージが生成されます。所有者の変更は、Composer、API 呼び出し、またはエンティティ XML ファイルのインポートによって実行できます。
以下の場合、所有権監査メッセージは生成されません。
監査サブシステムが無効になっている。
所有権の変更なしでエンティティが更新された。
SetOwner API 呼び出しによって、すでにそのエンティティの所有者である人と同じ所有者が設定された。
ユーザー、ユーザーグループ、Thing Group、組織、アプリケーションキー、ディレクトリサービス、認証システムに対する作成、編集、削除操作。
ユーザーグループ変更の追跡を有効にします。ユーザーまたはユーザーグループが別のユーザーグループのメンバーとして追加された場合には必ず、audit.Groups.Added エントリが生成されます。ユーザーまたはユーザーグループがユーザーグループから除去された場合には必ず、audit.Groups.Removed エンティティが生成されます。
エンティティアクセス許可の変更 (すべてのエンティティタイプ)。上記のセキュリティコンテキストの切り替えの監査のセクションを参照してください。
所有権変更監査メッセージの一般的なフォーマットは以下のとおりです。
"Owner for <Source Type> <Source> changed from <original owner username> to <new owner username>."
ここで、
Source Type は、所有者が変更されたエンティティの種類です。たとえば、Thing です。
Source は、所有者が変更されたエンティティの名前です。
original owner username は、変更操作を実行しているユーザーの username を示します。
new owner username は、新しい所有者の username です。
カテゴリキー: audit.AuditCategory.SecurityConfiguration
メッセージキー:
audit.Groups.Added
audit.Groups.Removed
audit.entity.ownership.change
ユーザー管理サブシステムでの管理者による Thing Group 表示アクセス許可の委任の有効化と無効化
監査対象の操作と監査メッセージは次のとおりです。
ユーザー管理サブシステムで管理者が Thing Group 表示アクセス許可の委任を有効化 - 監査メッセージは「ThingGroup 表示のアクセス許可の委任が有効」
ユーザー管理サブシステムで管理者が Thing Group 表示アクセス許可の委任を無効化 - 監査メッセージは「ThingGroup 表示のアクセス許可の委任が無効」
カテゴリキー: audit.AuditCategory.SecurityConfiguration
メッセージキー:
com.thingworx.thinggroups.ThingGroup.VisibilityPermissionDelegationEnabled
com.thingworx.thinggroups.ThingGroup.VisibilityPermissionDelegationDisabled
SYSTEM
システムエンティティに関連する操作。
ローカライズテーブル、リソース、サブシステム、ログに対する作成、編集、削除操作。
サブシステムのコンフィギュレーションの変更および開始、停止、再起動などの操作。サブシステムに関連するすべてのエントリはこのカテゴリに属し、その他のカテゴリには表示されません。
* 
再起動操作では、再起動が呼び出されたときのサブシステムの状態に応じて、2 つまたは 3 つの監査メッセージが生成されます。サブシステムのステータスが RUNNING である場合、再起動、停止、開始ごとに 1 つずつ、合計 3 つのメッセージが書き込まれます。サブシステムのステータスが RUNNING ではない場合、再起動と開始ごとに 1 つずつ、合計 2 つのメッセージが書き込まれます。この場合、停止操作は実行されません。
カテゴリキー: audit.AuditCategory.System
VISUALIZATION
ビジュアリゼーションエンティティに関連する操作。
マッシュアップ、マスター、ガジェット、ダッシュボード、メニュー、メディアエンティティ、スタイル定義、状態定義に対する作成、編集、削除操作。
カテゴリキー: audit.AuditCategory.Visualization
監査イベントの有効化と無効化 
ThingWorx Platform が再起動すると、すべての Thing が ThingStart イベントをトリガーします。これらのイベントをすべて監査すると、プラットフォームの起動に時間がかかります。この状況を回避するため、LIFECYCLE カテゴリ内の ThingStart イベントはデフォルトで無効になっています。次のテーブルに、デフォルトで無効になっているその他の監査メッセージを示します。
デフォルトで無効になっている監査メッセージ
監査カテゴリ
監査メッセージキー
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-settins.json ファイルを検索および編集して適切なコンフィギュレーションを追加するアクセス許可を持つユーザーが必要です。
* 
Audit セクションは、PlatformSettingsConfig の兄弟ノードとして JSON エントリに追加する必要があります。これは PlatformSettingsConfig ノードの前または後ろに配置できますが、同じノードレベルにある必要があります。
特定のイベントの監査を有効または無効にするには、次の操作を行います。
1. ThingWorxPlatform ディレクトリに移動し、テキストエディタで platform-settings.json ファイルを開きます。
2. ファイルの末尾に、"Audit" という新規グループを作成し、以下のパターンに従って、各カテゴリとイベントメッセージに対応するグループとキーを追加します。
カテゴリごとに、"Enabled" グループまたは "Disabled" グループ内に独自の "CategoryKey" エントリが必要です。
各カテゴリキーの後ろに "MessageKeys" エントリが必要です。カテゴリ全体を有効または無効にするには、カテゴリキーとメッセージキーの両方を以下の例のようにする必要があります。

"CategoryKey" : "audit.AuditCategory.Audit"
"MessageKeys" : ["ALL"]
"CategoryKey" は、テーブル表 122に示されているカテゴリのキー文字列をとります。例: audit.AuditCategory.Lifecycle
"CategoryKey" の値は必ず二重引用符で区切ります。行は必ずコンマで終了します。
"MessageKeys" エントリでは、メッセージキーが 1 つだけ存在するか、複数のメッセージキーがあるかにかかわらず、値を必ず角括弧で囲みます。複数のメッセージキーがある場合、最後のキーを除く各キーの末尾にコンマを使用します。
"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 への監査済みイベントセクションの追加」のセクションを参照してください。
これは役に立ちましたか?