Oracle Identity Managerは、監査およびコンプライアンスのために広範囲にわたるデータを収集する強力な監査エンジンを備えています。監査機能を使用して、コンプライアンスのモニタリング、IT中心のプロセスおよびフォレンジック監査のためのエンティティおよびトランザクション・データを収集、アーカイブおよび表示できます。
この章は次のトピックで構成されます。
Oracle Identity Managerには、プロファイル情報の監査および履歴のアーカイブが用意されています。プロファイルのスナップショットを取得してデータベースの監査表に格納し、プロファイル・データの変更のたびにスナップショットを更新します。プロファイル監査機能関係では、スナップショットという用語は、データが変更されるたびに作成されるプロファイル・データ全体のコピーを意味します。
ユーザー・プロファイル監査は、ユーザー・プロファイルの属性、ユーザー・メンバーシップ、リソース・プロビジョニング、アクセス・ポリシーおよびリソース・フォームに対する変更を対象としています。
この項の内容は次のとおりです。
Oracle Identity Managerをインストールすると、デフォルトでユーザー・プロファイル監査機能が有効になり、監査レベルは「リソース・フォーム」に設定されます。この監査レベルは、フォーム・データのアテステーションに必要な最低レベルを指定します。
拡張管理のシステム構成部の監査レベルは、XL.UserProfileAuditDataCollectionシステム・プロパティを使用して構成します。
関連項目: XL.UserProfileAuditDataCollectionシステム・プロパティの詳細は、「Oracle Identity Managerのシステム・プロパティ」を参照してください。 |
次の監査レベルがサポートされています。
プロセス・タスク: リソース・ライフサイクル・プロセスでユーザー・プロファイル・スナップショット全体をまとめて監査します。
リソース・フォーム: ユーザー・レコード、ロール・メンバーシップ、プロビジョニングされたリソースおよびリソースに関連付けられたすべてのフォーム・データを監査します。
リソース: ユーザー・レコード、ロール・メンバーシップおよびプロビジョニングされたリソースを監査します。
メンバーシップ: ユーザー・レコードおよびロール・メンバーシップのみを監査します。
コア: ユーザー・レコードのみを監査します。
なし: 監査データは格納されません。
この項の内容は次のとおりです。
ユーザー・プロファイルの変更のたびに、Oracle Identity Managerでは、ユーザー・プロファイルのスナップショットを取得してデータベースの監査表に格納します。
また、ユーザー・プロファイルに監査が必要な変更があるときは、たとえ最初のスナップショットが存在しなくても、スナップショットが生成されます。現在のスナップショットが最初のスナップショットとして取り扱われます。
次に、ユーザー・プロファイルの構成要素とこれらの構成要素を格納する表を示します。
ユーザー・レコード: USR表(すべてのユーザー定義フィールド(UDF)を含む)に格納されます。
USR表にはユーザー属性が格納されます。ユーザーを作成すると、Oracle Identity Managerにより、この表にエントリが追加されます。
ユーザー・ロール・メンバーシップ: UGP表が含まれます。
UGP表のUGP_USER_MEMBERSHIP_RULE列に、ユーザー・ロール・メンバーシップ・ルールが格納されます。
UGP表からユーザー・メンバーシップ・ルールを取得するには、ロール・マネージャAPIメソッドSearchRule getUserMembershipRule(String roleKey)を使用できます。
ロール・マネージャAPIの詳細は、Oracle Fusion Middleware Oracle Identity Manager Java APIリファレンスを参照してください。
管理ロール・メンバーシップ: ARM_AUD表が含まれます。
ARM_AUD表では、メンバーシップID、管理ロールID、ユーザーID、組織、階層、アクションおよびログイン・ユーザーが定義されます。
ユーザー・ポリシー・プロファイル: 次の表に格納されます。
UPD: ユーザー・ポリシー・プロファイル・データが格納されます。これは、ユーザーにプロビジョニングされるリソースのポリシー中心の表示です。
UPP: ユーザー・ポリシー・プロファイル関連の詳細が格納されます。これは、ユーザーに適用可能なすべてのポリシーと、ユーザーが許可または拒否するリソースに関するユーザー中心の表示です。
注意: Oracle Identity Self Serviceを使用してロール名を変更すると、ユーザーの次のスナップショットまで、データベース内のユーザー・プロファイル監査(UPA)の表にその変更は反映されません。 |
ユーザー・リソース・プロファイル: この構成要素は、次のサブ構成要素に分類できます。
ユーザー・リソース・インスタンス: OBI表、OBJ表およびOIU表(表22-1を参照)に格納されます。
表22-1 ユーザー・リソース・インスタンスの表
表名 | 説明 |
---|---|
OBI |
リソース(オブジェクト)インスタンス情報を格納します。Oracle Identity Managerは、リソースがプロビジョニングされるたびにリソース・インスタンスを作成します。このインスタンスには、リソース・キー(リソースがリクエストを介してプロビジョニングされた場合)、対応するプロセス・インスタンス、インスタンス・ステータスなど、プロビジョニングされたインスタンスに関連する一般情報がすべて保存されます。 |
OBJ |
リソース名、自動保存および自動事前移入が設定されているかどうか、リソース・オブジェクトで複数インスタンスを許可するかどうかなど、リソースに関する詳細を含めたリソース・オブジェクト・データを表します。 |
OIU |
プロビジョニングの実行時に、適用可能なユーザー情報をリソース・オブジェクト・インスタンスに関連付けます。さらに、特定のリソース・インスタンスについてポリシー関連情報が保存されます。 |
リソース・ライフサイクル(プロビジョニング)プロセス: MIL表、ORC表、OSI表、PKG表、SCH表およびTOS表(表22-2を参照)に格納されます。
表22-2 リソース・ライフサイクル・プロセスの表
表名 | 説明 |
---|---|
MIL |
プロセス・タスク定義を定義します。各エントリは1つのプロセス・タスクに相当します。プロセス定義(PKG表)は、複数のタスクで構成され、各タスクは定義の様々なワークフローの一部です。 |
ORC |
プロビジョニングの実行時にプロセス・インスタンス情報を格納します。プロビジョニングが開始すると、Oracle Identity Managerにより、関連するプロセス(またはワークフロー)インスタンスが生成され、プロビジョニング・インスタンスに固有のプロセス関連情報が保存されます。 |
OSI |
プロセス・インスタンスに対して作成されたタスクに関する情報を格納します。 |
PKG |
プロセスまたはワークフローを、プロセス名、プロセス・タイプ、付加フィールド・マッピング、関連するリソースやプロセス・フォームなどのプロセスの詳細も含めて、Oracle Identity Managerに定義します。 |
SCH |
タスク・ステータス、ステータス・バケット、アダプタの実行開始または終了のタイミングなど、特定のタスク・インスタンスの実行に関連する情報を格納します。 |
TOS |
アトミック・プロセス情報を格納します。 |
リソース状態(プロセス)フォーム: この情報は、UDの親表および子表に格納されます。UD_*表は、アカウントの状態を格納するユーザー定義フィールドの表です。
Oracle Identity Managerでユーザー・プロファイルのスナップショットを取得すると、そのスナップショットはUPA表に格納されます。UPA表の構造は、表22-3に示すとおりです。
表22-3 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に正規化する内部ポストプロセッサを保持します。これらの表は、レポート・モジュールで適切なレポートを生成するために使用されます。
表22-4に、ユーザー・プロファイル監査で使用するデータベースの表を示します。
注意: ユーザー・プロファイル監査表の列名や使用方法などの詳細は、Oracle Identity Managerに付属のスキーマ・ドキュメントを参照してください。 |
表22-4 ユーザー・プロファイル監査の表
表名 | 説明 |
---|---|
AUD |
Oracle Identity Managerでサポートされているすべての監査者(例: ユーザー・プロファイル監査者)の詳細情報を格納します。 |
AUD_JMS |
ビジネス・トランザクションの一環として適用された変更の情報を格納するステージング表です。これは、監査エンジンが使用する前にデータ変更ログ・データを一時的に保存するための中間表です。監査メッセージが正常に処理されると、対応するレコードが表から削除されます。 注意: この表は、エンド・ユーザーの使用を意図していないため、直接使用しないでください。 |
UPA |
すべてのスナップショットおよびユーザー・プロファイルに適用された変更を格納するためのメイン監査表です。 |
UPA_FIELDS |
ユーザー・プロファイル監査履歴の変更を非正規化(垂直)形式で格納します。 |
UPA_GRP_MEMBERSHIP |
グループ・メンバーシップ履歴を非正規化形式で格納します。 |
UPA_RESOURCE |
ユーザー・プロファイル・リソース履歴を非正規化形式で格納します。 |
UPA_USR |
ユーザー・プロファイル履歴を非正規化形式で格納します。 |
UPA_UD_FORMS |
UPA_UD_FORMFIELDS表とともに、ユーザーのアカウント・プロファイル(プロセス・フォーム)への変更に関する情報を格納します。この表は、トランザクションで変更される様々なフォーム(親または子フォームなど)の変更の経過を管理します。アカウントまたは権限の属性の変更は、UPA_UD_FORMFIELDS表に格納されます。 |
UPA_UD_FORMFIELDS |
修正されたアカウント名または権限プロファイルのフィールド名を格納します。この表には、変更されたフィールドの古い値と新しい値も記録されます。 |
注意:
|
ユーザー・プロファイル監査データは監査レベルの設定に応じて増加し、ほとんどのデプロイメントにとって増加は深刻です。
また、古いユーザー・プロファイル監査データをクリーンにしたりアーカイブすることで将来の増大に対応する必要もあります。
監査アーカイブおよびパージ・ユーティリティを使用すると、これらの要件に適合できます。このユーティリティの詳細は、「監査アーカイブおよびパージ・ユーティリティの使用」を参照してください。
ロール・プロファイル監査は、ロール・プロファイルの属性、ロール管理者および直接サブロールに対する変更を対象としています。
この項では、次の項目について説明します。
ロール・プロファイル監査機能は、「ロール監査のレベル」システム・プロパティのキーワードXL.RoleAuditLevelの値によって決定されます。このプロパティでは、作成や変更などの操作がロールに対して行われたときに収集される監査データの量が制御されます。サポートされるレベルは次のとおりです。
なし: 監査データは収集されません。これがデフォルト値です。
ロール: ロールの作成、変更および削除が監査されます。
ロール階層: ロールの継承に対する変更が監査されます。
この項の内容は次のとおりです。
ロール・プロファイルの変更のたびに、Oracle Identity Managerでは、ロール・プロファイルのスナップショットを取得してデータベースの監査表に格納します。
Oracle Identity Managerでは、ロールに対する監査が作成されると、最初のスナップショットが存在していない場合も、スナップショットが生成されます。現在のスナップショットが最初のスナップショットとして取り扱われます。
次に、ロール・プロファイルの構成要素とその要素を構成する表を示します。
UGP: ロール・レコード(ロールのすべてのUDFを含む)
GPG: サブロール/親ロール情報
Oracle Identity Managerでロール・プロファイルのスナップショットを取得すると、そのスナップショットはGPA表に格納されます。この表の構造は、表22-5に示すとおりです。
表22-5 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で管理ロール・メンバーシップ・プロファイルのスナップショットを取得すると、そのスナップショットはARM_AUD表に格納されます。この表の構造は、表22-6に示すとおりです。
表22-6 ARM_AUD表の定義
列 | データ型 | 説明 |
---|---|---|
ARM_AUD_ID |
NUMBER(20) |
管理ロール監査ID |
MEMBERSHIP_ID |
NUMBER(20) |
管理ロール・メンバーシップID |
ROLE_ID |
NUMBER(20) |
管理ロールID |
USER_ID |
VARCHAR2(256 CHAR) |
ユーザー・メンバーID |
SCOPE_ID |
NUMBER(20) |
管理ロール・メンバーシップのスコープID |
INCLUDE_HIERARCHY |
NUMBER(1) |
組織階層が含まれるかどうか |
ARM_AUD_EFF_FROM_DATE |
TIMESTAMP(6) |
管理ロール監査の発効日 |
ARM_AUD_EFF_TO_DATE |
TIMESTAMP(6) |
管理ロール監査の失効日 |
USR_ACTION |
VARCHAR2(10 CHAR) |
ユーザー・メンバーのアクション |
USR_LOGIN |
VARCHAR2(256 CHAR) |
ユーザー・メンバーのログイン名 |
ロール・プロファイル・スナップショットのデータ要素が変更されると、Oracle Identity Managerではスナップショットが作成されます。
ロール・プロファイル・スナップショットの作成は、次のいずれかで変更が発生するイベントによりトリガーされます。
ロール・プロファイル・データ
親ロールの情報
ユーザーまたはユーザー・メンバーシップの追加または失効
カタログ監査の詳細は、「カタログ監査の構成」を参照してください。
ここでは、Oracle Identity Managerで監査機能を有効および無効にする方法について次の各項で説明します。
Oracle Identity Managerで監査機能を無効にする手順は、次のとおりです。
「システム・プロパティの変更」に記載されているように、「ユーザー・プロファイル監査データ収集レベル」(XL.UserProfileAuditDataCollection)および「ロール監査のレベル」(XL.RoleAuditLevel)の各システム・プロパティの値を「なし」に設定します。
「ジョブの無効化と有効化」に記載されているように、監査メッセージの発行タスク・スケジュール済ジョブを無効にします。
保留中の監査変更を監査表に記録する必要がある場合は、保留中の監査変更がすべて処理された後にスケジュール済タスクを無効にします。
カタログ監査を無効にするには、XL.CatalogAuditDataCollectionシステム・プロパティの値をnone
に設定します。
Oracle Identity Managerで監査機能を有効にする手順は、次のとおりです。
「ユーザー・プロファイル監査データ収集レベル」(XL.UserProfileAuditDataCollection)および「ロール監査のレベル」(XL.RoleAuditLevel)の各システム・プロパティの値を、「ユーザー・プロファイル監査機能」および「ロール・プロファイル監査機能」でそれぞれユーザー・プロファイルおよびロール・プロファイルの監査用に定義されているレベルのいずれかに設定します。
システム・プロパティの値の変更の詳細は、「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のポート番号です。
カタログ監査を有効にするには、XL.CatalogAuditDataCollectionシステム・プロパティの値をcatalog
に設定します。
このリリースのOracle Identity Managerでは、軽量監査エンジンが導入されています。
軽量監査エンジンは直接的です。レガシー監査とは異なり、非正規化レポート・スキーマはありません。レガシー監査エンジンから完全に独立しています。下位互換性を維持するためにOracle Identity Managerでは両方の監査エンジンを使用しています。
表22-7に、軽量監査エンジンによりサポートされるエンティティと、対応するエンティティ操作を示します。
表22-7 軽量監査エンジンにより監査されるエンティティ
エンティティ | 操作 |
---|---|
ユーザー |
作成、変更、削除、有効、無効、ロック、ロック解除、パスワードのリセット、パスワードの変更 |
ロール |
作成、変更、削除 |
ロールユーザー・メンバーシップ |
追加、削除、変更 |
組織 |
作成、変更、削除 |
組織ユーザー・メンバーシップ |
追加済、削除済 |
ポリシー |
作成、変更、削除、有効化、無効化 |
ルール |
作成、変更、削除、有効化、無効化 |
戻り値(子) |
作成、変更、削除 |
ルールの戻り値(子) |
追加、削除 |
ポリシーとルールの関係 |
追加、削除 |
ポリシー違反 |
作成、変更、削除、有効化、無効化 |
ポリシー違反原因 |
作成、変更、削除、有効化、無効化 |
スキャン定義 |
作成、変更、削除、有効化、無効化 |
スキャン定義とポリシーの関係 |
作成、変更、削除、有効化、無効化 |
スキャン実行 |
作成、変更、削除、有効化、無効化 |
スキャン実行とポリシーの関係 |
追加、削除 |
スキャン実行とユーザーの関係 |
追加、削除 |
スキャン実行とポリシー違反の関係 |
追加、削除 |
Remediator |
作成、変更、削除 |
タスク・ポリシー違反 |
作成、変更、削除 |
Oracle Identity Managerがエンティティまたは関係への変更を記録すると、AUDIT_EVENT表にデータが格納されます。表22-8にAUDIT_EVENT表の属性を示します。
表22-8 AUDIT_EVENT表の定義
属性 | データ型 | 説明 |
---|---|---|
event_id |
VARCHAR2(40) |
監査ログ・イベントの一意のID |
event_action |
VARCHAR2(255) |
CREATE、MODIFY、DELETE、ADD、REMOVE、MODIFY_RULE、DELETE_RULEなどの一連のエンティティ・タイプ・アクション |
event_date |
TIMESTAMP |
イベントの日付 |
event_actor_id |
VARCHAR2(40) |
アクションを実行したユーザーのID |
event_actor_name |
VARCHAR2(255) |
アクションを実行したユーザーの名前 |
event_mechanism |
VARCHAR2(40) |
セルフ、管理、リコンシリエーション、ポリシー・ベース、リクエスト |
event_request_id |
VARCHAR2(40) |
メカニズムがリクエストである場合はリクエストのrequestId |
event_status |
VARCHAR2(1) |
リクエストのステータスS (成功)またはF (失敗) |
event_fail_reason |
VARCHAR2(255) |
失敗したアクションの理由の説明。たとえば、POLICY_VIOLATION、ACCOUNT_LOCKEDおよびREQUEST NOT APPROVED。 |
event_hash |
VARCHAR2(1024) |
監査イベントが作成されると、AuditEventManagerはエンティティ・タイプの例、アクション、日付/時間などのイベントのコンテンツに基づきハッシュ値を生成します。ハッシュは暗号化されevent_hashに格納されます。AuditEventManagerは、特定の監査イベントのコンテンツが、イベントがデータベースに保存されてから、変更されていないことを検証するAPIメソッドを提供します。メソッドの実装によりハッシュ値が取得され、復号化されます。次に、ハッシュ値がイベントのコンテンツから再計算され、格納されている値と比較されます。値が同じ場合、メソッドはtrueを返し、そうでない場合はfalseを返します。 |
event_values_added |
CLOB |
追加された値。データの書式はname1=value1 name2=value2です。この場合、nameは、単純な名前(たとえば、firstname、userMembers)、またはネストされた複雑な属性を表すためのパス式(たとえば、user.address[type=work].street)にすることができます。SQLの"contains"検索が使用可能です。 |
event_values_removed |
CLOB |
削除された値。データの書式はname1=value1 name2=value2です。この場合、nameは、単純な名前(たとえば、firstname、userMembers)、またはネストされた複雑な属性を表すためのパス式(たとえば、user.address[type=work].street)にすることができます。SQLの"contains"検索が使用可能です。 |
entity_type |
VARCHAR2(40) |
エンティティのタイプ |
entity_id |
VARCHAR2(40) |
エンティティのID |
entity_name |
VARCHAR2(255) |
エンティティの名前、たとえば、ユーザー・ログイン、ロール名またはポリシー名。 |
to_entity_type |
VARCHAR2(40) |
関係内のエンティティのタイプ(たとえば、ロールユーザーのユーザー、ポリシールールのルールなど) |
to_entity_id |
VARCHAR2(40) |
関係内のエンティティのID |
to_entity_name |
VARCHAR2(255) |
関係内のエンティティの名前 |