Oracle Identity Managerは、監査およびコンプライアンスのために広範囲にわたるデータを収集する強力な監査エンジンを備えています。監査機能を使用して、コンプライアンスの監視、IT中心のプロセスおよびフォレンジック監査のためのエンティティおよびトランザクション・データを収集、アーカイブおよび表示できます。そのため、Oracle Identity Managerでは、監査モジュールおよびコンプライアンス・モジュールを使用して、プロファイル監視機能、レポート機能およびアテステーション機能を提供しています。履歴データは、ライフ・サイクル全体で取得、トランスポート、格納、検索および削除できます。セキュリティは、データのライフ・サイクルの各ステージで維持されます。アテステーション・プロセスの詳細は、「アテステーション・プロセスの管理」を参照してください。
この章は次のトピックで構成されます。
ここでは、監査機能の概要について次の各項で説明します。
図6-1に、Oracle Identity Managerの監査プロセスの設計要素を示します。
Oracle Identity Manager内でユーザーが実行したアクションは、アプリケーション・プログラミング・インタフェース(API)コールまたはメッセージを取得してアクションを処理するメッセージ・ドリブンBean(MDB)に変換されます。1つのアクションから複数の変更が発生することがあります。すべての変更は、1つの監査トランザクションにまとめられます。データ・オブジェクトを変更できるAPIメソッドはそれぞれ、APIコールの最初に監査エンジンのstartTransactionメソッドをコールし、APIコールの最後にendTransactionメソッドをコールします。これにより、監査トランザクションの境界が定義されます。監査エンジンは、トランザクションで行われた変更を識別するためにトランザクションIDを生成します。
Oracle Identity Managerには、プロファイル情報の監査および履歴のアーカイブが用意されています。プロファイルのスナップショットを取得してデータベースの監査表に格納し、プロファイル・データの変更のたびにスナップショットを更新します。プロファイル監査機能関係では、スナップショットという用語は、データが変更されるたびに作成されるプロファイル・データ全体のコピーを意味します。
BI Publisherには、アーカイブ・データを表示するための標準レポートが付属しています。また、カスタマイズ・レポートを作成することもできます。
レポートの詳細は、次を参照してください。
レポートの詳細は、『Oracle Fusion Middleware Oracle Identity Manager開発者ガイド』のレポートに関する項
ユーザー・プロファイル監査は、ユーザー・プロファイルの属性、ユーザー・メンバーシップ、リソース・プロビジョニング、アクセス・ポリシーおよびリソース・フォームに対する変更を対象としています。
監査エンジンは、Oracle Identity Managerの監査情報を収集します。プロファイルが変更されるたびに、監査エンジンは変更(デルタ)を収集してユーザーおよびロールのプロファイルのスナップショットを更新(存在しない場合は生成)し、これらのスナップショットおよびデルタをXML形式で格納します。また、監査エンジンには、生成されたXMLに基づいて関連データをレポート表に移入するポストプロセッサがあります。高いパフォーマンスを維持するため、デフォルトでは、監査エンジンは、アプリケーション・サーバーに装備されている基礎となるJava Message Service(JMS)を使用して、これらのタスクを非同期オフライン方式で実行します。
このセクションのトピックは次のとおりです:
この章で前述したように、Oracle Identity Managerをインストールすると、デフォルトでユーザー・プロファイル監査機能が有効になり、監査レベルは「リソース・フォーム」に設定されます。監査レベルを変更する場合は、GenerateSnapshot.shスクリプト(UNIXの場合)またはGenerateSnapshot.batスクリプト(Microsoft Windowsの場合)を実行する必要があります。このスクリプトは、IDM_HOME/server/binディレクトリにあります。スクリプトでは、Oracle Identity Managerデータベース内のすべてのユーザーを調査し、新しいスナップショットを新しい監査レベルに基づいて生成します。
注意: 監査レベルを変更する場合は、必ずGenerateSnapshotスクリプトを実行してからユーザーにシステムへのアクセスを許可してください。 |
監査エンジンの「監査の詳細のレベル」を構成し、その監査レベルを拡張管理のXL.UserProfileAuditDataCollectionシステム・プロパティの値として指定できます。
関連項目: このシステム・プロパティの詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのOracle Identity Managerのシステム・プロパティに関する項を参照してください。 |
次の監査レベルがサポートされています。
プロセス・タスク: リソース・ライフサイクル・プロセスでユーザー・プロファイル・スナップショット全体をまとめて監査します。
リソース・フォーム: ユーザー・レコード、ロール・メンバーシップ、プロビジョニングされたリソースおよびリソースに関連付けられたすべてのフォーム・データを監査します。
リソース: ユーザー・レコード、ロール・メンバーシップおよびプロビジョニングされたリソースを監査します。
メンバーシップ: ユーザー・レコードおよびロール・メンバーシップのみを監査します。
コア: ユーザー・レコードのみを監査します。
なし: 監査データは格納されません。
注意: 特定の監査レベルを指定すると、下位の優先順位レベルにある監査レベルはすべて自動的に有効になります。たとえば、Membership監査レベルを指定すると、Core監査レベルは自動的に有効になります。 監査レベルの指定では、大/小文字が区別されます。監査レベルを指定する際は、監査レベルの大/小文字を変更しないでください。 |
監査者に関する情報は、データベース内の次の表に格納されます。
AUD: この表には、Oracle Identity Managerで定義されたすべての監査者に関するメタデータが格納されます。
aud_jms: この表には、監査エンジンおよび最終的には監査者が使用するデータが格納されます。操作可能な中間ステージング表です。
この表のキーは、JMSに送信されます。Oracle Identity Managerでは、複数の変更が同じユーザーに加えられたときに、この表を使用して変更順序を制御します。スケジュール済タスクIssue Audit Messages Taskを使用すると、処理されていないメッセージの再発行を自動化できます。このスケジュール済タスクの詳細は、「監査メッセージの発行」を参照してください。
Oracle Identity Managerには、監査メッセージの発行タスクというスケジュール済タスクがあります。このスケジュール済タスクは、監査メッセージの詳細をaud_jms表から取り出し、aud_jms表の特定の識別子および監査者のエントリについてJMSメッセージを1つ送信します。MDBで対応する監査メッセージが処理されます。
このタスクの属性は、次のとおりです。
Max Records
Max Records属性を使用し、指定したスケジュール済タスクの実行について処理される監査メッセージの最大数を指定します。この属性のデフォルト値は、400です。
aud_jms表に監査メッセージのバックログがある場合は、Max Records属性の値を増やすことができます。設定する値は、スケジュール済タスクのデフォルトの実行間隔の間にJMSエンジンが処理できるメッセージ数に依存します。その数は、アプリケーション・サーバーおよびデータベースのパフォーマンスによって決まります。Max Records値を増やす前に、アプリケーション・サーバーの管理コンソールを使用するなどして、JMS宛先(oimAuditQueue)での監査メッセージ数の処理にかかる時間を割り出す必要があります。必要な時間がスケジュール済タスクの間隔より短い場合は、Max Records属性の値をその分だけ増やすことができます。
ユーザー・プロファイル監査は、ユーザー・プロファイルの属性、ユーザー・メンバーシップ、リソース・プロビジョニング、アクセス・ポリシーおよびリソース・フォームに対する変更を対象としています。
このセクションのトピックは次のとおりです:
Oracle Identity Managerをインストールすると、デフォルトでユーザー・プロファイル監査機能が有効になり、監査レベルは「リソース・フォーム」に設定されます。この監査レベルは、フォーム・データのアテステーションに必要な最低レベルを指定します。
拡張管理のシステム構成部の監査レベルは、XL.UserProfileAuditDataCollectionシステム・プロパティを使用して構成します。
関連項目: 監査レベルの詳細は、「監査レベル」を参照してください。 XL.UserProfileAuditDataCollectionシステム・プロパティの詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのOracle Identity Managerのシステム・プロパティに関する項を参照してください。 |
このセクションのトピックは次のとおりです:
ユーザー・プロファイルの変更のたびに、Oracle Identity Managerでは、ユーザー・プロファイルのスナップショットを取得してデータベースの監査表に格納します。
また、ユーザー・プロファイルに監査が必要な変更があるときは、たとえ最初のスナップショットが存在しなくても、スナップショットが生成されます。現在のスナップショットが最初のスナップショットとして取り扱われます。
次に、ユーザー・プロファイルの構成要素とこれらの構成要素を格納する表を示します。
注意: ユーザー・プロファイル表の列名や使用方法などの詳細は、Oracle Identity Managerに付属のスキーマ・ドキュメントを参照してください。 |
ユーザー・レコード: USR表(すべてのユーザー定義フィールド(UDF)を含む)に格納されます。
USR表にはユーザー属性が格納されます。ユーザーを作成すると、Oracle Identity Managerにより、この表にエントリが追加されます。
ユーザー・ロール・メンバーシップ: RUL表、UGP表およびUSG表(表6-1を参照)に格納されます。
ユーザー・ポリシー・プロファイル: 次の表に格納されます。
UPD: ユーザー・ポリシー・プロファイル・データが格納されます。これは、ユーザーにプロビジョニングされるリソースのポリシー中心の表示です。
UPP: ユーザー・ポリシー・プロファイル関連の詳細が格納されます。これは、ユーザーに適用可能なすべてのポリシーと、ユーザーが許可または拒否するリソースに関するユーザー中心の表示です。
注意: 管理およびユーザー・コンソールを使用してロール名を変更すると、ユーザーの次のスナップショットまで、データベース内のユーザー・プロファイル監査(UPA)の表にその変更は反映されません。 |
ユーザー・リソース・プロファイル: この構成要素は、次のサブ構成要素に分類できます。
ユーザー・リソース・インスタンス: OBI表、OBJ表およびOIU表(表6-2を参照)に格納されます。
表6-2 ユーザー・リソース・インスタンスの表
表名 | 説明 |
---|---|
OBI |
リソース(オブジェクト)インスタンス情報を格納します。Oracle Identity Managerは、リソースがプロビジョニングされるたびにリソース・インスタンスを作成します。このインスタンスには、リソース・キー(リソースがリクエストを介してプロビジョニングされた場合)、対応するプロセス・インスタンス、インスタンス・ステータスなど、プロビジョニングされたインスタンスに関連する一般情報がすべて保存されます。 |
OBJ |
リソース名、自動保存および自動事前移入が設定されているかどうか、リソース・オブジェクトで複数インスタンスを許可するかどうかなど、リソースに関する詳細を含めたリソース・オブジェクト・データを表します。 |
OIU |
プロビジョニングの実行時に、適用可能なユーザー情報をリソース・オブジェクト・インスタンスに関連付けます。さらに、特定のリソース・インスタンスについてポリシー関連情報が保存されます。 |
リソース・ライフサイクル(プロビジョニング)プロセス: MIL表、ORC表、OSI表、PKG表、SCH表およびTOS表(表6-3を参照)に格納されます。
表6-3 リソース・ライフサイクル・プロセスの表
表名 | 説明 |
---|---|
MIL |
プロセス・タスク定義を定義します。各エントリは1つのプロセス・タスクに相当します。プロセス定義(PKG表)は、複数のタスクで構成され、各タスクは定義の様々なワークフローの一部です。 |
ORC |
プロビジョニングの実行時にプロセス・インスタンス情報を格納します。プロビジョニングが開始すると、Oracle Identity Managerにより、関連するプロセス(またはワークフロー)インスタンスが生成され、プロビジョニング・インスタンスに固有のプロセス関連情報が保存されます。 |
OSI |
プロセス・インスタンスに対して作成されたタスクに関する情報を格納します。 |
PKG |
プロセスまたはワークフローを、プロセス名、プロセス・タイプ、付加フィールド・マッピング、関連するリソースやプロセス・フォームなどのプロセスの詳細も含めて、Oracle Identity Managerに定義します。 |
SCH |
タスク・ステータス、ステータス・バケット、アダプタの実行開始または終了のタイミングなど、特定のタスク・インスタンスの実行に関連する情報を格納します。 |
TOS |
アトミック・プロセス情報を格納します。 |
リソース状態(プロセス)フォーム: この情報は、UDの親表および子表に格納されます。UD_*表は、アカウントの状態を格納するユーザー定義フィールドの表です。
Oracle Identity Managerでユーザー・プロファイルのスナップショットを取得すると、そのスナップショットはUPA表に格納されます。UPA表の構造は、表6-4に示すとおりです。
表6-4 UPA表の定義
列 | データ型 | 説明 |
---|---|---|
UPA_KEY |
NUMBER (19,0) |
監査レコードのキー |
USR_KEY |
NUMBER (19,0) |
このエントリにスナップショットが記録されるユーザーのキー |
EFF_FROM_DATE |
TIMESTAMP (6) |
スナップショット・エントリが有効になった日時 |
EFF_TO_DATE |
TIMESTAMP (6) |
スナップショット・エントリが無効になった日時 つまり、これは次のスナップショット・エントリが作成された日時です。最新のユーザー・プロファイルを表すエントリの場合、終了日列の値はNULLに設定されます。 |
SRC |
VARCHAR2 (4000) |
変更の責任を負うユーザーのユーザーID、および変更の実行に使用されたAPI |
SNAPSHOT |
CLOB |
スナップショットのXML表現 |
DELTAS |
CLOB |
スナップショットに対して行われた変更に対応する新旧の値のXML表現 |
SIGNATURE |
CLOB |
スナップショットのデジタル署名を格納するために使用できる列(否認防止用) |
注意: Oracle Identity Managerでのデフォルト・ユーザーに対する初期の監査スナップショットはUTF-8エンコードではありません。一方、これらのユーザーに対するその後の変更の監査は、UTF-8エンコード・スナップショットになります。 |
ユーザー・プロファイルのデータ要素が変更されると、Oracle Identity Managerではスナップショットが作成されます。
次のイベントにより、ユーザー・プロファイル・スナップショットの作成がトリガーされます。
あらゆる種類のユーザー・レコードに対する変更(リコンシリエーション、ダイレクト・プロビジョニングなどによる変更)
ユーザーに対するロール・メンバーシップの変更
ユーザーに適用されるポリシーの変更
ユーザーへのリソースのプロビジョニング
ユーザーに対するリソースのデプロビジョニング
プロビジョニングされたリソースに対するプロビジョニング関連イベント
リソース・ステータスの変更
プロビジョニング・プロセスへのプロビジョニング・タスクの追加
プロビジョニング・プロセスのプロビジョニング・タスクに対する更新(ステータス変更、エスカレーションなど)
プロセス・フォーム・データの作成または更新
ユーザー・プロファイルの監査者は、スナップショットのXMLをレポート表UPA_USR、UPA_FIELDS、UPA_GRP_MEMBERSHIP、UPA_RESOURCE、UPA_UD_FORMSおよびUPA_UD_FORMFIELDSに正規化する内部ポストプロセッサを保持します。これらの表は、レポート・モジュールで適切なレポートを生成するために使用されます。
表6-5に、ユーザー・プロファイル監査で使用するデータベースの表を示します。
注意: ユーザー・プロファイル監査表の列名や使用方法などの詳細は、Oracle Identity Managerに付属のスキーマ・ドキュメントを参照してください。 |
表6-5 ユーザー・プロファイル監査の表
表名 | 説明 |
---|---|
AUD |
Oracle Identity Managerでサポートされているすべての監査者(例: ユーザー・プロファイル監査者)の詳細情報を格納します。現在、使用可能なエントリはUserProfileAuditのみです。 |
AUD_JMS |
ビジネス・トランザクションの一環として適用された変更の情報を格納するステージング表です。これは、監査エンジンが使用する前にデータ変更ログ・データを一時的に保存するための中間表です。監査メッセージが正常に処理されると、対応するレコードが表から削除されます。 注意: この表は、エンド・ユーザーの使用を意図していないため、直接使用しないでください。 |
UPA |
すべてのスナップショットおよびユーザー・プロファイルに適用された変更を格納するためのメイン監査表です。 |
UPA_FIELDS |
ユーザー・プロファイル監査履歴の変更を非正規化(垂直)形式で格納します。 |
UPA_GRP_MEMBERSHIP |
グループ・メンバーシップ履歴を非正規化形式で格納します。 |
UPA_RESOURCE |
ユーザー・プロファイル・リソース履歴を非正規化形式で格納します。 |
UPA_USR |
ユーザー・プロファイル履歴を非正規化形式で格納します。 |
UPA_UD_FORMS |
UPA_UD_FORMFIELDS表とともに、ユーザーのアカウント・プロファイル(プロセス・フォーム)への変更に関する情報を格納します。この表は、トランザクションで変更される様々なフォーム(親または子フォームなど)の変更の経過を管理します。アカウントまたは権限の属性の変更は、UPA_UD_FORMFIELDS表に格納されます。 |
UPA_UD_FORMFIELDS |
修正されたアカウント名または権限プロファイルのフィールド名を格納します。この表には、変更されたフィールドの古い値と新しい値も記録されます。 |
注意:
|
ユーザー・プロファイル監査データは監査レベルの設定に応じて増加し、ほとんどのデプロイメントにとって増加は深刻です。
また、将来の増加に対応できるように古いユーザー・プロファイル監査データを削除またはアーカイブする要件も存在します。監査アーカイブおよびパージ・ユーティリティを使用して、これらの要件を満たすことができます。このユーティリティの詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドの監査アーカイブおよびパージ・ユーティリティの使用に関する項を参照してください。
ロール・プロファイル監査は、ロール・プロファイルの属性、ロール管理者および直接サブロールに対する変更を対象としています。
この項では、次の項目について説明します。
ユーザー監査とは異なり、ロール・プロファイル監査には独立した監査レベルは定義されません。かわりに、ユーザー・プロファイル監査に対して定義された監査レベルがロール・プロファイル監査に使用されます。ユーザー・プロファイル監査レベルに対して定義された監査レベルが、メンバーシップ・レベルか、それより1レベル高い場合にのみ、ロール・プロファイル監査は実施されます。Oracle Identity Managerをインストールすると、デフォルトでユーザー・プロファイル監査機能が有効になり、監査レベルは「リソース・フォーム」に設定されます。その結果、ユーザー・プロファイル監査のデフォルトの監査レベルは「リソース・フォーム」であり、「メンバーシップ」より高いため、ロール・プロファイル監査もデフォルトで有効になります。
このセクションのトピックは次のとおりです:
ロール・プロファイルの変更のたびに、Oracle Identity Managerでは、ロール・プロファイルのスナップショットを取得してデータベースの監査表に格納します。
Oracle Identity Managerでは、ロールに対する監査が作成されると、最初のスナップショットが存在していない場合も、スナップショットが生成されます。現在のスナップショットが最初のスナップショットとして取り扱われます。
次に、ロール・プロファイルの構成要素とその要素を構成する表を示します。
ユーザー・ロール・レコード: UGP表(グループのすべてのUDFを含む)
サブロール情報: GPG表
Oracle Identity Managerでロール・プロファイルのスナップショットを取得すると、そのスナップショットはGPA表に格納されます。この表の構造は、表6-6に示すとおりです。
表6-6 GPA表の定義
列 | データ型 | 説明 |
---|---|---|
GPA_KEY |
NUMBER (19,0) |
監査レコードのキー |
UGP_KEY |
NUMBER (19,0) |
ロール・スナップショットが記録されるロールのキー |
EFF_FROM_DATE |
TIMESTAMP (6) |
スナップショット・エントリが有効になった日時 |
EFF_TO_DATE |
TIMESTAMP (6) |
スナップショット・エントリが無効になった日時 つまり、これは次のスナップショット・エントリが作成された日時です。最新のユーザー・プロファイルを表すエントリの場合、終了日列の値はNULLに設定されます。 |
SRC |
VARCHAR2 (4000) |
エントリのソース、変更責任者のユーザーID、および変更の実行に使用されたAPI |
SNAPSHOT |
CLOB |
スナップショットのXML表現 |
DELTAS |
CLOB |
スナップショットに対して行われた変更に対応する新旧の値のXML表現 |
SIGNATURE |
CLOB |
スナップショットのデジタル署名を格納するために使用できる列(否認防止用) |
ここでは、Oracle Identity Managerで監査機能を有効および無効にする方法について次の各項で説明します。
Oracle Identity Managerで監査機能を無効にする手順は、次のとおりです。
Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのシステム・プロパティの変更に関する項に記載されているように、「ユーザー・プロファイル監査データ収集レベル」(XL.UserProfileAuditDataCollection)システム・プロパティの値を「なし」に設定します。
Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのジョブの無効化と有効化に関する項に記載されているように、監査メッセージの発行タスク・スケジュール済タスクを無効にします。
保留中の監査変更を監査表に記録する必要がある場合は、保留中の監査変更がすべて処理された後にスケジュール済タスクを無効にします。
Oracle Identity Managerで監査機能を有効にする手順は、次のとおりです。
「ユーザー・プロファイル監査データ収集レベル」(XL.UserProfileAuditDataCollection)システム・プロパティの値を「監査レベル」に定義されているいずれかのレベルに設定します。
システム・プロパティ値の変更の詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのシステム・プロパティの変更に関する項を参照してください。
Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのジョブの無効化と有効化に関する項に記載されているように、監査メッセージの発行タスク・スケジュール済タスクを有効にします。
スナップショットを生成するには、『Oracle Fusion Middleware Oracle Identity Manager開発者ガイド』の監査スナップショットの生成に関する項に記載されているように、GenerateSnapshotスクリプトを実行します。
コマンドラインでは、GenerateSnapshotスクリプトを次のように使用します。
./GenerateSnapshot.sh -username OIM_ADMIN_USERNAME -numOfThreads 8 -serverURLt3://WLS_SERVER:PORT -ctxFactory weblogic.jndi.WLInitialContextFactory[-inputFile fileWithUserKeys]
各変数は次のとおりです。
OIM_ADMIN_USERNAMEは、Oracle Identity Manager管理者のユーザー名です。
WLS_SERVERは、Oracle WebLogic Serverの名前です。
PORTは、WebLogic Serverのポート番号です。