監査

概要

監査インターフェースは以下の3つの要素で構成されます。

  • 「監査API」リソースは、「特定のユーザーらのすべての記録」、または「特定のアプリケーションからのすべての記録」などの基準による監査記録のクエリが可能となるよう、監査記録のコレクションにURIおよびURIテンプレートを返します。
  • 「監査記録コレクション」リソースは監査記録を読み出し、新規監査記録の作成を可能にします。
  • 「監査記録」リソースは、個別にクエリを受ける監査記録を表わします。

注記:すべてのPUT/POSTリクエストについて、acceptヘッダーを使用すべきであり、さもなければ空の応答本体が返されます。

監査情報

  • アラームの変更
  • オペレーションの変更
  • 2要素認証によるログイン試行
  • スマートルールの変更
  • CEPモジュールの変更
  • ユーザー、グループパーミッションの変更

監査API

AuditRecords [application/vnd.com.nsn.cumulocity.auditApi+json]

名称 種別 発生回数 説明
self URL 1 このリソースへのリンク
auditRecords AuditRecordCollection 1 すべての監査記録のコレクション
auditRecordsForType AuditRecordCollection URI template 1 特定種別の監査記録すべてから成る読み取り専用コレクション(プレースホルダ:{type})。
auditRecordsForUser AuditRecordCollection URI template 1 特定のユーザーに関する監査記録すべてから成る読み取り専用コレクション(プレースホルダ:{user})。
auditRecordsForApplication AuditRecordCollection URI template 1 特定のアプリケーションに関する監査記録すべてから成る読み取り専用コレクション(プレースホルダ:{application})。
auditRecordsForUserAndType AuditRecordCollection URI template 1 特定のユーザーおよび種別の監査記録すべてから成る読み取り専用コレクション(プレースホルダ:{user}および{type})。
auditRecords ???ForUserAndApplication AuditRecordCollection URI template 1 特定のユーザーおよびアプリケーションに関する監査記録すべてから成る読み取り専用コレクション(プレースホルダ:{user}および{application})。
auditRecords ???ForTypeAndApplication AuditRecordCollection URI template 1 特定の種別およびアプリケーションに関する監査記録すべてから成る読み取り専用コレクション(プレースホルダ:{type}および{application})。
auditRecords ???ForTypeAndUserAndApplication AuditRecordCollection URI template 1 特定の種別、ユーザーおよびアプリケーションに関する監査記録すべてから成る読み取り専用コレクション(プレースホルダ:{type}、{user}および{application})。

監査APIリソースをGETする

応答本体: application/vnd.com.nsn.cumulocity.auditApi+json

要求されるロール: ROLE_AUDIT_READ

リクエスト例:監査APIリソースを読み出す

GET /audit
Host: ...
Authorization: Basic ...

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.auditApi+json;ver=...
Content-Length: ...
{
  "self" : "<<AuditAPI URL>>",
  "auditRecords" : { "self" :"<<AuditCollection URL>>" },
  "auditRecordsForType" : "<<AuditCollection URL>>?type={type}",
  "auditRecordsForUser" : "<<AuditCollection URL>>?user={user}",
  "auditRecordsForApplication" : "<<AuditCollection URL>>?application={application}",
  "auditRecordsForUserAndType" : "<<AuditCollection URL>>?user={user}&type={type}",
  "auditRecordsForUserAndApplication" : "<<AuditCollection URL>>?user={user}&application={application}",
  "auditRecordsForTypeAndApplication" : "<<AuditCollection URL>>?type={type}&application={application}",
  "auditRecordsForTypeAndUserAndApplication" : "<<AuditCollection URL>>?type={type}&user={user}&application={application}"
}

監査記録コレクション

AuditRecordCollection [application/vnd.com.nsn.cumulocity.auditRecordCollection+json]

名称 種別 発生回数 説明
self URI 1 このリソースへのリンク
auditRecords AuditRecord 0..n 監査記録のリスト(下記参照)
statistics PagingStatistics 1 ページング統計に関する情報
prev URI 0..1 監査記録の潜在的な前のページへのリンク
next URI 0..1 監査記録の潜在的な次のページへのリンク

監査記録の「ソース」ブジェクトは「id」および「self」のプロパティを含みます。」

POST - 新規監査記録を作成する

リクエスト本体:監査記録

応答本体:監査記録

要求されるロール: ROLE_AUDIT_ADMIN

リクエスト例:

POST /audit/auditRecords
Host: ...
Authorization: Basic ...
Content-Length: ...
Content-Type: application/vnd.com.nsn.cumulocity.auditRecord+json;ver=...
{
  "type" : "com_cumulocity_audit_LoginFailure",
  "time" : "2011-09-06T12:03:27.845Z",
  "text" : "Login failed after 3 attempts.",
  "user" : "Spock",
  "application" : "Omniscape",
  "activity" : "login",
  "severity" : "warning"
}

応答例:

