![]() | |
Sun Java™ System Identity Manager 7.1 管理ガイド |
第 12 章
監査ログこの章では、Sun JavaTM System Identity Manager 監査システムでのイベントの記録方法について説明します。説明する内容は次のとおりです。
概要Identity Manager 監査の目的は、誰が何をいつどの Identity Manager オブジェクトに対して行なったかを記録することです。
監査イベントは、1 つ以上のパブリッシャーによって処理されます。デフォルトでは、Identity Manager はリポジトリパブリッシャーを使用してリポジトリに監査イベントを記録します。管理者は、監査グループを使用してフィルタすることにより、記録する監査イベントのサブセットを選択できます。各パブリッシャーには、最初に有効にされた 1 つ以上の監査グループを割り当てることができます。
注
ユーザーの違反の監視および管理の詳細については、第 11 章「アイデンティティー監査」を参照してください。
Identity Manager 監査の機能ほとんどのデフォルトの監査は、内部 Identity Manager コンポーネントにより実行されます。ただし、ワークフローまたは Java コードからイベントを生成できるようにしているインタフェースもあります。
デフォルトの Identity Manager 監査インストゥルメンテーションでは、次の 4 つの主要領域に焦点が当てられます。
- プロビジョニングツール − プロビジョニングツールと呼ばれる内部コンポーネントは監査イベントを生成します。
- ビューハンドラ − ビューアーキテクチャーでは、ビューハンドラが監査レコードを生成する必要があります。ビューハンドラは常に、オブジェクトの作成または変更時に監査を行います。
- セッション − セッションメソッド (checkinObject、createObject、runTask、login、logout など) は、監査処理の終了後に監査レコードを作成します。ほとんどのインストゥルメンテーションはビューハンドラにプッシュされます。
- ワークフロー − デフォルトでは、承認ワークフローだけが監査レコードを生成するように設定されています。これらは、リクエストが承認または却下されたときに、監査イベントを生成します。ワークフロー機能は、com.waveset.session.WorkflowServices アプリケーションを介して、監査ロガーとやり取りします。
イベントの作成Identity Manager は内部監査を扱いますが、場合によっては、カスタムワークフローから監査イベントをログする必要があります。
ワークフローからの監査
com.waveset.session.WorkflowServices アプリケーションを使用して、ワークフロープロセスから監査イベントを生成します。表 12-1 では、このアプリケーションで利用できる引数について説明しています。
デフォルトのオブジェクト、アクション、ステータスの名前のリストについては、表 12-18 を参照してください。
例
コード例 12-1 は単純なワークフローアクティビティーを示します。ここでは、ResourceAdministrator が実行した ADSIResource1 という名前のリソース削除アクティビティーのログを記録するイベントが生成されます。
コード例 12-2 では、承認プロセスで各ユーザーが適用した変更を詳細なレベルまで追跡するワークフローに、特定の属性を追加する方法を示しています。この追加は通常、ユーザーからの入力をリクエストする ManualAction のあとに行われます。
ACTUAL_APPROVER は、実際に承認を実行した人物に基づいて、フォームおよびワークフロー (承認テーブルから承認する場合) で設定されます。APPROVER は、それが割り当てられた人物を識別します。
コード例 12-2 承認プロセスでの変更追跡への属性の追加
<Action name='Audit the Approval' application='com.waveset.session.WorkflowServices'>
<Argument name='op' value='audit'/>
<Argument name='type' value='User'/>
<Argument name='name' value='$(CUSTOM_DESCRIPTION)'/>
<Argument name='action' value='approve'/>
<Argument name='accountId' value='$(accountId)'/>
<Argument name='status' value='success'/>
<Argument name='resource' value='$(RESOURCE_IF_APPLICABLE)'/>
<Argument name='loginApplication' value='$(loginApplication)'/>
<Argument name='attributes'>
<map>
<s>fullname</s><ref>user.accounts[Lighthouse].fullname</ref>
<s>jobTitle</s><ref>user.accounts[Lighthouse].jobTitle</ref>
<s>location</s><ref>user.accounts[Lighthouse].location</ref>
<s>team</s><ref>user.waveset.organization</ref>
<s>agency</s><ref>user.accounts[Lighthouse].agency</ref>
</map>
</Argument>
<Argument name='originalAttributes'>
<map>
<s>fullname</s>
<s>User's previous fullname</s>
<s>jobTitle</s>
<s>User's previous job title</s>
<s>location</s>
<s>User's previous location</s>
<s>team</s>
<s>User's previous team</s>
<s>agency</s>
<s>User's previous agency</s> </map>
</Argument>
<Argument name='attributes'>
<map>
<s>firstname</s>
<s>Joe</s>
<s>lastname</s>
<s>New</s>
</map>
</Argument>
<Argument name='subject'>
<or>
<ref>ACTUAL_APPROVER</ref>
<ref>APPROVER</ref>
</or>
</Argument>
<Argument name='approver' value='$(APPROVER)'/>
</Action>
監査設定監査設定は、1 つ以上のパブリッシャーと定義済みの複数のグループから構成されます。
監査グループは、オブジェクトタイプ、アクション、アクションの結果に基づいて、すべての監査イベントのサブセットを定義します。各パブリッシャーには 1 つ以上の監査グループが割り当てられます。デフォルトで、すべての監査グループにリポジトリパブリッシャーが割り当てられます。
監査パブリッシャーは、特定の監査出力先に監査イベントを配信します。デフォルトのリポジトリパブリッシャーは、監査レコードをリポジトリに書き込みます。それぞれの監査パブリッシャーには、実装専用のオプションを指定できます。監査パブリッシャーには、テキストフォーマッタを割り当てることができます。テキストフォーマッタは監査イベントのテキスト表現を提供します。
監査設定 (#ID#Configuration:AuditConfiguration) オブジェクトは、sample/auditconfig.xml ファイルで定義されます。この設定オブジェクトには、汎用オブジェクトである拡張機能があります。その最上位には次の属性があります。
filterConfiguration
filterConfiguration 属性は、1 つ以上のイベントがイベントフィルタを通過できるようにするために使用されるイベントグループをリストします。filterConfiguration 属性にリストされたそれぞれのグループには、表 12-2 にリストした属性が含まれます。
表 12-2 filterConfiguration の属性
属性
種類
説明
groupName
String
イベントグループ名
displayName
String
グループ名を示すメッセージカタログキー
enabled
String
グループ全体が有効か無効かを示すブール型のフラグ。この属性は、フィルタリングを行うオブジェクトを最適化します。
enabledEvents
List
グループがどのイベントを有効にするかを示す汎用オブジェクトのリスト。ログを有効にするには、イベントをリストする必要があります。リストされた各オブジェクトには次の属性が必要になります。
コード例 12-3 に、デフォルトのリソース管理グループを示します。
コード例 12-3 デフォルトのリソース管理グループ
<Object name='Resource Management'>
<Attribute name='enabled' value='true'/>
<Attribute name='displayName'
value='UI_RESOURCE_MGMT_GROUP_DISPLAYNAME'/>
<Attribute name='enabledEvents'>
<List>
<Object>
<Attribute name='objectType' value='Resource'/>
<Attribute name='actions' value='ALL'/>
<Attribute name='results' value='ALL'/>
</Object>
<Object>
<Attribute name='objectType' value='ResourceObject'/>
<Attribute name='actions' value='ALL'/>
<Attribute name='results' value='ALL'/>
</Object>
</List>
</Attribute>
</Object>
Identity Manager には、次のデフォルトのイベントグループが用意されています。
Identity Manager 管理インタフェースの「イベント監査」ページ (configure/auditeventconfig.jsp) から、それぞれのグループを設定できます。このページでは、成功のイベントや失敗のイベントをグループごとに設定できます。グループの enabledEvents の追加や変更は、このインタフェースではサポートされていませんが、Identity Manager デバッグページを使用して行うことができます。
デフォルトのイベントグループと、それによって有効にされるイベントについては、以降の節で説明します。
アカウント管理
このグループはデフォルトで有効になっています。
表 12-3 デフォルトのアカウント管理イベントグループ
種類
アクション
Resource Account
作成、更新、削除、有効化、無効化、却下、承認、名前の変更
Identity Manager Account
作成、更新、削除、有効化、無効化、名前の変更
コンプライアンス管理
このグループはデフォルトで有効になっています。
表 12-4 デフォルトのコンプライアンス管理イベントグループ
種類
アクション
AuditPolicy
すべてのアクション
ComplianceViolation
すべてのアクション
Remediation Workflow
すべてのアクション
設定管理
このグループはデフォルトで有効になっています。
表 12-5 デフォルトの設定管理イベントグループ
種類
アクション
Configuration
すべてのアクション
UserForm
すべてのアクション
Rule
すべてのアクション
EmailTemplate
すべてのアクション
LoginConfig
すべてのアクション
Policy
すべてのアクション
XMLData
Import
Log
すべてのアクション
Identity Manager ログイン/ログオフ
このグループはデフォルトで有効になっています。
表 12-6 デフォルトの Identity Manager ログイン/ログオフイベントグループ
種類
アクション
User
ログイン、ログオフ、クレデンシャル有効期限
Administrator
ログイン、ログオフ、クレデンシャル有効期限
パスワード管理
このグループはデフォルトで有効になっています。
リソース管理
このグループはデフォルトで有効になっています。
表 12-8 デフォルトのリソース管理イベントグループとイベント
種類
アクション
Resource
すべてのアクション
Resource Object
すべてのアクション
ResourceForm
すべてのアクション
ResourceAction
すべてのアクション
AttrParse
すべてのアクション
ロール管理
このグループはデフォルトで無効になっています。
セキュリティー管理
このグループはデフォルトで有効になっています。
表 12-10 デフォルトのセキュリティー管理イベントグループとイベント
種類
アクション
ObjectGroup
すべてのアクション
AdminGroup
すべてのアクション
Administrator
すべてのアクション
EncryptionKey
すべてのアクション
タスク管理
このグループはデフォルトで無効になっています。
表 12-11 タスク管理イベントグループとイベント
種類
アクション
TaskInstance
すべてのアクション
TaskDefinition
すべてのアクション
TaskSchedule
すべてのアクション
TaskResult
すべてのアクション
ProvisioningTask
すべてのアクション
Identity Manager 外部での変更
このグループはデフォルトで無効になっています。
Service Provider Edition
このグループはデフォルトで有効になっています。
表 12-13 Service Provider Edition イベントグループとイベント
種類
アクション
IDMXUser
作成、変更、削除、ユーザー名の復旧、チャレンジ応答、認証回答の更新、操作前と操作後のコールアウト
extendedTypes
com.waveset.object.Type クラスに追加する新しいタイプをそれぞれ監査できます。新しいタイプには一意の 2 文字のデータベースキーが割り当てられ、このキーはデータベースに格納されます。新しいタイプはすべて、さまざまな監査レポートインタフェースに追加されます。フィルタされずにデータベースにログされる新しいタイプは、監査イベントグループの enabledEvents 属性にそれぞれ追加する必要があります (enabledEvents 属性の説明を参照)。
関連付けられた com.waveset.objectType を持たない対象を監査したり、既存のタイプをさらに細かく表したりする必要が生じる場合があります。
たとえば、WSUser オブジェクトは、ユーザーのアカウント情報をすべてリポジトリに格納します。監査プロセスは、各イベントを USER タイプとしてマークを付けるのではなく、WSUser オブジェクトを 2 つの異なる監査タイプ (Resource Account および Identity Manager Account) に分割します。このようにオブジェクトを分割することにより、監査ログでの特定のアカウント情報が検索しやすくなります。
extendedObjects 属性に追加することによって、拡張された監査タイプを追加します。それぞれの拡張されたオブジェクトには、次の表にリストした属性が必要になります。
表 12-14 拡張されたオブジェクトの属性
引数
種類
説明
name
String
タイプの名前。これは AuditEvents の作成時とイベントフィルタリング中に使用されます。
displayName
String
タイプの名前を表すメッセージカタログキー。
logDbKey
String
ログテーブルにこのオブジェクトを格納するときに使用する 2 文字のデータベースキー。詳細については、「ログデータベースキー」を参照してください。
supportedActions
List
オブジェクトタイプがサポートするアクション。この属性は、ユーザーインタフェースから監査クエリーを作成するときに使用されます。この値が NULL である場合、すべてのアクションが、このオブジェクトタイプのクエリーで取り得る値として表示されます。
mapsToType
String
(オプション) 該当する場合、このタイプにマップされる com.waveset.object.Type の名前。この属性は、イベントでまだ指定されていない場合、オブジェクトの組織のメンバーシップを解決しようとするときに使用されます。
organizationalMembership
List
(オプション) このタイプのイベントにまだ組織のメンバーシップが割り当てられていない場合、このイベントを配置する組織 ID のデフォルトのリスト。
すべての顧客固有のキーには # の記号を先頭に付け、新しい内部キーが追加されたときにキーが重複するのを防止します。
コード例 12-4 に、拡張タイプの Identity Manager アカウントを示します。
コード例 12-4 拡張タイプの Identity Manager アカウント
<Object name='LighthouseAccount'>
<Attribute name='displayName' value='LG_LIGHTHOUSE_ACCOUNT'/>
<Attribute name='logDbKey' value='LA'/>
<Attribute name='mapsToType' value='User'/>
<Attribute name='supportedActions'>
<List>
<String>Disable</String>
<String>Enable</String>
<String>Create</String>
<String>Modify</String>
<String>Delete</String>
<String>Rename</String>
</List>
</Attribute>
</Object>
extendedActions
監査アクションは通常、com.waveset.security.Right オブジェクトにマップします。新しい Right オブジェクトを追加するときに、一意の 2 文字の logDbKey を指定する必要があります。これはデータベースに格納されます。監査する必要のある特定のアクションに対応する権利がない状況に遭遇することがあります。extendedActions 属性のオブジェクトのリストに追加することにより、アクションを拡張できます。
それぞれの extendedActions オブジェクトは、表 12-15 で示した属性を含んでいる必要があります。
表 12-15 extendedAction の属性
属性
種類
説明
name
String
アクションの名前。これは AuditEvents の作成時とイベントのフィルタ中に使用されます。
displayName
String
アクションの名前を表すメッセージカタログキー。
logDbKey
String
ログテーブルにこのアクションを格納するときに使用する 2 文字のデータベースキー。
詳細については、「ログデータベースキー」を参照してください。
すべての顧客固有のキーには # の記号を先頭に付け、新しい内部キーが追加されたときにキーが重複するのを防止します。
コード例 12-5 に、ログアウトのアクションを追加する例を示します。
コード例 12-5 ログアウトのアクションの追加
<Object name='Logout'>
<Attribute name='displayName' value='LG_LOGOUT'/>
<Attribute name='logDbKey' value='LO'/>
</Object>
extendedResults
監査のタイプおよびアクションを拡張する以外に、結果を追加できます。デフォルトで、成功と失敗の 2 つの結果があります。extendedResults 属性のオブジェクトのリストに追加することにより、結果を拡張できます。
それぞれの extendedResults オブジェクトは、表 12-16 で示した属性を含んでいる必要があります。
表 12-16 extendedResults の属性
属性
種類
説明
name
String
結果の名前。これは AuditEvents でのステータスの設定時とイベントのフィルタ中に使用されます。
displayName
String
結果の名前を表すメッセージカタログキー。
logDbKey
String
ログテーブルにこの結果を格納するときに使用する 1 文字のデータベースキー。予約済みの値については、「データベースキー」のタイトルの節を参照してください。
すべての顧客固有のキーには 0 〜 9 の範囲を使用して、新しい内部キーを追加するときにキーの重複を防止します。
publishers
パブリッシャーリストの各項目は汎用オブジェクトです。各パブリッシャーには次の属性があります。
表 12-17 publishers 属性
属性
種類
説明
class
String
パブリッシャークラスの名前。
displayName
String
パブリッシャーの名前を表すメッセージカタログキー。
description
String
パブリッシャーの説明。
filters
List
このパブリッシャーに割り当てられた監査グループのリスト。
formatter
String
テキストフォーマッタの名前 (存在する場合)。
options
List
パブリッシャーオプションのリスト。これらのオプションはパブリッシャーに固有のものです。このリストの各項目は、PublisherOption のマップ表現です。例については、sample/auditconfig.xml を参照してください。
データベーススキーマ監査データの格納に使用する Identity Manager データベースには次の 2 つのテーブルがあります。
waveset.log
ここでは、waveset.log テーブルで使用されるさまざまな列名とデータ型をリストします。データ型は、Oracle データベース定義から取得され、データベースごとに若干異なります。サポートされるすべてのデータベースのデータスキーマ値のリストについては、付録 C 「監査ログデータベーススキーマ」を参照してください。
いくつかの列値は、領域を最適化するために、キーとしてデータベースに格納されます。キー定義については、「ログデータベースキー」の節を参照してください。
- objectType CHAR(2) − 監査されているオブジェクトタイプを表す 2 文字のキー。
- action CHAR(2) − 実行されたアクションを表す 2 文字のキー。
- actionStatus CHAR(1) − 実行されたアクションの結果を表す 1 文字のキー。
- reason CHAR(2) − 障害が発生した場合に、ReasonDenied オブジェクトを記述するための 2 文字のデータベースキー。ReasonDenied は、メッセージカタログエントリをラップするクラスで、無効な資格や不十分な特権などの一般的なエラーに使用されます。
- actionDateTime VARCHAR(21) − 上記のアクションが行われる日時。この値はグリニッジ標準時で格納されます。
- objectName VARCHAR(128) − 操作中に影響を受けたオブジェクトの名前。
- resourceName VARCHAR(128) − 該当する場合、操作中に使用されたリソース名。リソースを参照しないイベントもありますが、多くの場合、操作の実行で使用したリソースをログすると、より詳しい詳細が得られます。
- accountName VARCHAR(255) − 該当する場合、影響を受けているアカウント ID。
- server VARCHAR(128) − アクションが実行されるサーバー (イベントロガーにより自動的に割り当て)。
- message VARCHAR(255) − エラーメッセージなど、アクションに関連するローカライズされたメッセージ。テキストはローカライズして格納されます。したがって国際化されません。
- interface VARCHAR(50) − 操作が実行された Identity Manager インタフェース (管理者、ユーザー、IVR、SOAP インタフェースなど)。
- acctAttrChanges VARCHAR(4000) − 作成および更新中に変更されたアカウント属性を格納します。属性変更フィールドは常に、リソースアカウントまたは Identity Manager アカウントオブジェクトの作成または更新中に設定されます。アクション中に変更されたすべての属性は、文字列としてこのフィールドに格納されます。データは NAME=VALUE NAME2=VALUE2 の形式です。このフィールドは、名前または値に対して "contains" SQL 文を実行して問い合わせることができます。
コード例 12-6 に acctAttrChanges 列の値を示します。
コード例 12-6 acctAttrChanges 列の値
COMPANY="COMPANY" DEPARTMENT="DEPT" DESCRIPTION="DSMITH
DESCRIPTION" FAX NUMBER="5122222222" HOME ADDRESS="12282
MOCKINGBIRD LANE" HOME CITY="AUSTIN" HOME PHONE="5122495555"
HOME STATE="TX" HOME ZIP="78729" JOB TITLE="DEVELOPER"
MOBILE PHONE="5125551212" WORK PHONE="5126855555"
EMAIL="someone@somecompany.COM" EXPIREPASSWORD="TRUE"
FIRSTNAME="DANIEL" FULLNAME="DANIEL SMITH" LASTNAME="SMITH"
- acctAttr01label-acctAttr05label VARCHAR(50) − これらの 5 つの追加 NAME スロットは、最高 5 つの属性を、大きな塊 (ブロブ) ではなく独立した列に格納されるように格上げできる列です。属性の格上げを行うには、リソーススキーマ設定ページの 「監査」列のチェックを有効にします。これにより、属性がデータマイニングに使用できるようになります。
- acctAttr01value-acctAttr05value VARCHAR(128) − ブロブ列ではなく、個別の列に格納されるように最高 5 つの属性を格上げできる 5 つの追加 VALUE スロット。
- parm01label-parm05label VARCHAR(50) − イベントに関連するパラメータの格納に使用される 5 つのスロット。これらの例は、Client IP と Session ID です。
- parm01value-parm05value VARCHAR(128) − イベントに関連するパラメータの格納に使用される 5 つのスロット。これらの例は、Client IP と Session ID です。
- id VARCHAR(50) − waveset.logattr テーブルで参照されるリポジトリによって各レコードに割り当てられた一意の ID。
- name VARCHAR(128) − 各レコードに割り当てられた生成名。
waveset.logattr
waveset.logattr テーブルは、イベントごとに組織のメンバーシップの ID を格納するために使用されます。このテーブルを使用して、組織別に監査ログの範囲が設定されます。
ログデータベースキーobjectType、アクション、actionStatus、および理由の列は、領域を節約するために、キーとしてデータベースに格納されています。
objectType、アクション、および結果
表 12-18 に、キーとしてデータベースに格納される objectType、アクション、および結果を示します。
表 12-18 キーとして格納される objectType、アクション、結果
objectType 名
DbKey
アクション名
DbKey
結果名
DbKey
Account
AN
Approve
AP
Success
S
Administrator
AD
Bypass Verify
BV
Failure
F
AdminGroup
AG
Cancel Reconcile
CR
Attribute Definition
AF
challengeResponse
CD
Application
AP
Change Password
CP
Capability
US
Create
CT
Configuration
CN
Connect
CO
Discovery
DS
Delete
DL
EmailTemplate
ET
Deprovision
DP
Extract
ER
Disable
DS
ExtractTask
EX
Disconnect
DC
Identity Manager Account
LA
Enable
EN
IDMXUser
UX
Execute
LN
LoadConfig
LD
Export
EP
LoadTask
LT
Import
IM
LoginConfig
LC
List
LI
Policy
PO
Load
LD
Provisioning Task
PT
Login
LG
Resource
RS
Update
MO
Resource Account
RA
Logout
LO
Resource Form
RF
Native Changes
NC
Resource Object
RE
Post Operation
PT
RiskReportTask
RR
Pre Operation
PE
Role
RL
Provision
PV
Rule
RU
Reset Password
RP
User
US
Reprovision
RV
TaskDefinition
TD
Reject
RJ
TaskInstance
TI
Terminate
TR
TaskSchedule
TS
usernameRecovery
UR
TaskTemplate
TT
TaskResult
TR
UserForm
UF
WorkItem
WI
XMLDATA
XD
理由
表 12-19 に、キーとしてデータベースに格納される理由を示します。
表 12-19 キーとして格納される理由
理由名
説明
DbKey
PolicyViolation
ポリシー {0} の違反: {1}
PV
InvalidCredentials
無効な資格
CR
InsufficientPrivileges
不十分な特権
IP
DatabaseAccessFailed
データベースアクセスの失敗
DA
AccountDisabled
アカウントの無効
DI
監査ログの改ざんの防止Identity Manager を設定して、次の形式の監査ログの改ざんを防止できます。
すべての Identity Manager 監査ログレコードには、サーバー単位の一意のシーケンス番号と、レコードおよびシーケンス番号の暗号化ハッシュが記録されています。改ざん検出レポートを作成するときに、サーバーごとに監査ログが走査され、次の点が調べられます。
改ざん防止ログの設定
改ざん防止ログを設定するには、次の手順に従います。
- 「レポート」>「新規」>「監査ログの改ざんレポート」を選択して、改ざんレポートを作成します。
- 改ざんレポート用の定義ページが表示されたら (図 12-1 参照)、レポートのタイトルを入力し、「保存」をクリックします。
図 12-1 監査ログの改ざんレポートの設定
次のオプションパラメータも指定できます。
- 「レポートの概要」 − レポートの概要をわかりやすく記述します。
- 「サーバー「<server_name>」の開始シーケンス」 − サーバーの開始シーケンス番号を入力します。
- このオプションを使用すると、改ざんのフラグを付けることなく古いログエントリを削除でき、パフォーマンスが低下しないようにレポートの範囲を制限できます。
- 「レポート結果を送信」 − 指定した電子メールアドレスへレポート結果を電子メールで送信できるようにします。
- このオプションを選択すると、ページが更新され、電子メールアドレスを指定するようにリクエストされます。ただし、電子メールはテキストコンテンツにとって安全ではないことに留意してください。機密情報 (アカウント ID やアカウント履歴など) が漏洩する可能性があります。
- 「デフォルトの PDF オプションを上書き」 − このレポートのデフォルトの PDF オプションを上書きします。
- 「組織」 − このレポートにアクセスできる組織を選択します。
- 次に、「設定」>「監査」を選択して、「監査設定」ページを開きます (図 12-2 参照)。
図 12-2 改ざん防止監査ログ設定
- 「カスタムパブリッシャーの使用」を選択し、「リポジトリ」パブリッシャーリンクをクリックします。
- 「改ざん防止監査ログ」のチェックボックスを選択し、「OK」をクリックします。
- 「保存」をクリックして、設定を保存します。
このオプションをもう一度選択解除できますが、解除したエントリには、監査ログの改ざんレポートで、解除されていることを示すフラグが付けられます。これらのエントリを無視するようにレポートを再設定する必要があります。
カスタムパブリッシャーの使用Identity Manager では、カスタム監査パブリッシャーへ監査イベントを送信できます。次のカスタムパブリッシャーを使用できます。
これらのパブリッシャーのソースコードはリファレンスキットにあります。リファレンスキットでは、Javadoc 形式で記されたインタフェースのマニュアルも用意されています。
パブリッシャーの開発
すべてのパブリッシャーは AuditLogPublisher インタフェースを実装します。インタフェースの詳細については、Javadoc を参照してください。開発者には、AbstractAuditLogPublisher クラスを拡張するようにお勧めします。このクラスは設定を解析し、すべての必要なオプションがパブリッシャーに用意されていることを確認します。リファレンスキットのパブリッシャーの例を参照してください。
パブリッシャーには引数なしコンストラクタが必要になります。
ライフサイクル
パブリッシャーのライフサイクルを、次の手順で説明します。
手順 1 〜 3 は、Identity Manager の起動時と監査設定の更新ごとに実行されます。シャットダウンが呼び出される前に監査イベントが生成されていない場合には、手順 4 は行われません。
configure(Map) は、同一のパブリッシャーオブジェクトでは 1 度だけ呼び出されます。パブリッシャーは、実行時の設定変更に備える必要はありません。監査設定が更新されると、まず現在のパブリッシャーが停止され、新しいパブリッシャーが作成されます。
手順 3 の configure() メソッドは WavesetException をスローする場合があります。この場合、パブリッシャーは無視され、パブリッシャーに対してほかの呼び出しは行われません。
設定
パブリッシャーにはオプションを付けないことも、1 つ以上のオプションを付けることもできます。getConfigurationOptions() メソッドは、パブリッシャーがサポートするオプションのリストを返します。オプションは、PublisherOption クラス (このクラスの詳細については Javadoc を参照) を使用してカプセル化されます。監査設定ビューアは、パブリッシャー用の設定インタフェースを構築するときに、このメソッドを呼び出します。
Identity Manager は、サーバーの起動時および監査設定の変更後に、configure(Map) メソッドを使用してパブリッシャーを設定します。
フォーマッタの開発
リファレンスキットには、次のフォーマッタのソースコードが収められています。
フォーマッタは、AuditRecordFormatter インタフェースを実装する必要があります。さらに、フォーマッタには引数なしコンストラクタが必要になります。詳細については、リファレンスキットに収録された Javadoc を参照してください。
パブリッシャー/フォーマッタの登録
#ID#Configuration:SystemConfiguration オブジェクトの監査属性は、登録済みのパブリッシャーとフォーマッタをすべて一覧表示します。これらのパブリッシャーとフォーマッタだけが、監査設定ユーザーインタフェースで使用できます。