ユーザー・プロファイル監査には、ユーザー・プロファイルの属性、ユーザー・メンバーシップ、リソース・プロビジョニング、アクセス・ポリシーおよびリソース・フォームへの変更に関する情報が含まれます。
この章の内容は次のとおりです。
Oracle Identity Managerを監査およびコンプライアンス・モジュールとともにインストールすると、デフォルトでユーザー・プロファイル監査機能が有効になり、監査レベルはResource Form
に設定されます。監査レベルは、フォーム・データに対するアテステーションに必要な最低レベルを指定します。
監査レベルは、管理およびユーザー・コンソールのシステム・プロパティ・ページで、キーワードXL.UserProfileAuditDataCollection
を使用して構成します。詳細は、「監査レベル」を参照してください。
この項の内容は次のとおりです。
Oracle Identity Managerでは、ユーザー・プロファイルのスナップショットを取得してデータベースの監査表に格納し、ユーザー・データの変更のたびにスナップショットを更新します。スナップショットには、ユーザーの過去のデータがすべて含まれています。
次に、ユーザー・プロファイルの内容とこれらのコンポーネントを構成する表を示します。
ユーザー・レコード: USR
表(すべてのユーザー定義ファイル(UDF)を含む)
ユーザー・グループ・メンバーシップ: USG
、UGP
およびRUL
情報
ユーザー・ポリシー・プロファイル: UPP
およびUPD
情報
注意: Oracle Identity Manager管理およびユーザー・コンソールを使用してグループ名を変更すると、ユーザーの次のスナップショットまで、データベース内のユーザー・プロファイル監査の表にその変更は反映されません。 |
ユーザー・リソース・プロファイルは次の内容で構成されています。
ユーザー・リソース・インスタンス: OIU
、OBI
、OST
およびOBJ
情報
リソース・ライフサイクル(プロビジョニング)・プロセス: ORC
、PKG
、TOS
、STA
、OSI
、SCH
、MIL
リソース状態(プロセス)フォーム: UD_*(子表を含む)
Oracle Identity Managerでは、スナップショット・データをXMLとして格納します。XMLにより、スナップショットの更新が発生するイベントに関する情報は、読取り可能な形式になります。次の各項では、スナップショットおよびユーザー・プロファイル監査(UPA)表のフィールドに対する変更におけるXMLについて説明します。
スナップショットのXMLファイルには、ユーザー・プロファイルに関連する属性がすべて記述されます。このファイルの一番上の要素は、UserProfileSnapshot
です。この要素には、各XMLエントリのユーザー・キーとバージョンが含まれます。後続の各要素には、次のようにユーザー・プロファイルに関する情報が格納されます。
UserInfo
: ユーザー・プロファイルに関する一般情報
GroupMembership
: グループ・メンバーシップに関する情報
PolicyProfile
:特定のリソースのプロビジョニングを許可したポリシーに関する情報
ResourceProfile
: すべてのプロビジョニングされたリソースに関する情報
ResourceInstance
: ユーザーにプロビジョニングされた各リソースに関する情報
ProcessData
: UDFに格納されるデータに関する情報
次のコードは、スナップショットのXMLの例です。
例2-1 スナップショット・コード
<?xml version="1.0" encoding="ISO-8859-1" ?> - <UserProfileSnapshot key="202" version="1.0"> - <UserInfo> <Attribute name="Users.First Name">Testing02First</Attribute> <Attribute name="Users.Role">Full-Time</Attribute> <Attribute name="Users.Disable User">0</Attribute> <Attribute name="Users.Email">amol@thortech.com</Attribute> <Attribute name="Users.Status">Active</Attribute> <Attribute name="Users.Update Date">2006-01-05 17:12:25.181</Attribute> <Attribute name="Users.User ID">TESTING02USER9</Attribute> <Attribute name="Users.Xellerate Type">End-User</Attribute> <Attribute name="Users.Last Name">Testing02Last</Attribute> <Attribute name="Users.Provisioned Date">2006-01-05 17:11:56.868</Attribute> <Attribute encrypted="true" name="Users.Password" password="true">8YxO3YSKDXJLmcsKeZhUSw == </Attribute> <Attribute name="Users.Creation Date">2006-01-05 17:11:56.868</Attribute> <Attribute name="Users.Lock User">0</Attribute> <Attribute key="1" name="Users.Updated By Login">XELSYSADM</Attribute> <Attribute name="Users.Password Reset Attempts Counter">0</Attribute> <Attribute key="1" name="Organizations.Organization Name">Xellerate Users </Attribute> <Attribute name="Users.Login Attempts Counter">0</Attribute> <Attribute key="1" name="Users.Created By Login">XELSYSADM</Attribute> </UserInfo> - <GroupMembership> - <Group key="3"> <Attribute name="Groups-Users.Creation Date">2006-01-05 17:12:30.299 </Attribute> <Attribute name="Groups-Users.Update Date">2006-01-05 17:12:30.299 </Attribute> <Attribute name="Groups-Users.Membership Status">Active</Attribute> <Attribute key="1" name="Groups-Users.Updated By Login">XELSYSADM </Attribute> <Attribute name="Groups-Users.Membership Type">Direct</Attribute> <Attribute key="3" name="Groups.Group Name">ALL USERS</Attribute> <Attribute key="1" name="Groups-Users.Created By Login">XELSYSADM </Attribute> </Group> </GroupMembership> - <PolicyProfile> - <Policy key="1"> <Attribute name="UPD_ALLOW_LIST">Res2</Attribute> <Attribute name="Access Policies.Key">1</Attribute> <Attribute name="Access Policies.Name">AP2</Attribute> </Policy> </PolicyProfile> - <ResourceProfile> - <ResourceInstance key="57"> <Attribute name="Users-Object Instance For User.Creation Date">2006-01-05 17:12:36.599 </Attribute> <Attribute key="45" name="Objects.Object Status.Status">Enabled</Attribute> <Attribute key="1" name="Access Policies.Name">AP2</Attribute> <Attribute key="6" name="Objects.Name">Res2</Attribute> <Attribute name="Users-Object Instance For User.Provisioned By Method"> Access Policy</Attribute> <Attribute key="1" name="Users-Object Instance For User.Provisioned By Login"> XELSYSADM</Attribute> <Attribute name="Users-Object Instance For User.Provisioned By ID">1 </Attribute> <Attribute key="AP2" name="Access Policies.Key">1</Attribute> - <ProcessData> - <Parent key="8"> - <FormInfo> <Attribute key="8" name="Structure Utility.Table Name">UD_RES2_PP </Attribute> <Attribute key="0" name="Structure Utility.Structure Utility Version Label.Version Label">Initial Version</Attribute> </FormInfo> - <Data key="54"> <Attribute name="UD_RES2_PP_B">bbbbbbbbbbbb</Attribute> <Attribute name="UD_RES2_PP_A">aaaaaaaaaaaa</Attribute> <Attribute key="1" name="Access Policies.Name">AP2</Attribute> </Data> </Parent> - <Children> - <Child key="9"> - <FormInfo> <Attribute key="9" name="Structure Utility.Table Name">UD_RES2_CP </Attribute> <Attribute key="0" name="Structure Utility.Structure Utility Version Label.Version Label">Initial Version</Attribute> </FormInfo> - <Data key="63"> <Attribute name="UD_RES2_CP_C">Entry1C</Attribute> <Attribute name="UD_RES2_CP_D">Entry1D</Attribute> <Attribute key="1" name="Access Policies.Name">AP2</Attribute> </Data> </Child> </Children> </ProcessData> </ResourceInstance> - <ResourceInstance key="74"> <Attribute name="Users-Object Instance For User.Creation Date">2006-01-05 17:22:37.597</Attribute> <Attribute key="33" name="Objects.Object Status.Status">Provisioning </Attribute> <Attribute key="5" name="Objects.Name">Res1</Attribute> <Attribute name="Users-Object Instance For User.Provisioned By Method"> Direct Provision</Attribute> <Attribute key="1" name="Users-Object Instance For User.Provisioned By Login"> XELSYSADM</Attribute> <Attribute name="Users-Object Instance For User.Provisioned By ID"> XELSYSADM</Attribute> </ResourceInstance> </ResourceProfile> </UserProfileSnapshot>
元のスナップショットに対する変更は、XMLファイルに格納されます。このファイル内の情報には、特定のトランザクションのユーザー・プロファイルの属性に影響する変更がすべて記述されます。このファイルの一番上の要素は、Changes
です。特定のトランザクション中に行われた変更はすべて、各Change
要素の下に表示されます。where
属性で変更の場所が特定されます。監査エンジンにより、前のスナップショットのXMLファイルが変更されます。
次に、スナップショットの変更が含まれるXMLファイルを示します。
例2-2 スナップショット変更ファイル
<?xml version="1.0" encoding="ISO-8859-1" ?> - <Changes> - <Change action="insert" order="1" where="/UserProfileSnapshot/ResourceProfile/ResourceInstance[@key='74']"> - <Attribute name="Users-Object Instance For User.Creation Date"> <OldValue /> <NewValue>2006-01-05 17:22:37.597</NewValue> </Attribute> - <Attribute name="Objects.Object Status.Status"> <OldValue key="" /> <NewValue key="35">Ready</NewValue> </Attribute> - <Attribute name="Objects.Name"> <OldValue key="" /> <NewValue key="5">Res1</NewValue> </Attribute> - <Attribute name="Users-Object Instance For User.Provisioned By Method"> <OldValue /> <NewValue>Direct Provision</NewValue> </Attribute> - <Attribute name="Users-Object Instance For User.Provisioned By Login"> <OldValue key="" /> <NewValue key="1">XELSYSADM</NewValue> </Attribute> - <Attribute name="Users-Object Instance For User.Provisioned By ID"> <OldValue /> <NewValue>XELSYSADM</NewValue> </Attribute> </Change> - <Change action="update" order="2" where="/UserProfileSnapshot/ResourceProfile/ResourceInstance[@key='74']"> - <Attribute name="Objects.Object Status.Status"> <OldValue key="35">Ready</OldValue> <NewValue key="33">Provisioning</NewValue> </Attribute> </Change> </Changes>
UPA表の情報は、レポート作成のための問合せがしやすいように、UPA_USR
、UPA_FIELDS
、UPA_RESOURCE
およびUPA_GRP_MEMBERSHIP
に正規化されます。
Oracle Identity Managerでユーザー・プロファイルのスナップショットを取得すると、そのスナップショットはUPA表に格納されます。この表の構造は、表2-1に示すとおりです。
表2-1 監査表の構造
フィールド | 値 |
---|---|
エントリID |
監査レコードのキー。 |
ユーザー・キー |
このエントリにユーザー・スナップショットが記録されるユーザーのキー。 |
開始日 |
スナップショット・エントリが有効になった日付。 |
終了日 |
スナップショット・エントリが無効になった日付。現在のユーザー・プロファイルを表すエントリの場合、終了日はNULLに設定されます。 |
デルタ |
変更のXML表現専用。 |
ユーザー・プロファイル・スナップショット |
ユーザー・プロファイル・スナップショットのXML表現。 |
ソース |
エントリのソース。この変更と使用されるAPIの責任を負うユーザーのユーザー名。 |
署名 |
顧客が否認防止のためにスナップショットにサインするための列。 |
ユーザー・プロファイル・スナップショットのデータ要素が変更されると、Oracle Identity Managerでは新しいユーザー・プロファイル・スナップショットを取得します。次のイベントにより、新しいスナップショットの作成がトリガーされます。
リコンシリエーション、直接、アダプタなどによる、あらゆる種類のユーザー・レコードに対する変更
ユーザーに対するグループ・メンバーシップの変更
ユーザーに適用されるポリシーの変更
ユーザーへのリソースのプロビジョニング
ユーザーに対するリソースのプロビジョニング解除
プロビジョニングされたリソースに対するプロビジョニング関連イベント
リソース・ステータスの変更
プロビジョニング・プロセスへのプロビジョニング・タスクの追加
プロビジョニング・プロセスのプロビジョニング・タスクに対する更新(ステータス変更、エスカレーションなど)
プロセス・フォーム・データの作成または更新
監査レコードの量がパフォーマンスに影響を及ぼさないようにするため、複雑なデータの抽出、処理および記録は監査エンジンが実行します。監査エンジンは、トランザクション処理中ではなく、Oracle Identity Managerにおける処理のすべてのステップ間で機能します。定義済イベントのトリガーが起動すると、監査エンジンはスナップショットを取得し、オフライン処理を実行してスナップショットを生成および記録します。
残りの項の内容は次のとおりです。
ユーザー・プロファイル監査機能は、監査およびコンプライアンス・モジュールをインストールするとデフォルトで有効になり、監査レベルはResource Form
に設定されます。監査レベルの変更後には、Linuxの場合はGenerateSnapshot.sh
スクリプトを、Windowsの場合はGenerateSnapshot.bat
スクリプトを実行する必要があります。このスクリプトは、Oracle Identity Managerデータベース内のすべてのユーザーを調査し、新しいスナップショットを監査レベルに基づいて生成します。
監査には、アクティブ・トリガー、監査エンジンの動作、監査スナップショットに収集されるデータなど、監査詳細のレベルを指定できます。
監査レベルは、システム構成プロパティとしてOracle Identity Managerに指定します。サポートされるレベルは、次のとおりです。
Process Task: リソース・ライフサイクル・プロセスでユーザー・プロファイル・スナップショット全体を監査します。
Resource Form: ユーザー・レコード、グループ・メンバーシップ、プロビジョニングされたリソース、リソースに関連付けられたフォーム・データを監査します。
Resource: ユーザー・レコード、グループ・メンバーシップ、プロビジョニングされたリソースを監査します。
Membership: ユーザー・レコードおよびユーザー・グループ・メンバーシップのみを監査します。
Core: ユーザー・レコードのみを監査します。
None: 監査は格納されません。
注意: 監査レベルの指定では、大/小文字が区別されます。 |
AUD
表は、監査メタデータのXMLを格納します。監査エンジンでは、メタデータを使用してスナップショットのXMLファイルおよびスナップショットに対する変更用のXMLファイルを作成します。メタデータのXMLは、特に、スナップショット、変更用のXMLファイルおよびポストプロセッサを格納する表に関する情報を指定します。ポストプロセッサは、監査エンジンがスナップショットおよび変更のXMLを生成して監査表に格納した後に、データを処理します。
特定の監査者の機能またはレポート機能を拡張するには、カスタム・ポストプロセッサを作成します。カスタム・ポストプロセッサは、XMLメタデータには定義されません。これらは、Oracle Identity Managerの参照表に定義します。
カスタム・ポストプロセッサを作成するには、次のようにします。
CustomAuditDataProcessor
クラスから拡張する新しいクラスを作成し、processAuditData
メソッドを実装します。
Oracle Identity Manager Design Consoleで、次のように新しい参照定義を作成します。
コードAudit
.AuditorName
.CustomProcessors
をコールします。AuditorName
は、ポストプロセッサで使用する監査者の名前です。
「Lookup Type」オプションを選択します。
監査者に関連付けられたグループ名を入力します。この場合はUPA Processors Group
です。
参照コード情報を追加します。
これは、作成したクラスへの完全修飾されたクラスパスです。コード・キーおよびデコードは、クラスパスである必要があります。
「Language」設定にはen
と入力し、「Country」設定にはUS
と入力します。
クラスを作成して参照情報を設定したら、XL_HOME/JavaTasksディレクトリの.jarファイルに配置します。
ユーザー・プロファイル監査では、データベース内の次の表を使用します。
AUD
: この表は、Oracle Identity Managerでサポートされるすべての監査者に関する情報を格納します。
現在は、UserProfileAudit
エントリのみが使用可能です。
AUD_JMS
: この表は、監査者について行われた変更に関する情報を格納します。
現在は、ユーザー・プロファイルの変更のみが格納されます。この表のキーは、JMSに送信されます。Oracle Identity Managerでは、複数の変更が同じユーザーに加えられたときに、この表を使用して変更順序を制御します。変更が処理されていない場合には、メッセージを再発行できます。
Oracle Identity Managerのレポート・モジュールでは、次の表を使用します。
UPA_FIELDS
: この表は、ユーザー・プロファイル情報を垂直書式で格納します。
この表には、UPA_USR
表よりも多くの情報が含まれます。たとえば、この表には、UPA_USR
では使用できない他のフィールドに加えて、UDのフィールドも格納されます。
UPA_GRP_MEMBERSHIP
: この表は、システム内のすべてのユーザーに対するグループ・メンバーシップを格納します。
この情報には、ユーザーがグループに追加および削除された時期が含まれます。現在は、直接グループ・メンバーシップのみがこの表に格納されます。
UPA_RESOURCE
: この表の情報には、プロビジョニングされたリソースと各リソースのステータスにおける変更が含まれます。
この表には、フォーム表の情報は含まれません。
Oracle Identity Managerには、監査メッセージ再発行タスクというスケジュール済タスクがあります。このタスクは、データベース接続の問題のために処理されなかった監査JMSメッセージを再発行します。処理のためにJMSメッセージを取得する際に問題が検出されると、JMSシステムは構成された回数まで再試行を行います。構成された再試行回数を超えても処理されないと、メッセージは最終的に送達不能キューに入れられます。
実際のデータはJMSシステム内にはありません。すべての監査メッセージ・データはAUD_JMS
に格納されます。対応するJMSメッセージにAUD_JMS
IDが付けられて、送信されます。処理のためにJMSメッセージを取得すると、データがAUD_JMS
から取り出されます。監査メッセージ再発行タスクを使用し、AUD_JMS
のIDをJMSシステムに返送すると、メッセージを再発行できます。
更新される同じエンティティ(ユーザー・プロファイルの場合、エンティティはユーザー・キー)に関するメッセージはすべて、解決されるまでAUD_JMS
に存在します。監査メッセージ再発行タスクを実行すると、AUD_JMS
のエントリはなくなります。AUD_JMS
のエントリが存在する場合、メッセージが破損しているか、メッセージのプロセッサがメッセージを理解できない可能性があります。単一のユーザーに対する監査はそれぞれ順次実行されるため、イベントの発生時期に従って監査はログに記録されます。
デフォルトでは、監査メッセージ再発行タスクは毎日実行されますが、特定の開始日および時間(システムがあまりビジーでない時期が好ましい)を構成する必要があります。これにより、特にメッセージ数が多い場合に、メッセージの処理に十分な時間が与えられます。このタスクは、定期的に実行する必要があります。