HTTP/1.1 201 Created
Content-Type: application/vnd.com.nsn.cumulocity.auditRecord+json;ver=...
Content-Length: ...
Location: <<URL of new audit record>>
{
  "id" : "123",
  "self" : "<<URL of new audit record>>",
  "creationTime" : "2011-09-06T12:03:27.927Z",
  "type" : "com_cumulocity_audit_LoginFailure",
  "time" : "2011-09-06T12:03:27.845Z",
  "text" : "Login failed after 3 attempts.",
  "user" : "Spock",
  "application" : "Omniscape",
  "activity" : "login",
  "severity" : "warning"
}

新規監査記録の「id」と「creationTime」はサーバーによって生成され、応答においてPOSTオペレーションへ返されます。

監査記録をGETする

応答本体:監査記録コレクション

要求されるロール: ROLE_AUDIT_READ

リクエスト例:監査記録を読み出す

GET /audit/auditRecords
Host: ...
Authorization: Basic ...
Accept: application/vnd.com.nsn.cumulocity.auditRecordCollection+json;

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.auditRecordCollection+json;ver=...
Content-Length: ...
{
  "self" : "",
  "auditRecords" : [
    {
      "id" : "123",
      "self" : "<<AuditRecord 123 URL>>",
      "creationTime" : "2011-09-06T12:03:27.927Z",
      "type" : "com_cumulocity_audit_LoginFailure",
      "time" : "2011-09-06T12:03:27.845Z",
      "text" : "Login failed after 3 attempts.",
      "user" : "Spock",
      "application" : "Omniscape",
      "activity" : "login",
      "severity" : "warning"
    }
  ],
  "statistics" : {
    "totalPages" : 3,
    "pageSize" : 5,
    "currentPage" : 1
  }
}

監査ログAPIに対して範囲のクエリ、例えばdateFromおよびdateToによるクエリを実行する場合、監査記録は古いものから順に返されます。 クエリパラメータ「revert=true」をリクエストURLに追加することにより、順序を変えることができます。

DELETE - 監査記録コレクションをDELETEする

DELETEメソッドは監査記録コレクションの削除を可能にします。適用可能なクエリパラメータはGETメソッドの場合と同じです。

リクエスト本体:N/A

応答本体:N/A

要求されるロール: ROLE_AUDIT_ADMIN

リクエスト例:

 DELETE: /audit/auditRecords ....
 Host: ...
 Authorization: Basic ...

応答例:

HTTP/1.1  204 NO CONTENT

監査記録

AuditRecord [application/vnd.com.nsn.cumulocity.auditRecord+json]

名称 種別 発生回数 説明 PUT/POST
id String 1 この監査記録を一意に識別します。 いいえ
self URI 1 このリソースへのリンク いいえ
creationTime String 1 監査記録がデータベース内で作成された時間。 いいえ
type String 1 この監査記録の種別を識別します。 POST:必須、PUT:非必須
time String 1 監査記録の時間。 POST:必須、PUT:非必須
text String 1 監査記録を説明するテキスト。 POST:必須、PUT:非必須
source ManagedObject 1 監査記録の発生源となった任意選択的マネージドオブジェクト。オブジェクトは「id」および「self」のプロパティを含みます。 POST:必須、PUT:非必須
user String 1 監査対象アクションに責任を負うユーザー。 任意
application String 1 監査対象アクションの実行に使用されたアプリケーション。 任意
activity String 1 行われた活動。 POST:必須、PUT:任意
severity String 1 アクションの重大度:極めて重大("critical")、重大("major")、軽微("minor")、警告("warning")。 POST:必須、PUT:任意
changes Set 0..1 実施された変更を表わすオブジェクトから成る任意のコレクション。 いいえ
* Object 0..n 監査記録の付加的プロパティ。 任意

注記:ソース("source")はマネージドオブジェクトの「id」と「self」を保持するだけでなく、「オペレーション」型の場合は「operation id」、「アラーム」型の場合は「alarm Id」も保持します。そのような場合、ソースにおける"self"が示すリンク先はソースにおけるマネージドオブジェクトを取得すると予想されるクライアントに支障をきたさないよう維持されます。

監査記録をGETする

応答本体:監査記録

要求されるロール: ROLE_AUDIT_READ

リクエスト例:特定の監査記録をGETする

GET /audit/auditRecords/<<recordId>>
Host: ...
Authorization: Basic ...
Accept: application/vnd.com.nsn.cumulocity.auditRecord+json;

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.auditRecord+json;ver=...
Content-Length: ...
{
  "id" : "123",
  "self" : "<<AuditRecord URL>>",
  "creationTime" : "2011-09-06T12:03:27.927Z",
  "type" : "com_cumulocity_audit_LoginFailure",
  "time" : "2011-09-06T12:03:27.845Z",
  "text" : "Login failed after 3 attempts.",
  "user" : "Spock",
  "application" : "Omniscape",
  "activity" : "login",
  "severity" : "warning"
}