12 リコンシリエーションのカスタマイズ
この章では、リコンシリエーションの機能およびアーキテクチャと、リコンシリエーション操作のカスタマイズの様々な側面について説明します。次の項目が含まれます。
12.1 リコンシリエーションの機能
リコンシリエーション機能は、パフォーマンス強化の機能、イベント管理インタフェースに関連する機能およびその他の機能に分けることができます。
この項では、リコンシリエーションの機能について説明します。次の項目が含まれます。
ノート:
アプリケーション・オンボード機能を使用して作成したリコンシリエーション構成の管理にはDesign Consoleを使用しないことをお薦めします。アプリケーション・オンボードを使用して作成されたリコンシリエーション構成を管理するには、Identity Self Serviceでアプリケーション・オンボード機能の「ジョブの管理」オプションを使用します。詳細は、『Oracle Fusion Middleware Oracle Identity Governanceでのセルフ・サービス・タスクの実行』のジョブの管理に関する項を参照してください。12.1.1 パフォーマンス強化の機能
リコンシリエーションのパフォーマンス強化の機能には、リコンシリエーション・プロファイル、イベントのフローと処理を制御するパラメータ、リコンシリエーション実行およびバッチによるイベントのグループ化、データベース内のリコンシリエーション・ロジック、Javaエンジン、データベース・スキーマなどがあります。
次の機能は、リコンシリエーション時のパフォーマンスの向上に役立ちます。
12.1.1.1 新しいメタデータ・モデル - プロファイル
メタデータがリコンシリエーション・ターゲットに関連付けられていると、同じターゲットに対して複数のジョブを実行して様々なタイプのリコンシリエーションを行う機能が制限されます。そのため、Oracle Identity Managerの各種コンポーネントのすべての構成は、MDSと呼ばれるXMLストアに集中的に格納されています。
下位互換性のために、現在のデプロイメント(アプリケーション・オンボード機能で構成されたデプロイメント以外)は、Oracle Identity Manager Design Consoleを介して継続して構成を管理し、構成は引き続きOracle Identity Managerデータベースに格納されます。Oracle Identity Managerでは、構成APIは構成を表から自動的に読み取り、それをデフォルト・プロファイルと呼ばれるXMLプロファイルに変換し、そのプロファイルを既存のリコンシリエーションの実行に関連付けます。
すべてのメタデータは、Oracle Identity Manager Design Consoleを使用して管理されます。Oracle Identity Manager Design Consoleを使用して、デフォルトのリコンシリエーション・プロファイルを生成できます。Oracle Identity Manager Design Consoleからリコンシリエーション構成を変更する場合は、このデフォルトのプロファイルを使用してプロファイルを再生成できます。デプロイメント・マネージャから構成をインポートする場合は、デフォルトでプロファイルが生成されます。
デフォルト以外のすべてのプロファイルは、任意のXMLエディタを使用してすべて管理できます。
関連項目:
リコンシリエーション・プロファイルの詳細は、リコンシリエーション・プロファイルを参照してください
12.1.1.2 制御フローとイベントの処理のパラメータ
イベントのフローおよび処理は、BatchSize
パラメータおよび「リコンシリエーション・イベントの再試行回数」
システム・プロパティによって制御されます。
この項は次のトピックで構成されています:
12.1.1.2.1 制御イベント処理のパラメータ
BatchSizeは、イベント処理を制御するパラメータです。これはバッチのサイズを決定します。バッチ・サイズが1の場合、一度に1つのイベントが処理されます。バッチ・サイズはシステム・プロパティとして利用でき、Oracle Identity Manager Design Consoleから管理できます。そのプロパティ名は、OIM.ReconBatchSizeです。システムのBatchSizeパラメータのデフォルト値は500です。システム・プロパティの詳細は、Oracle Identity Governanceの管理のOracle Identity Managerの構成を参照してください。
12.1.1.2.2 自動再試行を制御するシステム・プロパティ
「リコンシリエーション・イベントの再試行回数」システム・プロパティは、リコンシリエーション・エンジンがエラーとしてフラグを付けるか手動キューに送信する前に項目を再試行する回数を指定して、自動再試行を制御します。このプロパティの値が0の場合は、自動再試行オプションが構成されていないことを意味します。
関連項目:
自動再試行の詳細は、競合条件の処理を参照してください
12.1.1.3 リコンシリエーション実行によるイベントのグループ化
リコンシリエーション・データベースで作成されるすべてのイベントは、リコンシリエーション実行によってグループ化されます。リコンシリエーション実行のすべてのイベントは、共通のリコンシリエーション実行IDによってグループ化されます。各リコンシリエーション実行はプロファイルと関連付けられているため、リコンシリエーション実行のすべてのイベントは、同じプロファイルを使用して処理されます。これにより、構成はリコンシリエーション実行ごとに一度のみ取得されるため、パフォーマンスの最適化に役立ちます。
各プロファイルはそれぞれ異なるバッチ・サイズを使用できます。そのため、各ターゲット・リコンシリエーションに適したバッチ・サイズに調整することで、システム・パフォーマンスを向上させることができます。
12.1.1.4 バッチによるイベントのグループ化
バッチは、リコンシリエーション時のシステム・パフォーマンスを向上させるために導入されました。バッチには多数のイベントが含まれます。これはリコンシリエーション・エンジンの処理の単位です。バッチのサイズは設定可能です。リコンシリエーション実行は、固定サイズのバッチに分割されます。たとえば、リコンシリエーション実行が9900のイベントで構成され、バッチ・サイズが1000の場合、そのリコンシリエーション実行は、各サイズ1000のバッチと最後のサイズ900のバッチの計10個のバッチに分割されます。
バッチを1つの単位として処理すると、一度に1つのイベントを処理する際のオーバーヘッドを排除でき、システム・パフォーマンスが最適化されます。またこれにより、可能な場合にはバルク操作も実行できます。バッチを並列で実行して、ハードウェア・リソースをバランスよく使用することもできます。
12.1.1.5 リコンシリエーション・エンジン・ロジックのデータベースでの実装
Oracle Identity Managerでは、イベントを処理するロジックのほとんどは、ストアド・プロシージャとして実装されています。バッチ・レベルでの処理とPLSQLで実装されたロジックの組合せにより、SQLレイヤーでバルク操作を実行できるようになりました。次のステップは、バルク(一度に1つのバッチ)で実行されます。
-
必要なデータのチェック
-
一致ルールの適用
-
アクション・ルールの適用
12.1.1.6 改善されたJavaエンジン
ストアド・プロシージャで実行できず、Javaレイヤーで実行する必要のある処理でも、次の理由により、以前のリリースのエンジンよりも優れたパフォーマンスが得られます。
-
次の場合、Javaエンジンはデフォルトでバルク操作を実行します。
-
イベントをバッチでデータベースに送信
-
アクションに応じたバルク後処理編成の送信
-
-
可能なかぎり、バルク操作を実行します。
12.1.1.7 改善されたデータベース・スキーマ
新しいデータベース・スキーマによる顕著なパフォーマンスの向上は、単一の垂直表のかわりに水平表を使用して各種ターゲットのイベント詳細を格納することで実現されます。水平表はプロファイルごとに使用されます。
関連項目:
水平表の詳細は、ステージング表を参照してください
12.1.2 Webベースのイベント管理インタフェース
Oracle Identity Managerには、Webベースのイベント管理インタフェースが付属しており、Webからイベントを管理できます。
認可されたユーザーは、イベントとユーザーを検索し、イベントをユーザーおよびアカウントにリンクして例外を処理できます。イベントのクローズ、失敗したイベントの再評価の強制、および非定型リンクも実行できます。
非定型リンクは、「イベント管理」セクションの認可されたユーザーに提供される機能を参照して、イベントをOracle Identity Managerのいずれかのユーザーにリンクします。リコンシリエーション・エンジンによってそのイベントに対するユーザー一致が検出された場合でも、この非定型リンク機能により、ユーザーはその一致を無視して別のユーザーを選択できるようになります。これにより、誤った一致によって生じる例外を処理できます。
関連項目:
リコンシリエーション・イベントを管理するために実行されるタスクの詳細は、Oracle Identity Governanceの管理のリコンシリエーションの管理を参照してください
12.1.3 その他のリコンシリエーションの機能
その他のリコンシリエーションの機能には、ステージング表、処理または競合状態、非定型リンクなどがあります。
その他のリコンシリエーションの機能について、次の各項で説明します。
12.1.3.1 ステージング表
ステージング表は、次の各項で説明します。
12.1.3.1.1 ステージング表について
以前のバージョンのOracle Identity Managerでは、様々なターゲットから取得したすべてのイベント詳細が、リコンシリエーション・スキーマの1つの表に格納されます。各種リコンシリエーション・イベントに含まれる属性およびその名前とタイプのリストは、ターゲットによって異なる場合があります。つまり、あるターゲットのイベントに含まれるデータ・セットが、別のターゲットのイベントに含まれるものと異なる場合があります。このようなイベントのデータを1つの表に格納する唯一の方法は、1行に1つの属性を格納することです。そのため、以前のリリースでは、イベント詳細表の各行が、リコンシリエーション・イベント・データの1つの属性に相当しています。各属性行には、その属性が属するイベント、属性の名前、タイプ、値が格納されます。このような表のことを、このドキュメントでは垂直表とも呼びます。垂直表は、柔軟性と拡張性の面では利点がありますが、パフォーマンスの観点からはイベント・レコードを格納する効率的な方法とはいえません。
垂直表での格納が、水平表またはステージング表と呼ばれるターゲットごとの個別表で置き換えられました。イベントの属性を表内の行として垂直に格納する(属性の数が行数になる)のではなく、イベントの属性を列として格納するため、水平表と呼ばれます。つまり、ターゲットの属性数と同じ数の列が存在します。各イベントは、行として格納されます。異なるターゲットは異なる属性セットを持つことがあるため、各ターゲットは、イベントの詳細を格納するリコンシリエーション・スキーマ内に個別の表を持ちます。子表内の行として格納される複数値属性を処理する要件のために、1つのターゲットに複数の表が存在することがあります。
特定のプロファイルに対するイベント詳細表の各行には、1つのイベントのリコンシリエーション・フィールドのリストが格納されます。たとえば、信頼できるユーザーのリコンシリエーションで姓、名、電子メール属性がリコンサイルされる場合、RA_XELLERATE_USERステージング表に次の列が含まれます。
RE_KEY、RECON_FIRSTNAME、RECON_LASTNAME、RECON_EMAI
12.1.3.1.2 ステージング表の作成と管理
ステージング表は、ターゲットをOracle Identity Managerに対してデプロイしている場合のみ作成できます。これは、ターゲットのデプロイ時に、リコンシリエーション・システムがリコンサイルする必要のあるターゲットの属性とそのタイプのリストを把握しているためです。
デプロイメント・マネージャから構成をインポートしたり、Oracle Identity Manager Design Consoleから変更を行ったりした場合には、ステージング表が更新されます。Design Consoleからステージング表を生成するには、オブジェクト・リコンシリエーション・フォームで、リコンシリエーション・プロファイルの生成をクリックします。
アプリケーション・オンボード機能を使用して作成されたアプリケーションでは、ステージング表はアプリケーションの編集時に自動的に更新されます。
12.1.3.2 競合状態の処理
以前のリリースのOracle Identity Managerでは、イベントをリコンサイルする際に、そのイベントをリコンサイルする前に別のイベントをリコンサイルする必要があるために、リコンシリエーション・エンジンがそのイベントを正常に処理できないことがありました。たとえば、リコンシリエーション・エンジンは、アカウントを作成するイベントをリコンサイルする前に、ユーザーを作成するイベントをリコンサイルする必要があります。これを競合状態と呼びます。
Oracle Identity Managerの現在のリリースでは、「リコンシリエーション・イベントの再試行回数」システム・プロパティの値を設定することによって競合条件が処理されます。自動再試行を構成するには、このプロパティに0より大きい値を指定します。自動再試行を構成しない場合は、「リコンシリエーション・イベントの再試行回数」システム・プロパティの値に0を指定します。
自動再試行を構成する場合、リコンシリエーション・エンジンは競合状態をチェックします。競合状態が見つかると、リコンシリエーション・エンジンは、再試行回数に達するまでリコンシリエーション・イベントを再評価キューに入れます。
リコンシリエーションの再試行スケジュール済タスクは、再試行を待っているイベントがないか、そして再評価される準備ができているかどうかを定期的にチェックし、ある場合は、それをリコンシリエーション・エンジン処理用のキューに入れます。このスケジュール済タスクは、デフォルトで構成されています。
ノート:
自動再試行回数に達すると、リコンシリエーション・エンジンはイベントの処理をやめ、一致ルールによってステータスを設定します。ただし、「イベント管理」から再評価をリクエストすれば、手動で再試行できます。イベントの再評価の詳細は、Oracle Identity Governanceの管理のイベントの再評価を参照してください。
自動再試行は次の競合状態を処理できます。
-
ユーザーを作成するイベントがまだ処理されていないために、Oracle Identity Managerのアカウントを作成するアカウント・イベントが、このイベントのユーザーが作成される前に処理されます。
-
Oracle Identity ManagerのXellerateユーザーを作成するユーザー・イベントが、このユーザーが属する組織が作成される前に処理されます。
すべての自動再試行パラメータは、リコンシリエーション・プロファイルの一部として格納されます。つまり、あるリコンシリエーション実行に属するイベントに自動再試行が構成されていて、別のリコンシリエーション実行に属するイベントでは自動再試行が構成されていないこともあります。
Oracle Identity Managerでは、このプロファイル内のパラメータを管理するUIがないため、XMLエディタを使用してXMLプロファイルを直接編集してパラメータを管理する必要があります。XMLプロファイルの編集については、リコンシリエーション・プロファイルの作成および更新を参照してください。
12.1.3.3 非定型リンク
リコンシリエーション・エンジンで一致ルールに基づいて所有者を決定できない場合は、Oracle Identity Manager拡張管理を使用してアカウントをユーザーに手動でリンクできます。その後のアカウントに対する変更は、そのアカウントに自動的にリンクされます。
非定型リンクは、ユーザー・イベントおよびアカウント・イベントでサポートされています。リコンシリエーション・エンジンで一致ルールに基づいて所有者を決定できない場合は、ユーザー・イベントまたはアカウント・イベントをユーザーに手動でリンクできます。
関連項目:
非定型リンクの実行方法については、Oracle Identity Governanceの管理の非定型リンクを参照してください
12.2 リコンシリエーションのアーキテクチャ
リコンシリエーション・アーキテクチャのコンポーネントは、リコンシリエーション・プロファイル、メタデータ、リコンシリエーション・ターゲット、API、スキーマ、エンジン、コネクタ、アーカイブおよびイベント管理です。
この項では、リコンシリエーションのリコンシリエーション・プロセス・フローおよびコンポーネントについて説明します。次の項目が含まれます。
12.2.1 リコンシリエーション・プロセス・フロー
リコンシリエーションは、2つのシステム間のエンティティ・データが整合性のある状態で維持されるように、エンティティ・データをターゲット・システムからOracle Identity Managerに取得するプロセスです。
図12-1に、リコンシリエーションに関係するOracle Identity Managerの様々なコンポーネント、およびこれらのコンポーネント間の相互作用を示します。
リコンシリエーションのアーキテクチャを次のステップで説明します。
-
各コネクタには、スケジュール済タスクが関連付けられます。スケジューラがコネクタのスケジュール済タスクをトリガーし、このタスクによってイベントを生成するためのリコンシリエーションAPIが起動されます。イベントのタイプは、標準、変更ログまたは削除のいずれかです。
スケジューラの詳細は、Oracle Identity Governanceの管理のスケジューラの管理を参照してください。スケジュール済タスクの詳細は、リコンシリエーションのコネクタを参照してください。
-
リコンシリエーション・イベントがリコンシリエーション・イベント・リポジトリ(Oracle Identity Managerデータベース)に格納されます。
-
バッチ・サイズが適合する場合は、イベントのバッチをまとめて処理する非同期メッセージが送信されます。スケジュール済タスクの終了時に、最後のバッチのイベントを処理する目的で、別の非同期メッセージが送信されます。
ノート:
-
図12-1では、リコンシリエーション・エンジンがアクションJAVAレイヤーおよびリコンシリエーション・イベント・リポジトリの一部をカプセル化し、この図の矢印のすべてをオーケストレートしています。
-
このリリースでは、信頼できるソース・リコンシリエーションはユーザーに対してのみサポートされています。ロール、ロール・メンバーシップおよびロール階層のリコンシリエーションはサポートされていません。
-
このリリースのOracle Identity Managerでは、組織に対して、信頼できるソース・リコンシリエーションとアカウント・リコンシリエーションがサポートされています。
-
-
処理には、データの検証、エンティティの照合およびアクション(作成、更新、削除など)が含まれます。その後、カーネル・オーケストレーションを介した後処理が続きます。アクション・モジュールの詳細は、アクション・モジュールを参照してください。リコンシリエーション・プロファイルの詳細は、新しいメタデータ・モデル - プロファイルを参照してください。
-
デフォルトでは、リコンシリエーションのイベント処理は大量に発生するため、後処理までのすべてのステップは、PL/SQLストアド・プロシージャで実行されます。次のシナリオでは、イベントを一度に1つずつ処理できます(この場合、照合までのすべてのステップはPL/SQLで処理され、アクションはJavaレイヤーで実行されます)。
-
イベントがイベント管理UIから処理される場合
-
失敗したイベントが、定期的に実行される再試行のスケジュール済タスクによって再試行される場合
単一のイベントを処理するリコンシリエーションの場合、アクションおよび後処理はカーネル経由で実行されます。
-
-
リコンシリエーション・イベントは、リコンシリエーション管理サービスの別のAPIコールによって、イベント管理UIに対して使用可能になります。
12.2.2 リコンシリエーション・プロファイル
リコンシリエーション・プロファイルは、特定のリソースに対するリコンシリエーションの実行方法を管理するために定義された構成です。
特定のリソースに複数のリコンシリエーション・プロファイルを指定し、それぞれに一致ルール、アクション・ルールおよびフィールド・マッピングを定義し、その際、リソースに対応する各プロファイルには異なる定義を指定できます。たとえば、削除を1日1回のみ実行する必要がある場合は、一方のリコンシリエーションの実行で新規および変更されたアカウントのリコンシリエーションを実行し、もう一方のリコンシリエーションの実行でアカウントの削除をリコンサイルできます。この例では、2つのリコンシリエーション実行と2つのプロファイルを定義します。各プロファイルはそれぞれのリコンシリエーションの実行に関連付けられ、各プロファイルには独自のリコンシリエーション・ルールがあります。
この項の内容は次のとおりです。
12.2.2.1 サンプル構成プロファイル
プロファイルはXMLベースの構成ファイルで、Oracle Identity Manager MetaData Store (MDS)に格納されます。次の例は、リコンシリエーション・プロファイルのサンプルを示しています。
<?xml version='1.0' encoding='UTF-8'?> <profile xmlns="http://www.oracle.com/oracle/iam/reconciliation/config" ownerType="User" changeType="CHANGELOG" auditEnabled="true" batchSize="500" resourceType="Account" name="Modified AD User" configure="true" active="true"> <matchingRule>((UPPER(USR.usr_udf_obguid)=UPPER(RA_ADUSERE469E5C8.RA_OBJECTGUID)))</matchingRule> <form oimTableName="UD_ADUSER" stagingTableName="RA_ADUSERE469E5C8" name="Modified AD User" mlsOimTable="mlsOIMTableIfAny" mlsStagingTable="mlsStagingTableIfmlsOIMTable"> <matchingRule>(UD_ADUSER.UD_ADUSER_OBJECTGUID=RA_ADUSERE469E5C8.RA_OBJECTGUID)</matchingRule> <targetAttributes> <targetAttribute type="String" name="Status"> <stagingField type="String" length="256" name="RA_STATUS"/> </targetAttribute> <targetAttribute type="String" name="copyStatus" ref="Status" mls="true"> <stagingField type="String" length="256" name="COPY_STATUS"/> <oimAttribute type="String" fieldName="OIM_OBJECT_STATUS" fieldType="String" name="OIM_OBJECT_STATUS"/> </targetAttribute> <targetAttribute type="String" name="password" encrypted="true" keyField="false" required="false"> <stagingField type="String" length="256" name="PASSWORD"/> <oimAttribute type="String" fieldName="UD_ADUSER_PASSWORD" fieldType="String" name="AD Password"/> </targetAttribute> <targetAttribute type="Date" name="accountExpires"> <stagingField type="Date" name="RA_ACCOUNTEXPIRES"/> <oimAttribute type="Date" fieldName="UD_ADUSER_DATE" fieldType="Date" name="Account Expiration Date"/> </targetAttribute> <targetAttribute type="ITResource" name="IT Resource" keyField="false"> <stagingField type="ITResource" length="19" name="RA_ITRESOURCE15641F83"/> <oimAttribute type="Number" fieldName="UD_ADUSER_AD" fieldType="Number" name="AD Server"/> </targetAttribute> <targetAttribute type="String" keyField="true" name="objectGUID"> <stagingField type="String" length="32" name="RA_OBJECTGUID"/> <oimAttribute type="String" fieldName="UD_ADUSER_OBJECTGUID" fieldType="String" name="Object GUID"/> </targetAttribute> </targetAttributes> <form oimTableName="UD_ADUSRC" stagingTableName="RA_ADUSERGROUPDETA902DB909" name="memberOf"> <matchingRule>(UD_ADUSRC.UD_ADUSRC_GROUPNAME=RA_ADUSERGROUPDETA902DB909.RA_MEMBEROF)</matchingRule> <targetAttributes> <targetAttribute type="String" keyField="true" name="memberOf"> <stagingField type="String" length="256" name="RA_MEMBEROF"/> <oimAttribute type="String" fieldName="UD_ADUSRC_GROUPNAME" fieldType="String" name="UD_ADUSRC_GROUPNAME"/> </targetAttribute> </targetAttributes> </form> </form> <actionRules> <actionRule condition="One Entity Match Found" action="Establish Link"/> </actionRules> </profile>
12.2.2.2 リコンシリエーション・プロファイルの要素および構造
-
<profile>
: リコンシリエーション構成プロファイルのルート要素またはオブジェクト。-
<ownerType>
: ロール階層、ロール・メンバーシップ、アカウントのみに対して、それぞれRole、Role、Userの値が移入されます。 -
<changeType>
: デフォルトでは(または要素が存在しない場合)、値はCHANGELOGです。それ以外の場合、値はREGULAR、CHANGELOGまたはDELETEとなります。 -
<auditEnabled>
: アカウント・タイプのプロファイルのみで使用されます。デフォルトでは(または要素が存在しない場合)、値はfalseで、リソース・オブジェクトの監査が停止されます。 -
<batchSize>
: バッチごとのリコンシリエーション・イベントのサイズまたは数を変更します。デフォルトでは(または要素が存在しない場合)、バッチ・サイズは500です。 -
<resourceType>
: 値は、Account、User、Role、RoleRole、RoleUser、Organizationのいずれかです。 -
<name>
: これは、リソース・オブジェクト名です。 -
<configure>
: デフォルトでは(または要素が存在しない場合)、値はfalseです。システムでリコンシリエーション構成を作成または更新する場合は、これをtrueとしてマークする必要があります。プロファイルのすべての手動修正の後、この属性をtrueとしてマークする必要があります。本番のテストの場合は、ターゲット・システムにインポートする前にこの要素をtrueとしてマークします。 -
<active>
: デフォルトでは(または要素が存在しない場合)、値はtrueです。破損したプロファイルまたは無効なプロファイルの場合、値はfalseで、プロファイルが使用不可とマークされます。このようなプロファイルは、システムにロードされません。プロファイルのすべての手動修正の後、この属性を削除するか、trueとしてマークする必要があります。 -
<matchingRule>
: ロール階層、ロール・メンバーシップ、アカウントのみに対して、所有者一致ルールが移入されます。それ以外の場合、要素は存在しません。 -
<form>
: プロファイルごとに1つの親フォームを指定します。-
<oimTableName>
: データのリコンサイル先のOracle Identity Manager表。 -
<stagingTableName>
: ターゲット・システムのデータが処理前に格納されるステージング表。 -
<name>
: 親フォームの場合はプロファイル名と同じであり、子フォームの場合は複数値属性名と同じです。 -
<mlsOimTable>
: リソース・オブジェクトがMLA対応の場合は、データのリコンサイル先である多言語サポート(MLS) Oracle Identity Manager表。 -
<mlsStagingTable>
: リソース・オブジェクトがMLS対応の場合は、ターゲット・システムのデータが処理前に格納されるMLSステージング表。 -
<matchingRule>
: フォーム(プロファイルに関連付けられているリソース・オブジェクト)の一致ルールであり、必須です。 -
<targetAttributes>
: すべてのターゲット属性をグループ化します。-
<targetAttribute>
: ターゲット・システムの属性ごとに1つ。-
<type>
: ターゲット属性のデータ・タイプ。 -
<keyfield>
: デフォルト値はfalseです。アカウント・リソース・タイプの一致ルールで使用されます。 -
<name>
: リコンシリエーションを開始するコネクタによって提供される、ターゲット・システムの属性の名前。 -
<required>
: 属性が必須の場合、この要素が存在する必要があります。 -
<encrypted>
: 値がtrueの場合、属性値は暗号化されてステージング表およびOracle Identity Manager表に格納されます。 -
<ref>
: 値がコピーされてこの属性に格納される、同じフォーム内のターゲット属性の名前。 -
<stagingField>
: ターゲット属性に対応する、ステージング表の列を指定します。これには、次の要素が含まれます。<type>
: ステージング表の列のデータ・タイプ。<length>
: ステージング表の列またはフィールドの長さまたはサイズ。<name>
: ステージング表の列の名前。 -
<oimAttribute>
: マップされたOracle Identity Managerドメイン属性名を指定します。この要素は、ターゲット属性がマップされる場合にのみ存在します。これには、次の要素が含まれます。<name>
: Oracle Identity Manager属性名<type>
: Oracle Identity Manager属性タイプ<fieldName>
: Oracle Identity Managerのマップ済属性に対応するOracle Identity Manager表の列名<fieldType>
: Oracle Identity Managerのマップ済属性に対応するOracle Identity Manager表の列の型
-
-
-
<form>
: 子フォームか、親フォームまたはルート・フォームのフォームを指定します。複数値属性に対応します。-
<matchingRule>
: 子フォームの一致ルール。 -
<targetAttributes>
: これは、親の<targetAttributes>
要素と同じ要素です。この要素は、複数回ネストできます。たとえば:<form><targetAttributes><form><targetAttributes>
-
-
-
<actionRules>
: リソース・オブジェクトのすべてのアクション・ルールをグループ化します。-
<actionRule>
: アクション・ルールごとのactionRule要素。-
<condition>
: 値は、No Matches Found、One Entity Match Found、Multiple Entity Matches Found、One Process Match Found、Multiple Process Matches Foundのいずれかです。 -
<action>
: プロファイルXSDに基づいて任意に指定できます。
-
-
-
リソース・オブジェクトには、リコンシリエーション構成に関連付けられたデフォルトのプロファイルが常に存在します。デフォルトのプロファイルは、開発者の環境のOracle Identity Manager Design Consoleから明示的に生成するか、「デプロイメント・マネージャ」またはアプリケーション・オンボードの「アプリケーションの管理」からのインポート時に暗黙的に生成できます。プロファイルを作成および更新する方法の詳細は、リコンシリエーション・プロファイルの手動による更新を参照してください。
12.2.3 リコンシリエーション・メタデータ
リコンシリエーション・メタデータは、リコンシリエーション・イベントの作成と処理で使用する様々な構成で構成されます。
リコンシリエーション・メタデータは、プロファイルと呼ばれる論理的なコンテナに格納されます。リコンシリエーション・プロファイルの詳細は、リコンシリエーション・プロファイルを参照してください。
次に、リコンシリエーション・メタデータの例を示します。
-
マッピング・ルール: ターゲット・システムから受け取ったデータを、そのターゲット・システムに関して管理されている、Oracle Identity Managerのデータにマップする際に使用されます。
-
一致ルール: イベント・データと特定のアカウント、ユーザーまたはロールを相互に関連付けるために、各リコンシリエーション・イベントの処理時に使用されます。
-
アクション・ルール: リコンシリエーション・イベントの処理結果に基づいてOracle Identity Managerが実行するアクションを指定するために使用されます。
-
ターゲット属性のリスト: リコンシリエーションを介してターゲット・システムから受け取ったデータ属性の定義に使用されます。マッピング・ルールで使用され、Oracle Identity Manager Design Consoleを使用するかアプリケーション・オンボード機能を使用して構成されます。
リコンシリエーション・イベントの作成と処理で使用する様々な構成は、Oracle Identity Manager Design Consoleを使用して管理され、下位互換性のために、Oracle Identity Managerリリース9.1.0と同じOracle Identity Managerの表に格納されます。さらに、これらの構成はリコンシリエーション・プロファイルにも格納されます。
ノート:
Oracle Identity Managerでのリコンシリエーションには、メタデータ・モデルが使用されます。リコンシリエーションの基本的な概念については、Oracle Identity Governanceの管理のリコンシリエーションの管理を参照してください。
12.2.4 リコンシリエーション・ターゲット
リコンシリエーション・ターゲットとは、Oracle Identity Managerの変更のソースとして機能するアプリケーションのインスタンスです。
リコンシリエーション・ターゲットの例には、Oracle Identity Managerのアイデンティティのソースとして機能する人事管理システムがあります。リコンシリエーション・ターゲットのソースは、ユーザーまたはアカウントのいずれかです。
12.2.5 リコンシリエーション実行
リコンシリエーション実行とは、リコンシリエーション・コネクタと関連する構成の組合せを意味し、スケジュール済タスクによって実行される場合は、関連する構成に定義されているルールに基づいてリコンシリエーションを実行します。
スケジューラは、リコンシリエーションを固定間隔で定期的に実行します。リコンシリエーション実行はOracle Identity Managerのスケジューラでスケジュールされ、指定した頻度で実行されます。リコンシリエーション実行時に作成されたすべてのイベントは、一意のリコンシリエーション実行IDに従ってグループ化されます。
12.2.6 リコンシリエーションAPI
リコンシリエーションAPIは、リコンシリエーション・データをリコンシリエーション・イベントの形式でOracle Identity Managerに提供するために公開された一連のAPIです。
コネクタは、このAPIを使用して、リコンシリエーション・イベント・リポジトリにデータをプッシュできます。リコンシリエーションをスケジュールに従って実行する場合は、APIを実行するスケジュール済タスクを設定できます。既存のAPIがサポートされているため、既存のコネクタを変更する必要はありません。
12.2.7 リコンシリエーション・スキーマ
リコンシリエーション用にターゲット・システムから受け取ったデータは、リコンシリエーション・スキーマに格納されます。
このデータには、Oracle Identity Managerとリコンサイルする変更も含まれています。
リコンシリエーション・スキーマとは、リコンシリエーション・データを格納する一連のスキーマ表です。リコンシリエーション・スキーマは、パフォーマンス上の理由および将来の拡張性に備えて再設計されています。リコンシリエーション・スキーマの詳細は、改善されたデータベース・スキーマを参照してください。
12.2.8 リコンシリエーション・エンジン
リコンシリエーション・エンジンは、照合モジュールおよびアクション・モジュールで構成されています。
この項では、リコンシリエーション・エンジンについて説明します。次の項目が含まれます。
12.2.8.1 リコンシリエーション・エンジンについて
リコンシリエーション・エンジンでは、構成可能なすべてのコンポーネントが使用され、これらのコンポーネントを使用して入力データをアクション・アイテムのリストに変換するデータ・プロセッサとルール・エバリュエータが組み込まれています。ルールのコンテキストに基づいてアクションを自動化できるかどうかを判断するコンポーネントも組み込まれています。アクションが自動または手動で実行されると、エンジンは適切な更新とプロビジョニング・アクションを実行します。
リコンシリエーション・エンジンのメイン・タスクは、比較を実施して、実行するアクションを判断し、そのアクションをOracle Identity Managerで適用することです。2つのモジュールがあり、各モジュールについては、次の各項で説明します。
12.2.8.2 照合モジュール
プロファイルで指定した照合ルールは、検索対象レコードがOracle Identity Managerにあるかどうかを識別するために使用されます。一致ルールは、Oracle Identity Managerにすでにレコードがあるアイデンティティに対応するデータであるかどうかを識別するためのルール、あるいはOracle Identity Managerでアカウントの所有者を識別するためのルールです。
アカウントのエンティティでは、レコードが見つからない場合は、次に所有者の照合が実行され、アカウントの所有者が識別されます。
ロール階層イベントでは、親ロールおよび子ロールを識別する照合が実行されます。
ノート:
ロール階層およびロール・メンバーシップのリコンシリエーションの実行では、照合基準に、ネームスペースとロール名の両方が含まれている必要があります。次に、照合ルールの例を示します。
((UGP.ugp_rolename=x) and (UGP.ugp_namespace=y))
xはロール名にマップされているステージング表名の列の名前で、yはネームスペースにマップされるステージング列の名前です。
評価が終了すると、照合表には、イベントの基準を満たし、Oracle Identity Manager内で検出された考えられる適合すべてが格納され、イベントの状態は表12-1に示すいずれかのステータスに更新されます。
表12-1 リコンシリエーションのステータス・イベント
ステータス・イベント | 説明 |
---|---|
データを受信しました |
イベント・データがデータベースに作成され、次の処理に対する準備が整っています。 |
イベントを受信しました |
リコンシリエーション・イベントが作成され、次の処理に対する準備が整っています。finishReconciliationEvent APIはコールされていません。 |
データ検証に失敗しました |
リコンシリエーション・イベント・レコードは無効です。たとえば、ロール・カテゴリが無効なロール・イベントは検証に失敗します。この状況は競合状態を示している可能性があります。 |
データ検証に成功しました |
イベント・データが正常に検証され、イベントはエンジンで支障なく処理できます。 |
複数のアカウントの一致が見つかりました |
現在の一致ルールでは、データと一致する複数のアカウント・レコードが見つかりました。 |
アカウントの一致が見つかりません |
現在の一致ルールでは、データと一致するアカウント・レコードは見つかりません。 |
単一のアカウントの一致が見つかりました |
現在の一致ルールでは、データと一致する単一のアカウント・レコードが見つかりました。 |
複数の組織の一致が見つかりました |
現在の一致ルールでは、データと一致する複数の組織レコードが見つかりました。 |
組織の一致が見つかりません |
現在の一致ルールでは、データと一致する組織レコードは見つかりません。 |
単一の組織の一致が見つかりました |
現在の一致ルールでは、データと一致する単一の組織レコードが見つかりました。 |
複数のロール付与の一致が見つかりました |
ロール内のユーザー・メンバーシップと一致する複数のレコードが見つかりました。 |
ロール付与の一致が見つかりません |
ロール内のユーザー・メンバーシップと一致するレコードは見つかりません。 |
単一のロール付与の一致が見つかりました |
ロール内のユーザー・メンバーシップと一致する単一のレコードが見つかりました。 |
複数のロールの一致が見つかりました |
現在の一致ルールでは、データと一致する複数のロール・レコードが見つかりました。 |
ロールの一致が見つかりません |
現在の一致ルールでは、データと一致するロール・レコードは見つかりません。 |
単一のロールの一致が見つかりました |
現在の一致ルールでは、データと一致する単一のロール・レコードが見つかりました。 |
ロール・メンバーが見つかりませんでした |
現在の一致ルールでは、データと一致するロール・メンバーは見つかりません。 |
ロールの親が見つかりません |
現在の一致ルールでは、データと一致するロールは見つかりません。 |
複数のロール関係の一致が見つかりました |
現在の一致ルールでは、イベントのデータと一致する複数のロール対ロールの関係が見つかりました。 |
ロール関係の一致が見つかりません |
現在の一致ルールでは、イベントのデータと一致するロール対ロールの関係は見つかりません。 |
単一のロール関係の一致が見つかりました |
現在の一致ルールでは、イベントのデータと一致する単一のロール対ロールの関係が見つかりました。 |
複数のユーザーの一致が見つかりました |
現在の一致ルールでは、データと一致する複数のユーザー・レコードが見つかりました。 |
ユーザーの一致が見つかりません |
現在の一致ルールでは、データと一致するユーザー・レコードは見つかりません。 |
単一のユーザーの一致が見つかりました |
現在の一致ルールでは、データと一致する単一のユーザー・レコードが見つかりました。 |
無効なイベント・データが渡されました |
イベントに無効なデータが含まれています。 |
再評価中です |
リコンシリエーション・イベントは、現在、リコンシリエーション・イベント管理UIで再評価されています。 |
再試行中です |
リコンシリエーション・イベントは、現在、自動的に再試行されています。このステータス・イベントは非推奨になりました。 |
作成に失敗しました |
ユーザー、アカウントまたはロールのエンティティが、正常に作成されていません。 |
作成に成功しました |
ユーザー、アカウントまたはロールのエンティティは、正常に作成されました。 |
削除に失敗しました |
ユーザー、アカウントまたはロールのエンティティが、正常に削除されていません。 |
削除に成功しました |
ユーザー、アカウントまたはロールのエンティティは、正常に削除されました。 |
イベントがクローズされました |
リコンシリエーション・イベントは、リコンシリエーション・イベント管理UIからクローズされました。変更は完了しています。 |
更新に失敗しました |
ユーザー、アカウントまたはロールのエンティティが、正常に更新されていません。 |
更新に成功しました |
ユーザー、アカウントまたはロールのエンティティは、正常に更新されました。 |
12.2.8.3 アクション・モジュール
このモジュールでは、表12-2に示すように、イベントの状態、エンティティ・タイプおよびアクション・ルールに基づいてアクションが適用されます。
表12-2 アクション・ルール
イベントの状態 | エンティティ・タイプ | アクション | 説明 |
---|---|---|---|
ユーザーの一致が見つかりません |
ユーザー |
なし |
アクションは実行されません。 |
ユーザーの一致が見つかりません |
ユーザー |
ユーザーの作成 |
Oracle Identity Managerのユーザーを作成します。 |
アカウントの一致が見つかりません |
アカウント |
なし |
アクションは実行されません。 |
単一のユーザーが一致しました |
ユーザーまたはアカウント |
なし |
アクションは実行されません。 |
単一のユーザーが一致しました |
ユーザー |
リンクの確立 |
変更タイプに基づいて一致したユーザーを変更または削除します。 |
単一のユーザーが一致しました |
アカウント |
リンクの確立 |
所有者が識別され、アカウントが作成されます。 |
複数のユーザーが一致しました |
ユーザーまたはアカウント |
なし |
アクションは実行されません。 |
単一のアカウントが一致しました |
アカウント |
なし |
アクションは実行されません。 |
単一のアカウントが一致しました |
アカウント |
リンクの確立 |
変更タイプに基づいてアカウントを変更または失効します。 |
複数のアカウントが一致しました |
アカウント |
なし |
アクションは実行されません。 |
ロールの一致が見つかりません |
ロール |
なし |
アクションは実行されません。 |
単一のロールの一致が見つかりました |
ロール |
なし |
アクションは実行されません。 |
単一のロールの一致が見つかりました |
ロール |
リンクの確立 |
ロールを変更または削除します。 |
単一のロールの一致が見つかりました |
ロール・メンバーシップ |
ロール・メンバーシップの作成 |
ロール・メンバーをOracle Identity Managerに付与します。 |
単一のロールの一致が見つかりました |
ロール・メンバーシップ |
ロール・メンバーシップの削除 |
ロール・メンバーをOracle Identity Managerから削除します。 |
単一のロールの一致が見つかりました |
ロール・メンバーシップ |
なし |
アクションは実行されません。 |
単一のロールの一致が見つかりました |
ロール階層 |
ロール階層の作成 |
Oracle Identity Managerにロール階層を作成します。 |
単一のロールの一致が見つかりました |
ロール階層 |
ロール階層の削除 |
Oracle Identity Managerのロール階層を削除します。 |
単一のロールの一致が見つかりました |
ロール階層 |
なし |
アクションは実行されません。 |
複数のロールが一致しました |
ロール、ロール・メンバーシップおよびロール階層 |
なし |
アクションは実行されません。 |
ロール付与の一致が見つかりません |
ロール・メンバーシップ |
なし |
アクションは実行されません。 |
ロール付与の一致が見つかりません |
ロール・メンバーシップ |
ロール・メンバーの作成 |
Oracle Identity Managerにロール・メンバーを作成します。 |
単一のロール付与の一致が見つかりました |
ロール・メンバーシップ |
なし |
アクションは実行されません。 |
単一のロール付与の一致が見つかりました |
ロール・メンバーシップ |
リンクの確立 |
ロール・メンバーの削除 |
複数のロール付与の一致が見つかりました |
ロール・メンバーシップ |
なし |
アクションは実行されません。 ノート: ロール付与の照合は主キー(ユーザー・キーとグループ・キーの組合せ)を検索することで処理されるため、この状態は発生しません。 |
ロールの親の一致が見つかりません |
ロール階層 |
なし |
アクションは実行されません。 |
ロールの親の一致が見つかりません |
ロール階層 |
ロールの親の作成 |
Oracle Identity Managerにロールの親を作成します。 |
単一のロールの親の一致が見つかりました |
ロール階層 |
なし |
アクションは実行されません。 |
単一のロールの親の一致が見つかりました |
ロール階層 |
リンクの確立 |
ロールの親の削除 |
複数のロールの親の一致が見つかりました |
ロール階層 |
なし |
アクションは実行されません。 |
データ検証に失敗しました |
ロール、ロール階層、ロール・メンバー |
競合状態 |
アクションは実行されません。イベントを再評価する必要があります。 |
親ロールが見つかりません |
ロール階層 |
競合状態 |
アクションは実行されません。イベントを再評価する必要があります。 |
ロール・メンバーが見つかりません |
ロール・メンバーシップ |
競合状態 |
アクションは実行されません。イベントを再評価する必要があります。 |
12.2.9 リコンシリエーションのコネクタ
コネクタとは、ターゲット・システムから変更を抽出し、リコンシリエーションAPIをコールしてリコンシリエーション・スキーマにイベントを作成するソフトウェアです。
使用するコネクタが事前定義済リコンシリエーション・モジュールに付属している場合は、スケジュール済タスク定義を使用できます。このコンポーネントを使用して、データおよび他のコネクタ固有のパラメータを追跡するために、ターゲット・システムで変更がポーリングされる頻度を制御します。
リコンシリエーションのコネクタは、デプロイメント・マネージャを使用して、またはアプリケーション・オンボードでの最初のアプリケーション作成時にデプロイされます。コネクタがデプロイされると、そのコネクタの対応するリコンシリエーション・プロファイルがメタデータ・ストア(MDS)に作成され、イベント・データを格納する水平表も作成されます。
ノート:
リコンシリエーションの実行中は、リコンシリエーション・プロファイルを手動で更新したり、デプロイメント・マネージャまたはOracle Identity Manager Design Consoleからリコンシリエーション構成を更新しないでください。これは、リコンシリエーションの実行中にリコンシリエーション・フィールドが削除または更新されると、イベント・データが無効になる可能性があるためです。
コネクタの構成の詳細は、Oracle Identity Managerのコネクタのドキュメントを参照してください。
関連項目:
-
MDSの詳細は、リコンシリエーション・メタデータを参照してください
-
ステージング表の詳細は、ステージング表を参照してください
12.2.10 アーカイブ
リコンシリエーション・アーカイブ・ユーティリティを使用すると、処理したイベントをアクティブ・リコンシリエーション表からアーカイブ表に移動できます。
移動するイベントは、時間の範囲に基づいて選択できます。アーカイブできるのは、リンクしたイベントおよびクローズしたイベント(つまり、正常に処理されたか、管理者がクローズしたイベント)のみです。
関連項目:
リコンシリエーション・アーカイブ・ユーティリティの使用方法は、Oracle Identity Governanceの管理のリコンシリエーション・アーカイブ・ユーティリティの使用を参照してください
12.2.11 下位互換性
新規のリコンシリエーション・サービスを活用するために、既存のリコンシリエーション構成またはスケジュール済タスクを変更する必要はありません。
Oracle Identity Managerの以前のリリースでのリコンシリエーション設定に関する既存の構成は、12c リリース2 (12.2.1.2)にアップグレードした後も引き続き機能します。アップグレードの一環として、リコンサイル対象の既存のオブジェクト・タイプごとに、対応するリコンシリエーション・イベントの表が作成されます。
12.2.12 リコンシリエーション・イベントの管理
リコンシリエーション・イベントは、Oracle Identity System Administrationの「イベント管理」セクションを使用して管理されます。
「イベント管理」セクションでは、Oracle Identity Managerリコンシリエーション・エンジンによって生成されたリコンシリエーション・イベントを表示および管理できます。これらのイベントは、スケジュール済リコンシリエーション実行を介して生成されます。「イベント管理」セクションには、リコンシリエーション実行およびイベントの検索機能が用意されています。「イベント管理」セクションを使用すると、生成されたイベントに対してリコンシリエーションを手動で実行できます。
関連項目:
Oracle Identity System Administrationでのリコンシリエーション・イベントの管理の詳細は、Oracle Identity Governanceの管理のリコンシリエーション・イベントの管理を参照してください
図12-2は、リコンシリエーション・イベントのライフサイクルにおける様々なステージを示しています。
12.3 リコンシリエーション・ルールの定義
リコンシリエーション・ルールを定義するには、ルール定義を作成し、ルール要素を追加し、変換プロパティを設定し、ルール内にルールをネストします。
この項では、リコンシリエーション・ルールおよびそれらの定義方法について説明します。次の項目が含まれます。
12.3.1 リコンシリエーション・ルールの理解
どのエンティティ・レコードを信頼できるソースへの変更に関連付けるかや、どのエンティティ・レコードがターゲット・リソースで検出されたアカウントの所有者であるかを決定するために、リコンシリエーション・ルールを定義し、呼び出すことができます。
次のインスタンスで起動されるリコンシリエーション・ルールを定義できます。
-
信頼できるソースへの変更に関連付けられているユーザーまたは組織のレコードをOracle Identity Managerにより判別する場合。これらのルールは、「リコンシリエーション・マネージャ」フォームの「リコンシリエーション・データ」タブで、リコンシリエーション・イベントのすべての必須フィールドが処理された時点で評価されます。
-
(たとえば、システムで変更が検出されたことを受けて)どのユーザー・レコードまたは組織レコードがターゲット・リソースで検出されたアカウントの所有者かをOracle Identity Managerにより判別する場合。これらのルールは、「リコンシリエーション・マネージャ」フォームの「リコンシリエーション・データ」タブで、リコンシリエーション・イベントのすべての必須フィールドが処理され、同フォームのプロセス一致ツリー・タブのイベントと一致するプロセスがなかった場合のみ評価されます。
Design Consoleの「リコンシリエーション・ルール」フォームは、Oracle Identity Managerのリコンシリエーション・ルールを作成および管理するために使用します。このフォームは、「開発ツール」フォルダにあります。図12-3に、「リコンシリエーション・ルール」フォームを示します。
ノート:
アプリケーション・オンボードを使用して作成されたリコンシリエーション構成を管理するには、Identity Self Serviceでアプリケーション・オンボード機能の「ジョブの管理」オプションを使用します。アプリケーション・オンボードからリコンシリエーション・ルールを追加する方法の詳細は、『Oracle Fusion Middleware Oracle Identity Governanceでのセルフ・サービス・タスクの実行』のジョブの管理に関する項を参照してください。前述のように、このフォームを使用して定義されたルールは、信頼できるソースまたはターゲットのリソースでの変更に関連付けられているユーザーまたは組織いずれかとの一致に使用されます。これらのタイプのルールは、それぞれユーザー一致ルールまたは組織一致ルールと呼ばれます。これらのルールは、「ルール・デザイナ」フォームを使用して定義できるルールと似ていますが、「リコンシリエーション・ルール」フォームを使用して作成されたルールは、(単一のターゲット・リソースに関連するため)リソース・オブジェクト固有で、リコンシリエーション関連の機能のみに影響します。
12.3.2 リコンシリエーション・ルールの定義
Design Consoleの「リコンシリエーション・ルール」フォームは、Oracle Identity Managerのリコンシリエーション・ルールを作成および管理するために使用します。このフォームは、「開発ツール」フォルダにあります。
次の手順では、リコンシリエーション・ルールの定義方法について説明します。
ノート:
次の手順では、必ず「アクティブ」チェック・ボックスが選択されていることを確認してください。このチェック・ボックスが選択されていない場合、リソースに関連するリコンシリエーション・イベントの処理時に、Oracle Identity Managerのリコンシリエーション・エンジンによってルールが評価されません。ただし、このチェック・ボックスを選択できるのは、Oracle Identity Managerによって「valid」システム・チェック・ボックスが選択されている場合のみです。「valid」チェック・ボックスは、1つ以上のルール要素が作成され、そのルール要素のロジックが有効であるとOracle Identity Managerによって判断された後でのみ選択可能です。
ユーザーの一致または組織の一致用にリコンシリエーション・ルールを定義するには:
12.3.3 ルール要素の追加
ルール要素をリコンシリエーション・ルール定義に追加するには、「リコンシリエーション・ルール」フォームの「ルール要素」タブを使用します。
リコンシリエーション・ルールの個々の要素を定義するには:
12.3.4 変換プロパティ
「属性」フィールド内のデータに対して(演算子を適用する前に)Oracle Identity Managerで特定の変換処理が実行されるようにするには、変換メニューから目的の変換処理を選択します。
表12-3に、「属性」フィールドのデータに対して実行できる変換処理と、ルール要素プロパティ・タブで設定される対応するプロパティをリストします。
表12-3 変換プロパティ
変換 | ルール要素プロパティ・タブで設定するプロパティ |
---|---|
部分文字列 |
開始ポイント、終了ポイント |
終了文字列 |
開始ポイント |
トークン化 |
デリミタ、トークン番号、スペース・デリミタ |
12.3.5 ルール内でのルールのネスト
ルールの中に既存のルールをネストできます。Oracle Identity Managerでは、ネストされたルールの条件は、他のルールの要素と同様に評価されます。
ノート:
ダイアログ・ボックスで選択できるのは、同じリソース・オブジェクトに関連付けられているリコンシリエーション関連のルールのみです。
ルールの中にルールをネストするには:
12.4 リコンシリエーションのスケジュール済タスクの開発
ターゲット・システムからユーザー/アカウント情報を取得する新しいスケジュール済タスクを開発し、リコンシリエーション・イベント用のAPIを作成し、リコンシリエーション・イベントを作成します。
Oracle Identity Managerでは、Microsoft Active Directory、Sun Java System Directory、Oracle Internet Directory、Oracle E-Business Suiteなどの様々なターゲット・システムからユーザーやアカウントをリコンシリエーションするためのコネクタを提供しています。これらのコネクタの詳細は、次のURLのOracle Technology Network (OTN) WebサイトにあるOracle Identity Managerコネクタのドキュメントを参照してください。
http://www.oracle.com/technetwork/indexes/documentation/index.html
ただし、カスタム・コネクタを作成するには、次を実行する新しいスケジュール済タスクを開発する必要があります。
-
ターゲット・システムからユーザーやアカウント情報を取得します。
-
リコンシリエーションAPIを使用して、イベント・データを送信するリコンシリエーション・イベントを作成します。
-
エンティティを作成、変更または削除するためのイベントを作成します。
関連項目:
スケジュール済タスクの開発の詳細は、スケジュール済タスクの開発を参照してください
特定のターゲット・システムに接続するには、次のことを実行する必要があります。
-
新規ITリソース・タイプの作成
-
新規ITリソースの定義
-
スケジュール済タスクの入力パラメータとしてITリソースを使用
関連項目:
ITリソース定義を参照するためのAPIの詳細は、Oracle Identity Governance Java APIリファレンスを参照してください
Oracle Identity Managerでは、プロビジョニング・プロセスとプロセス・インスタンスは、ユーザーまたはアカウントに関係するアクティビティに関連付けられています。これにより、様々なアクションに対するカスタマイズを追加するためのフックまたはポイントが提供されます。
ユーザー状態またはアカウント状態に対する変更が、直接APIまたはリコンシリエーションを介して発生する場合があります。変更には、次のように様々なタイプがあります。
関連項目:
リコンシリエーションAPIの詳細は、リコンシリエーションAPIの理解を参照してください
-
ユーザーまたはアカウント・プロファイルでのデータ変更
-
有効化や無効化などのステータス変更
-
組織の変更
-
属性の伝播
-
パスワードの伝播
これらの各変更の場合は、プロセス定義により、これらのいずれかの変更時に実行されるフックを追加する機能が提供されます。リコンシリエーションの場合は、プロセス定義により、次の条件付きタスクの形式でフックが提供されます。
-
受信したリコンシリエーションの挿入: この条件付きタスクは、アカウントがリコンシリエーションを介して作成された場合に挿入されます。
-
受信したリコンシリエーションの更新: この条件付きタスクは、ユーザーにリンクされている既存のアカウントがリコンシリエーションを介して更新された場合に挿入されます。プロセス・フォーム内のデータ、またはアカウントのステータスが更新されます。
-
受信したリコンシリエーションの削除: この条件付きタスクは、既存のアカウントがリコンシリエーションを介して失効された場合に挿入されます。
これらのタスクでは、ワークフローの開始ポイントを提供します。プロビジョニング・プロセスにカスタム・ワークフローを作成したり、リコンシリエーション・トリガー・タスクとワークフロー間の依存性を作成できます。これにより、ワークフローが個別のトリガーで実行されるようになります。
ユーザーまたはアカウントに正常にリンクされているすべてのリコンシリエーション・イベントが、条件付きタスクからの単一トリガーを挿入します。ユーザー・プロファイルおよびアカウント・プロファイル内のすべてのデータが、これらの依存タスクのいずれかにアタッチされているアダプタで状況依存データとして使用できます。
12.5 リコンシリエーション・プロファイルの手動による更新
リコンシリエーション・プロファイルは、特定のリソースに対するリコンシリエーションの実行方法を管理するために定義された構成です。
この項では、リコンシリエーション・プロファイルの手動更新について説明します。内容は次のとおりです。
12.5.1 リコンシリエーション・プロファイルの作成および更新について
リコンシリエーション・プロファイルを手動で定義し、各プロファイルをそれぞれのリコンシリエーションの実行に関連付けて、各プロファイルに独自のリコンシリエーション・ルールを設定できます。
リソース・オブジェクトに基づいたリコンシリエーションでは、プロファイル名はリソース・オブジェクトの名前と同じです。たとえば、リソース・オブジェクト名がtestresourceとすると、デフォルトのプロファイル名もtestresourceになります。対応するリコンシリエーション・ステージング表の名前は、プロファイルで使用できます。リソースに多言語サポート(MLS)データが含まれる場合は、MLSステージング表名およびOracle Identity Manager表名もプロファイルで使用できます。リコンシリエーション・プロファイルの構造および要素の詳細は、リコンシリエーション・プロファイルの要素および構造を参照してください。
リソース・オブジェクトに子フォームが含まれる場合は、子フォームごとに、Oracle Identity Manager表名とステージング表名をプロファイルで使用できます。各ステージング表には、対応するエンティティ定義XMLファイルがあります(名前はステージング表名と同じでドットxml拡張子(.xml)が付き、MDSに格納されています)。
batch size属性など、リコンシリエーション・プロファイル内でなんらかの変更を行う場合は、手動により、またはDesign Consoleを使用してプロファイルを更新できます。
ノート:
Design Consoleを使用してリコンシリエーション・プロファイルを変更した場合は、Design Consoleのオブジェクト・リコンシリエーション・タブのリコンシリエーション・プロファイルの作成ボタンをクリックして、リコンシリエーション・プロファイルを再生成する必要があります。
アプリケーション・オンボード機能を使用して作成したリコンシリエーション構成の管理にはDesign Consoleを使用しないことをお薦めします。リコンシリエーション・プロファイルは、アプリケーション・オンボード機能でアプリケーションのスキーマを作成または更新するときに自動的に作成および更新されます。
12.5.2 リコンシリエーション・プロファイルの作成および更新
リコンシリエーション・プロファイルを更新するには、MDSからプロファイルをエクスポートし、プロファイルXMLファイルに変更を加え、MDSにプロファイルをインポートします。
リコンシリエーション・プロファイルを手動で更新するには:
12.5.3 プロファイル・モードの変更
プロファイル・モードのプロパティをCHANGELOGからREGULARに変更できます。
次のいずれかの方法を使用して、プロファイル・モードのプロパティをCHANGELOGからREGULARに変更できます。
関連項目:
変更ログおよび定期リコンシリエーション・モードの詳細は、Oracle Identity Governanceの管理のリコンシリエーションのモードを参照してください
-
プロファイルのchangeType属性の値を変更します。たとえば:
<profile xmlns="http://www.oracle.com/oracle/iam/reconciliation/config" changeType="REGULAR" batchSize="500" resourceType="Organization" name="Xellerate Organization">
-
次の方法で、イベント作成時に属性を変更します。
イベント作成APIには、3つのパラメータが含まれています。最初の2つのパラメータは、以前の作成イベントAPIで使用されるパラメータと同じです。3番目のパラメータは、dateFormat、changeType、eventFinished、actionDateなどの属性を持つことができます。次に、3番目のパラメータのコンストラクタを示します。
EventAttributes(boolean eventFinished, java.lang.String dateFormat, ChangeType changeType, java.util.Date actionDate)
3番目のパラメータの詳細は、Oracle Identity Governance Java APIリファレンスを参照してください。
このAPIを使用してchangeTypeを次のように設定できます。
public long createReconciliationEvent(String objName, Map<String, Object>inputData, EventAttributes eventAttribs);
ノート:
APIを使用したchangeType属性の設定は、プロファイルで設定されたchangeType属性の値より優先されます。
12.6 リコンシリエーションAPIの理解
リコンシリエーションAPIを使用するには、ReconOperationsService APIを使用し、マルチスレッド環境で非スケジュール済タスクベース・リコンシリエーションを呼び出します。
この項では、リコンシリエーションAPIについて説明します。次の項目が含まれます。
12.6.1 リコンシリエーションAPIの概要
リコンシリエーションAPIは、単一値や複数値の属性データおよびその他の機能でリコンシリエーション・イベントを作成するために使用できる一連の公開APIです。
リコンシリエーション・コネクタの開発者は、これらのAPIを使用して、リコンシリエーション・イベント・リポジトリにデータをプッシュする必要があります。
関連項目:
Oracle Identity ManagerでのAPIの使用の詳細は、APIの使用を参照してください
これらのAPIのほとんどが、以前のバージョンのOracle Identity Managementに存在していました。ただし、現在のリリースでは、実装は変更され、新しいリコンシリエーション・アーキテクチャに基づいています。
以前のAPIが引き続きサポートされているため、既存の標準コネクタでもこれらのAPIが使用され、これらのコネクタに対する変更は必要ありません。
callingEndOfJobAPI
は、新しい唯一のリコンシリエーションAPIです。
コネクタの各実行は、ジョブと呼ばれます。リコンシリエーション・イベントは、リコンシリエーション・エンジンにバッチで送信されます。ジョブが終了すると、(コネクタのスケジュール済タスクを実行する)スケジューラはリスナーを実行し、リスナーはcallingEndOfJobAPI
を呼び出します。このAPIは、すべてのオープン・バッチを処理のためにリコンシリエーション・エンジンに送信します。
このAPIコールは、多言語サポート(MLS)データと非MLSデータで類似しています。コネクタは、HashMapとしてリコンサイルされるデータを渡します。相違点は、属性がMLS対応である場合、キーが属性名で、値がMLSデータの別のHashMapであることです。このMLS固有のHashMapのキーは言語コードで、値はターゲット・システムから取得された対応するロケール固有データです。定義されたロケールがないMLSデータがターゲット・システムに存在する場合、そのデータはMLS入力データHashMapでキーbaseを使用して渡されます。
12.6.2 ReconOperationsService API
イベントの無視、イベントの作成(単一/一括)、イベントの処理、削除の検出の各タスクには、oracle.iam.reconciliation.api.ReconOperationsServiceのAPIが必要です。
優先APIとそのAPI呼出しの順序は、次のとおりです。
関連項目:
oracle.iam.reconciliation.api.ReconOperationsServiceのAPIの詳細は、Oracle Identity Governance Java APIリファレンスを参照してください
12.6.2.1 イベントの無視
これは、Oracle Identity Managerにすでに存在するイベント作成やターゲット・システム・データの処理を回避する方法です。API呼出しは次のようになります。
boolean ignoreEvent(String resourceObjectName, Map inputData, String dateFormat) throws tcObjectNotFoundException, tcAPIException
このAPIを使用して、指定されたオブジェクトに対してリコンシリエーション作成イベントを要求する必要があるかどうかが検証されます。このAPIによりtrueが返されると、イベント作成をスキップでき、データベースに追加のイベント作成が保存されます。
ignoreEvent API同様、ignoreEventAttributeDataメソッドを使用して、ターゲット・システムから入力される単一値および複数値のデータに対してリコンシリエーション作成イベント・フローを要求する必要があるかどうかが検証されます。このリリースでこのようなデータがあるのは、アカウント・エンティティ・タイプに限られます。APIは次のようになります。
boolean ignoreEventAttributeData(String resourceObjectName, Map inputData, String multiValueFieldName, Map[] childDataList, String dateFormat) throws tcAPIException, tcObjectNotFoundException
ノート:
ignoreEventまたはignoreEventAttributeDataが呼び出される必要があります。APIはどちらも呼出しに必要ありません。
12.6.2.2 イベントの作成
これは、単一イベント作成APIまたはバルク・イベント作成APIを使用して実行できます。このフローにより、ターゲット・システム・データがステージング表に簡単に格納されます。このデータの処理は後で非同期に行われます。
イベントの作成(単一): 次のAPIで構成されています。
-
createReconciliationEventメソッド。リコンシリエーション・イベントを作成するためのデータを指定します。子データまたは複数値のデータがある場合は、eventAttribs.eventFinishedフラグの値をfalseに設定します。それ以外の場合は、値をtrueに設定します。作成されたイベントのeventIdが返されます。
long createReconciliationEvent(String resourceObjectName, Map<String, Object> inputData, EventAttributes eventAttribs)
-
addMultiAttributeDataメソッド。子データを指定します。子データがない場合、またはeventAttribs.eventFinishedフラグがtrueに設定されている場合は、こをAPIを呼び出すことはできません。
long addMultiAttributeData(long plReconciliationEventKey, java.lang.String psFieldName, java.util.Map poData) throws tcAPIException, tcEventNotFoundException, tcEventDataReceivedException,tcAttributeNotFoundException
ノート:
バルク複数値属性または単一の子レコードではなく複数の子レコードのデータを使用して性能を向上するために、次のAPIを使用します。
void addDirectBulkMultiAttributeData(long reconciliationEventKey, long reconciliationAttributeKey, String tableFieldName, List dataList,String dateFormat) throws tcAPIException, tcEventNotFoundException, tcAttributeNotFoundException, tcEventDataReceivedException,tcInvalidAttributeException
-
providingAllMultiAttributeDataメソッド。指定される複数値のデータがデータの完全リストであるかまたは追加/更新された変更セットのみであるかを指定します。デフォルトでは、pbFlagの値はfalseです。子データがない場合、またはeventAttribs.eventFinishedフラグがtrueに設定されている場合は、こをAPIを呼び出すことはできません。
public void providingAllMultiAttributeData(long plReconciliationEventKey, String psFieldName, boolean pbFlag) throws tcAPIException;
-
finishReconciliationEventメソッド。イベント作成フローの最後にマークを付けます。特定のイベント・ステータスがデータを受信しましたに更新されます。これは、子データ(あれば)を含むすべての特定イベントのデータが指定されたことを意味します。eventAttribs.eventFinishedフラグがtrueに設定されている場合は、このAPIを呼び出すことはできません。
void finishReconciliationEvent(long eventId) throws tcAPIException, tcEventNotFoundException, tcEventDataReceivedException
-
callingEndOfJobAPIメソッド。ジョブ内のすべてのリコンシリエーション・バッチを処理します。スケジュール済ジョブの場合、ジョブ終了時にこのAPIが自動的に呼び出されます。このAPIは、非スケジュール済ジョブのAPI呼出しに対して明示的に呼び出される必要があります。
void callingEndOfJobAPI() throws tcAPIException
イベントの作成(バルク): 次のAPIで構成されています。
ReconciliationResult createReconciliationEvents(BatchAttributes batchAttribs, InputData... input)
これは、バルク作成APIです。入力データに渡されたデータのバルク・リコンシリエーション・イベントを作成します。複数値属性を含むすべてのデータを確定し、データのサイズがバッチ・サイズ以下の場合に1パッチとして処理するために送信します。それ以外の場合は、複数バッチのデータを送信します。これ以降、他のAPIを呼び出す必要はありません。
12.6.2.3 プロセス・イベント
これは、作成済イベントのバックエンド処理を強制する方法です。processReconciliationEvent(eventId) APIは、作成イベント・フローの完了後に呼び出されます。作成済イベントにも同様の処理が必要です。このAPIは特定のイベントのみ処理するため、バッチ・ステータスまたはジョブ・ステータスは更新されません。バッチ・ステータスも同様に更新する必要がある場合は、この後callingEndOfJobAPI APIを呼び出します。このAPIはバッチ処理ではなくデータを1つずつ同期処理するため、このAPIの使用はお薦めしません。
ノート:
processReconciliationEvent APIを処理に使用する場合は、リソース・オブジェクトのリコンシリエーション・プロファイルでリコンシリエーションのバッチ・サイズ(batchSizeパラメータ)を0に設定します。このステップの詳細は、表12-4を参照してください。
12.6.2.4 削除の検出
これは、ターゲット・システムに存在しないOracle Identity Managerでの余分なデータを削除する方法です。次のAPIで構成されています。
-
provideDeletionDetectionDataメソッド。リソース・オブジェクトの既存のターゲット・システム・データのリストをすべて入力データとして受け取り、Oracle Identity Managerで見つかった一致データのリストを返します。
Set provideDeletionDetectionData(String resourceObjectName, Map[] inputData) throws tcAPIException, tcIDNotFoundException, tcMultipleMatchesFoundException
-
getMissingAccountsメソッド。Oracle Identity Managerで確認済データのリスト・キーを受け取り、ターゲット・システムではなくOracle Identity Managerにある追加データのリストを返します。Oracle Identity Managerのすべてのキーを検索し、provideDeletionDetectionDataメソッドにより返された設定にあるキーと比較します。
Thor.API.tcResultSet getMissingAccounts(String objectName, Set accountsFound) throws tcAPIException, tcIDNotFoundException, tcDataNotProvidedException
-
deleteDetectedAccountsメソッド。Oracle Identity Managerでのみ見つかったデータのリストを入力データとして受け取り、削除タイプの作成リコンシリエーション・イベントAPIコールを1つずつ呼び出します。getMissingAccountsメソッドにより返されたtcResultSetは、このAPIにパラメータとして渡されます。
long[] deleteDetectedAccounts(Thor.API.tcResultSet poDetectedAccounts) throws tcAPIException, tcAPIException
12.6.3 マルチスレッド環境における非スケジュール済タスクベース・リコンシリエーションの呼出し
マルチスレッド環境で非スケジュール済タスクベース・リコンシリエーションを呼び出すには、UserNonSTBasedReconクラスを実装します。
次に、マルチスレッド環境で非スケジュール済タスクベース・リコンシリエーションを呼び出すサンプル・コードを示します。
public class UserNonSTBasedRecon{
private AtomicInteger threadCount =new AtomicInteger(0);
public Long getRandomLong(int maxValue) {
Random random = new Random();
long token = random.nextInt(maxValue);
return token;
}
@Test
public void testCreateUsersUsingNonScheduleTaskConnectorWithThreads() throws Exception {
Thread t = new CreateEvent();
t.start();
Thread t2 = new CreateEvent();
t2.start();
while (true) {
Thread.currentThread().sleep(5000);
if (threadCount.get() == 2){
OIMClient oimClient = null; ReconOperationsService reconServ = oimClient.getService(ReconOperationsService.class);
reconServ.callingEndOfJobAPI();
break;
}
}
}
public class CreateEvent extends Thread {
@Override
public void run() {
String ctxFactory = "weblogic.jndi.WLInitialContextFactory";
OIMProfileReader reader = new OIMProfileReader();
String appServerType = reader.getString("appserver.type");
String hostName = reader.getString("weblogic.host");
String port = reader.getString("weblogic.port");
String serverURL = "t3://" + hostName + ":" + port;
System.out.println("Server URL is : " + serverURL);
System.out.println("Context Factory is : " + ctxFactory);
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(OIMClient.JAVA_NAMING_PROVIDER_URL, serverURL);
env.put(OIMClient.JAVA_NAMING_FACTORY_INITIAL, ctxFactory);
OIMClient client = new OIMClient(env);
String username = "xelsysadm";
String password = "PASSWORD";
try {
client.login(username , password.toCharArray());
} catch (LoginException e1) {
throw new SuperRuntimeException(e1.getMessage(), e1);
}
String uniq2 = getRandomLong(10000).toString();
long jobId = getRandomLong(10000);
ContextManager.setValue(Constants.JOB_HISTORY_ID, new ContextAwareNumber(jobId));
ContextManager.setValue(Constants.JOB_NAME_CONTEXT, new ContextAwareString(jobId +""));
ReconOperationsService recon;
try {
recon = client.getService(ReconOperationsService.class);
int count = 50;
HashMap<String, String> hm = new HashMap<String, String>();
ArrayList<Long> eventKeys = new ArrayList<Long>();
for (int i = 0; i < count; i++) {
hm.put("UserLogin", uniq2 + "ThreadTest" + i);
hm.put("FirstName", uniq2 + "Thread" + i);
hm.put("lastname", "Test");
hm.put("Type", "End-User");
hm.put("OrganizationName", "Xellerate Users");
hm.put("EmpType", "Full-Time");
hm.put("Middlename", "MID");
System.out.println("Creating Recon event i ="+ i);
long rceKey = recon.createReconciliationEvent("Xellerate User", hm, true);
eventKeys.add(rceKey);
}
assertEquals(count, eventKeys.size());
} catch (Exception e) {
throw new SuperRuntimeException(e.getMessage(), e);
} finally {
threadCount.set(threadCount.get()+1);
ContextManager.popContext();
}
}
}
}
12.7 信頼できるリコンシリエーションの後処理
信頼できるリコンシリエーションにユーザー・ログインが渡されない場合は、ログイン・ハンドラがユーザー・ログインを生成します。パスワードは、後処理イベント・ハンドラで生成されます。このことを示す通知を送信するようにOracle Identity Managerを構成できます。
通知は、Recon.SEND_NOTIFICATIONシステム・プロパティの値がtrueに設定されている場合にのみ送信されます。Recon.SEND_NOTIFICATIONシステム・プロパティの詳細は、Oracle Identity Governanceの管理のOracle Identity Managerのデフォルトのシステム・プロパティを参照してください。
SSOが無効な環境では、リコンシリエーションを介したユーザー作成の場合、ユーザー・ログインとパスワードの両方が後処理ハンドラで生成され、単一の通知がユーザー・ログインとパスワードの両方に送信されます。
SSOが有効な環境では、パスワードは生成されないため、ログインが後処理ハンドラで生成されると、通知はユーザー・ログインに対してのみ送信されます。
12.8 リコンシリエーションのFAQ
リコンシリエーションに関してよくある質問は、リコンシリエーションの構成、イベント生成の処理、処理の失敗への対処、処理後の失敗の問題への対処に関するものです。
この項では、リコンシリエーションに関する次のFAQについて説明します。
リコンシリエーション構成後およびリコンシリエーション実行前に何を実行する必要がありますか。
スケジュール済ジョブをトリガーしてリコンシリエーション実行を開始する前、コネクタをインポートするかDesign Consoleまたはアプリケーション・オンボードを使用してすべてのリコンシリエーション構成を行った後、次の手順を実行します:
-
ITリソース詳細が正しく、ターゲット・システムに接続できることを確認します。
-
すべてのリコンシリエーション構成が正しいかどうかを検証します。Enterprise Managerで使用できるProfileValidator Mbeanを使用してリコンシリエーション・プロファイルを検証し、これを実行できます。様々なプロファイル構成の問題の詳細は、リコンシリエーション・プロファイル構成の失敗のトラブルシューティングを参照してください。
イベント生成中にデータの問題を処理するにはどのようにするのですか。
イベント生成中(リコンシリエーション・イベントが生成されていない場合)にデータの問題を処理するには:
-
一般的なリコンシリエーション問題のトラブルシューティングの説明に従って、INFOレベル・ログを有効化します。
-
INFOレベル・ログを確認して、リコンシリエーション・エンジンのコールを確認するcreateReconciliationEvent()が呼び出されているかどうかを確認します。ログの検索:
createEvent Input Data
。これは、コネクタからリコンシリエーション・エンジンに渡されるデータも出力します。 -
同じデータがOracle Identity Managerに存在するために予想される動作であるイベントを再生成しない場合、ログを分析してイベントが無視されるかどうかを確認します。
-
createEventおよびignoreEventに関連するログが表示されない場合、リコンシリエーション・エンジンをコールする前でも問題がコネクタ領域に発生する可能性があります。
処理の失敗に対処するにはどのようにするのですか。
処理の失敗に対処するには:
-
使用されているコネクタがPSFTやRACFなどのリスナー・ベース・コネクタ(プッシュ・ベース・コネクタ)であるか、プル・ベース・コネクタであるかどうかを把握します。プッシュ・ベース・コネクタとプル・ベース・コネクタは異なる処理パスに従うため、これを把握することは重要です。
-
処理がエンドツーエンド編成である単一イベント・フローを使用して発生しているか、またはSPを使用したバルク処理であるかどうかを確認します。単一イベント処理は、ほとんどの場合、
processReconciliationEvent()
APIを呼び出すプッシュ・ベース・コネクタまたは失敗したイベントが再試行/再評価される場合に発生します。 -
リコンシリエーションのトラブルシューティングで説明されているように、RE_NOTE/RB_NOTEの例外があるかどうかを確認します。完全な例外詳細をOracle Identity Managerサーバー・ログでさらに確認できます。
-
処理中の他の共通の失敗および解決策は、リコンシリエーションのトラブルシューティングを参照してください。
処理後の失敗に対処するにはどのようにするのですか。
処理後の失敗に対処するには:
-
リコンシリエーションのトラブルシューティングで説明されているように、バルク処理および単一イベント処理のRB_NOTE/RE_NOTE列から編成IDを取得します。
-
すべてのハンドラが実行された編成ステータスの内容などの処理後の詳細および存在する場合は失敗の詳細とともにイベント処理に関連するすべての詳細を示すEventDiagnostic Mbeanを使用してイベントを検証することもできます。
-
リコンシリエーション・フローでのみ実行されないカスタム・イベント・ハンドラがある場合、バルク実装が存在するかどうかを確認します。編成関連情報はログでのみ取得可能で、前述のステップを使用して診断できません。
パフォーマンス関連分析を実行するにはどのようにするのですか。
リコンシリエーションのパフォーマンス関連分析は、DMSを使用したリコンシリエーション・パフォーマンスの監視を参照してください。また、次のMy Oracle Support WebサイトのドキュメントID 1484808.1のTechnote「Oracle Identity Manager 11gリコンシリエーション・パフォーマンス・チューニング」を参照してください。
12.9 リコンシリエーションのトラブルシューティング
リコンシリエーションに関連する問題およびそれらのトラブルシューティングには、ロギング・レベルの変更や、一般的な問題、データベース関連の問題、プロファイル構成の問題、LDAPリコンシリエーションの問題のトラブルシューティングなどがあります。
この項では、リコンシリエーションに関連したトラブルシューティングの様々な問題について説明します。次の項目が含まれます。
12.9.1 リコンシリエーションのロギング・レベルの変更
リコンシリエーションに関連する問題をトラブルシューティングする前に、リコンシリエーション・ロギング・レベルをINFOに変更します。
ロギング・レベルをINFOに変更するには、Oracle Enterprise Managerを使用して次のロガーを追加します。
-
名前: oracle.iam.reconciliation
-
Oracle Diagnostic Loggingレベル(Javaレベル): NOTIFICATION:1(INFO)
ロガーを追加するステップの詳細は、Oracle Identity Governanceの管理のOracle Identity Governanceのログ・サービスの構成を参照してください。
ノート:
ロギング・レベルを変更するために、/domains/DOMAIN_NAME/config/fmwconfig/servers/OIM_SERVER/logging.xmlファイルを変更することもできます。そのように行うには:
-
次に示すように、logging.xmlファイルに新しいロガーを追加します。
<LOGGER NAME="oracle.iam.reconciliation" LEVEL="INFO"/>
-
'console-handler' log_handlerのロギング・レベルをINFOに変更します。
-
Oracle Identity Managerを再起動します。
12.9.2 一般的なリコンシリエーション問題のトラブルシューティング
一般的なリコンシリエーション問題には、イベント処理やカーネル編成ハンドラの失敗、イベントのスキップのために発生したエラー、データ破損の問題などがあります。
表12-4に、リコンシリエーション・エラーが発生した場合に実行できるトラブルシューティング・ステップを示します。
表12-4 リコンシリエーションのトラブルシューティング
問題 | 解決策 |
---|---|
イベント処理での失敗 |
エラーの詳細は、リコンシリエーション表から次のように取得できます。
|
プッシュ・ベースのコネクタでprocessReconciliationEvent APIを使用してリコンシリエーションを処理している場合に、重複処理(単一処理およびバルク処理の両方)が原因で生じる様々なデータ破損の問題 重複アカウントの作成、ステータスの予期せぬ変更、など |
影響を受けたリソース・オブジェクトのリコンシリエーション・プロファイルでリコンシリエーションのバッチ・サイズ(batchSizeパラメータ)を0に設定します。 |
カーネル編成ハンドラで発生した失敗 |
編成IDは、リコンシリエーション表で追跡でき、この表をさらに使用して、次のように関連ハンドラのステータスを確認できます。
リコンシリエーション時にLDAP同期を表示するUIはありません。したがって、LDAPの成功または失敗は、RB_NOTE/RE_NOTE列で使用可能なIDに基づいて、編成内のLDAP同期イベント・ハンドラのステータスを確認することによってのみ追跡できます。 |
ジョブの実行後、多数のイベントが「データを受信しました」ステータスになる |
次の文を使用して、関連するバッチが処理の準備完了ステータスであるかどうかを確認します。 select rb_batch_status, rb_note from recon_batches where rb_batch_status = 'Ready For Processing' and rj_key = JOB_ID_ON_UI
また、RECON_BATCHES.RB_NOTEには、接続の問題などの一般的な例外が含まれています。問題を修正し、次のいずれかを実行します。
|
競合状態 - 一部の依存属性がまだリコンサイルされていないため(ユーザーより先にユーザーのマネージャ/組織をリコンサイルする必要があるなど)、イベントが失敗ステータスにある |
|
信頼できるソースのリコンシリエーションの場合にユーザー更新を実行すると、次のエラーが生成される ORA Error Code =>ORA-00001: unique constraint (.) violated |
信頼できるソースのリコンシリエーションでは、一致ルールがUsr_loginに基づいている場合、その一致ルールでは大文字/小文字が区別されていないことが必要です。そうでないと、ユーザーの更新がユーザーの作成として機能し、エラーが生成される場合があります。 |
リコンシリエーション・イベントがスキップされました/作成されていませんエラーは、ログに次のSQLExceptionとともに生成されます。 <oracle.iam.reconciliation.dao.event> <BEA-000000> <Generic Information: {0} java.sql.SQLException: ORA-12899: value too large for column "DEV_OIM"."RA_LDAPUSER9504ECC4"."RA_BUSINESSPHONE" (actual: 26, maximum: 20) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:462) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405) |
この問題は、ターゲットからフィールドに渡されるデータがデータベース表の列サイズより大きいことが原因です。この問題を解決するには、次のいずれかを行う必要があります。
|
ノート:
diagnoseメソッドを伴うoracle.iam:type=Reconciliation,name=EventDiagnosticのMBeanを使用して、エンドツーエンドのリコンシリエーション・イベント・フローを診断することができます。このMBeanは、Oracle Enterprise Managerを使用してアクセスできます。この診断メソッドでは、リコンシリエーションEventIDが入力として使用されて、イベントに関する次の情報が表示されます。
-
イベント、バッチ、ジョブおよび履歴の詳細。これには、RE_NOTE値およびRB_NOTE値が含まれるため、障害の理由が存在する場合は示され、そうでない場合は関連付けられた編成IDが示されます。
-
古い状態の表のデータ(監査に関連するもの)。
-
ステージング表のデータ(ターゲット・システムからリコンシリエーションに到達するデータ)。
-
編成の詳細(実行されたすべてのイベント・ハンドラとそのステータス、および(存在する場合は)障害の理由が含まれます)。
12.9.3 データベース関連のリコンシリエーション問題のトラブルシューティング
データベース関連のリコンシリエーション問題には、重要なデータベース・パッチの欠落、低速のリコンシリエーション、イベント処理のエラーなどがあります。
この項では、次のデータベース関連のリコンシリエーション問題について説明します。
12.9.3.1 Oracle Database 11gリリース1の重要な個別パッチの欠落
RDBMS個別パッチ# 7614692が欠落している場合は、次のエラーがログに記録されます。
ORA-02291: INTEGRITY CONSTRAINT (FK_RECON_EVENTS_USR) VIOLATED - PARENT KEY NOT FOUND [EXEC] ORA-06512: AT "OIM_SP_RECONBLKUSERCRUD" [EXEC] ORA-06512: AT "OIM_SP_RECONBLKUSRMLSWRAPPER" [EXEC] ORA-06512:
この問題を解決するには、次のパッチがOracle Database 11gリリース1 (11.1.0.7.0)にインストールされている必要があります。
-
p7614692_111070
-
p7000281_111070
-
p8327137_111070
-
p8617824_111070
12.9.3.2 Oracle Database 11gリリース2の重要な個別パッチの欠落
一部のSQLスクリプトを実行すると、Oracle Database 11gリリース2 (11.2.0.2.0)で誤った結果または矛盾した結果が生成される場合があり、これは以前のリリースのOracle Databaseでは発生しませんでした。
この問題を解決するには、Oracle Database 11gリリース2用のパッチ# 10259620がインストールされている必要があります。
12.9.3.3 低速なリコンシリエーションおよびエラー・ログ内の類似トレース
SQLスクリプトに大量の一致ルールがある場合、エンティティ表が低速になるのは、データベースでの全表スキャンや最適化されていないSQL計画が原因であると考えられます。
リコンシリエーションは、一致ルールの列が適切に索引付けされていなかったり、スキーマ統計が古いと、低速になる場合があります。低速の結果として、次のようなエラー・ログが記録されます。
oracle.iam.platform.utils.SuperRuntimeException: java.sql.SQLException: ORA-01013: user requested cancel of current operation ORA-06512: at "XL_SP_RECONBLKROLEMATCH" ORA-06512: at "OIM_SP_RECONBLKROLEMLSWRAPPER" ORA-06512: at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java) at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkMana gerImpl.java) at weblogic.work.ExecuteThread.execute(ExecuteThread.java) at weblogic.work.ExecuteThread.run(ExecuteThread.java) Caused by: java.sql.SQLException: ORA-01013: user requested cancel of current operation ORA-06512: at "XL_SP_RECONBLKROLEMATCH" ORA-06512: at "OIM_SP_RECONBLKROLEMLSWRAPPER" ORA-06512: . at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java) at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java)
この問題を解決するには:
-
一致ルールの列に対して適切な索引がすべて作成されていることを確認します。
-
データベースのスキーマ統計がガイドラインに従って収集されていることを確認します。
関連項目:
リコンシリエーション用の索引の作成およびデータベース統計の収集の詳細は、リコンシリエーションのベスト・プラクティスを参照してください
12.9.3.4 リコンシリエーション・イベントがエラーで処理されない
リコンシリエーション・イベントは、次のエラー・トレース(ORA-31061エラー)で処理されません。
java.sql.SQLException: ORA-20001: Error occured in XL_SP_ReconBlkChildMthAcntCRUD while processing Batch ID - 48 XL_SP_ReconBlkChildMthAcntCRUD failed e_xlSpReconBlkChildMthAcntCRUD - FORMAT_ERROR_BACKTRACE: ORA-06512: at "SYS.DBMS_XMLGEN", line 7 ORA-06512: at "SYS.DBMS_XMLGEN", line 147 ORA-06512: at "OGD_OIM.OIM_SP_RECONBLKACCOUNTCHGLOG", line 305 ORA-06512: at "OGD_OIM.XL_SP_RECONBLKCHILDMTHACNTCRUD", line 3528 FORMAT_ERROR_STACK: ORA-31061: XDB error: special char to escaped char conversion failed. -31061 -ERROR- ORA-31061: XDB error: special char to escaped char conversion failed. ORA-06512: at "OGD_OIM.XL_SP_RECONBLKCHILDMTHACNTCRUD", line 3617 ORA-06512: at "OGD_OIM.XL_SP_RECONBLKACNTRQDCMTCHCRUD", line 91 ORA-06512: at line 1 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:462) . . . . . . at weblogic.jdbc.wrapper.PreparedStatement.execute(PreparedStatement.java:99) at oracle.iam.reconciliation.dao.ReconActionDao$1ReconDBCall$1.process(ReconActionDao.java:1489) at oracle.iam.reconciliation.dao.ReconActionDao$1ReconDBCall$1.process(ReconActionDao.java:1472) at oracle.iam.platform.tx.OIMTransactionCallback.doInTransaction(OIMTransactionCallback.java:13) at oracle.iam.platform.tx.OIMTransactionCallback.doInTransaction(OIMTransactionCallback.java:6) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
これはデータベース関連の問題です。この問題の説明は、次のURLにあるMy Oracle Support Webの「コンテンツに無効な文字が含まれる場合にXDBがORA-31011をレポートする(Doc ID 8246403.8)」を参照してください。
https://support.oracle.com
この拡張機能の修正は、Databaseバージョン11.2以降で利用できますが、デフォルトでは無効になっています。この問題を修正するには、拡張機能を有効にする必要があります。
この問題を回避するには、データ内の特殊文字を削除します。
12.9.4 リコンシリエーション・プロファイル構成の失敗のトラブルシューティング
プロファイル構成の失敗に関連する問題が発生した場合、Oracle Enterprise Managerで使用可能なProfileValidator Mbeanを使用してプロファイルを検証します。プロファイルが無効である場合、プロファイルとともにそのプロファイルが無効である理由が表示されます。
表12-5に、リコンシリエーション・エラーが発生した場合に実行できるトラブルシューティング・ステップを示します。
表12-5 リコンシリエーション・プロファイル構成の失敗のトラブルシューティング
問題 | 解決策 |
---|---|
プロファイルが無効なため、次の例外でロードに失敗します。 oracle.iam.reconciliation.exception.ConfigNotFoundException OR oracle.iam.reconciliation.exception.Configおよび内部例外org.xml.sax.SAXParseException |
次のいずれかを実行します。
|
有効なリコンシリエーション・プロファイルXMLをシステムにインポートする際に、必要な構成の作成に失敗します。 |
profile.configure属性を確認します。この属性の値は、trueである必要があります。 profile.active属性を確認します。これの値は、trueである必要があります。または、この属性が存在しない場合、profile.activeがtrueであることを意味します。 |
次のエラーが生成されます。 oracle.iam.reconciliation.exception.ReconciliationException: Exception occurred while inserting data into table STAGING_TABLE_NAME due to STAGING_TABLE_NAME
これは、有効なリコンシリエーション・プロファイルがロードされており、このプロファイルによってOracle Identity Managerで構成が作成されていないことを意味します。 |
profile.configure属性およびprofile.active属性を確認します。 |
ノート:
ProfileValidator Mbeanはリコンシリエーション・プロファイルの検証のために用意されています。このMBeanは、Oracle Enterprise Managerを使用してアクセスできます。
12.9.5 LDAPリコンシリエーション問題のトラブルシューティング
LDAPリコンシリエーション問題としては、リコンシリエーション・スケジュール済ジョブの失敗や、外部変更ログCookieの失効などがあります。
この項では、LDAPのリコンシリエーションに関する次の問題について説明します。
12.9.5.1 LDAPユーザーの作成およびリコンシリエーションの更新のスケジュール済ジョブに失敗し、エラーが表示される
Oracle Identity ManagerとOracle Unified Directory (OUD)およびlibOVDとの統合環境において、LDAPユーザーの作成およびリコンシリエーションの更新のスケジュール済ジョブに失敗し、次のエラーが表示されます。
"Invalid syntax of the provided cookie"
このエラーは、OUDがLDAPとして使用されている場合に変更番号の数値(たとえば、0)がlibOVDに渡され、libOVDアダプタで外部変更ログ(ECL)が有効化されている場合に発生します。「スケジュールされたジョブ」ページにおいて、数値(たとえば、0)が「最終変更番号」フィールドに設定されます。この属性は、このスケジュール済ジョブで処理された、最終変更ログの識別子を指定するために使用されます。
OUDでは、ECLモードがオンの場合、「最終変更番号」フィールドの値は数値ではなく、次のような文字列値である必要があります。
"dc=us,dc=oracle,dc=com:00000142b752f5cf473900000ce1;"
適切な値を取得するためのコマンド例を次に示します。
ldapsearch -h localhost -p 1389 -D "cn=Directory Manager" -w PASSWORD -b "" -s base "objectclass=*" lastExternalChangelogCookie
dn: lastExternalChangelogCookie: dc=us,dc=oracle,dc=com:00000142b752f5cf473900000ce1;
12.9.5.2 OUDでリコンシリエーションを実行する場合の外部変更ログCookie失効の問題
この問題の説明およびトラブルシューティング情報は、Oracle Identity Management Suite統合ガイドのOUDでリコンシリエーションを実行する場合の外部変更ログCookie失効の問題を参照してください。
12.9.6 PL/SQLレイヤーでのリコンシリエーション問題のトラブルシューティング
PL/SQL統合診断ログおよびデバッグ・フレームワークが、リコンシリエーション操作について診断情報をPL/SQLレイヤーから取得します。
PL/SQLレイヤーでのリコンシリエーション問題のトラブルシューティングについては、Oracle Identity Governanceの管理のPL/SQL統合診断ログおよびデバッグ・フレームワークの使用を参照してください。
12.10 RECON_EXCEPTIONS表へデータ移入
RECON_EXCEPTIONS表で取得されたデータは、レポートを生成するために使用されます。
関連項目:
アカウント・リコンシリエーションの詳細は、Oracle Identity Governanceの管理のアカウント・リコンシリエーションを参照してください
この項の内容は次のとおりです。
12.10.1 RECON_EXCEPTIONS表について
Oracle Identity Managerデータベース内のRECON_EXCEPTIONS表は、アカウント・リコンシリエーション中に生成されるエラー・メッセージを取得するために使用されます。このデータは、レポートの生成目的で収集されます。
リコンシリエーションが削除されたユーザーに一致することが検出された場合は、USER_DELETEDをREX_EXCEPTION列に、削除されたユーザーのキーをRECON_EXCEPTIONS表のUSR_KEY列に挿入する必要があります。
一致が検出されなかった場合は、USER_NOT_FOUNDをREX_EXCEPTION列に挿入します。
アカウント一致が検出された場合は、アカウントがすでにプロビジョニング解除されているかどうかチェックします。それからプロビジョニングされるユーザーに対して、RECON_EXCEPTIONS表のREX_EXCEPTION列に値RESOURCE_DEPROVISIONED
を挿入します。
12.10.2 RECON_EXCEPTIONS表へデータ移入
RECON_EXEPTIONS表には、レポートの生成に使用できる例外データが移入されます。
RECON_EXEPTIONS表に例外データを移入するには:
-
変更タイプ!= ('Modify' , 'Delete')でイベント・ステータスが('Single User Match Found', 'Single Org Match Found')のイベントをすべてフェッチします。
-
次の手順を実行して、エンティティに対してリソース・オブジェクトをプロビジョニングします。
-
RECON_EXCEPTION DB表から例外データを収集します。これを行うには、次のいずれかを実行します。
-
XL.EnableExceptionReportsプロパティの値がTRUEかどうかをチェックします。これがTRUEに設定されている場合は、次のステップに進みます。そうでない場合は、例外データを収集しないでください。
-
プロビジョニングされたリソース・オブジェクトに対してobj表のobj_initial_recon_dateを選択し、今日の日付以前かどうかチェックします。以前の日付が表示される場合は、次のステップに進みます。そうでない場合は、例外データを収集しないでください。
-
-
リソース・オブジェクトをユーザーにプロビジョニングするときには、Oracle Identity Managerでリソース・オブジェクトがすでにプロビジョニング解除されているかどうかチェックします。:
-
リソース・オブジェクトがすでにプロビジョニング解除されている場合は、プロビジョニングされるユーザーに対して、RECON_EXCEPTIONS表のREX_EXCEPTION列に値
RESOURCE_DEPROVISIONED
を挿入します。 -
リソース・オブジェクトがプロビジョニング解除されていない場合は、プロビジョニングされるユーザーに対して、RECON_EXCEPTIONS表のREX_EXCEPTION列に値
RESOURCE_NEVER_PROVISIONED
を挿入します。
-
-
12.11 リコンシリエーションのベスト・プラクティス
リコンシリエーションのパフォーマンスは、コネクタ表およびリコンシリエーション表に必要な索引を指定することで向上させることができます。
この項では、コネクタ表およびリコンシリエーション表に必要な索引を指定してパフォーマンスを向上させる方法について説明します。次の項目が含まれます。
ノート:
効率的な重複権限または子データ検証を有効にするように、リコンシリエーション・フィールド・マッピングの子データの権限属性およびキー属性の両方を構成することをお薦めします。権限または子データの重複検証の詳細は、Oracle Identity Governanceの管理の権限または子データの重複検証を参照してください。
12.11.1 照合モジュールの追加の索引の選択
Oracle Identity Managerの機能には動的な性質があるため、追加の索引が必要になる場合があります。
この項では、照合モジュールの追加の索引を選択する方法について説明します。次の項目が含まれます。
12.11.1.1 照合モジュールの追加の索引について
Oracle Identity Managerをインストールすると、必要な索引がOracle Identity Managerデータベース・スキーマに作成されます。ただし、Oracle Identity Managerのいくつかの機能の動的な性質のために、追加の索引が必要になる場合があります。これは、特にリコンシリエーションに当てはまります。
リコンシリエーションでは、照合アルゴリズムを使用して、変更がリクエストされたユーザー、アカウント、ロールまたは組織がOracle Identity Managerにすでに存在するかどうかが検索されます。照合アルゴリズムでは、Oracle Identity Managerの一連の列のデータとターゲット水平表の列のデータが比較されます。一致ルールを格納する列は、リコンシリエーション・プロファイルに定義されます。照合操作のパフォーマンスを迅速に改善するためには、照合ルールの列に正しい索引が作成されている必要があります。
12.11.1.2 一致ルール基準に基づいた索引の選択
適切な索引を識別する推奨方法を示すために、メタデータ・ストア(MDS)リポジトリに存在するサンプルActive Directory (ADUser)プロファイルを例として取り上げます。
一致ルール基準に基づいて索引を選択するには:
ノート:
-
キー・フィールドがOracle Identity Managerで大/小文字を区別しないように定義されている場合は、そのキー・フィールドに対して関数ベースの索引を作成する必要があります。たとえば、コネクタ・コードで姓名の名の検索を内部的に実行する場合(FIRST_NAMEがキーの場合)は、適切な索引付けが必要です。
-
ユーザーの参照で複数のキーまたはコンポジット・キーが使用される場合は、個々の索引またはコンポジット索引を選択します。
-
必要な索引のポインタは、Oracle Enterprise Managerなどのパフォーマンス・モニタリング・ツールを使用するか、またはOracle Database 11gで使用可能な自動ワークロード・リポジトリ(AWR)のレポートを介して、データベース側からリコンシリエーション・プロセスのリアルタイム実行を監視することで取得することもできます。
-
Design Console、デプロイメント・マネージャのインポート経由、またはアプリケーション・オンボード経由で作成または更新されたプロファイルについては、索引の作成がある程度自動化されています。この自動的に作成された索引を、この項で定義されているルールごとに検証します。問題がある場合は、索引を手動で修正する必要があります。手動で作成または更新されたプロファイルについては、索引は自動的に作成されず、手動で作成する必要があります。また、「一致ルール」フィールドが変更された場合、索引は自動的には削除されません。索引の削除は手動で行う必要があります。
-
既存の索引の一覧は、ProfileValidator Mbeanを使用してOracle Enterprise Managerで表示できます。
-
RDXから始まる索引名は、デフォルトのリコンシリエーション索引用に予約されており、カスタム索引の作成には使用できません。
12.11.2 リコンシリエーション・パフォーマンスに関するデータベース・スキーマ統計の収集
リコンシリエーション・プロセスにデータベースSQL機能が使用されるため、リコンシリエーションを実行する前に、スキーマ統計を更新する必要があります。
データベース統計は、SQL問合せの実行時にOracleオプティマイザが最適な計画を選択するために不可欠な情報です。Oracle Identity Managerスキーマの統計は、定期的に収集することをお薦めします。Oracle Identity Managerではリコンシリエーション・プロセスに多数のデータベースSQL機能が使用されるため、リコンシリエーションを実行する前に、スキーマ統計が更新されていることを確認してください。
ノート:
-
DBMS_STATS.GATHER_SCHEMA_STATS APIでは、環境、データ・プロファイル、Oracle DBエディションおよび基礎となるハードウェア機能に基づいて、他のオプション(DEGREE、ESTIMATE_PERCENTなど)を必要に応じて使用できます。
-
データベース・スキーマ統計の収集の詳細は、パフォーマンスおよびチューニング・ガイドのデータベース・パフォーマンスの監視を参照してください。
また、Oracle Identity Managerリコンシリエーション・プロセスは、データ量が多く、大量のデータが高速で移動するため、データベース統計によって基礎となるデータが正確に表現される必要があります。そのためには、次のガイドラインを参考にしてください。
-
統計が、Oracle Identity Managerスキーマの新規の設定のリコンシリエーション、または既存のデータがない(あるとしてもわずかな)少量のリコンシリエーションを対象として収集されるようにします。Oracle Identity Managerの関連する表の最大行数は、100から1000までの行にする必要があります。表の例には、信頼できるソース・リコンシリエーションのUSR表や、ターゲット・リソースのリコンシリエーションの親アカウント表があります。
-
20000を超えるユーザーやアカウントなど、大量のデータの移動が予想されるリコンシリエーションが開始した後も、統計が適切な表現のデータ配信になるために、次のようにしてOracle Identity Managerスキーマ統計を収集してください。
-
リコンシリエーションが正常に開始して、しばらく実行されていた場合にのみ、初期コレクション後の統計を収集するように計画します。これを確認するには、信頼できるソース・リコンシリエーションのUSR表や、ターゲット・リソースのリコンシリエーションの親アカウント(UD_*)表など、Oracle Identity Managerスキーマで主要な複数の表の件数をチェックします。
-
リコンシリエーションによってUSR表または親アカウント表で約20000から25000行が移動した後で、統計を収集します。
ノート:
-
統計は、リコンシリエーションの実行と同時に収集できます。
-
ガイドラインに指定されている行数は例であり、収集する統計に応じて別の行数にできます。
-
-
-
統計を収集した後、パフォーマンスは即時には改善されない可能性があります。ただし、Oracle Databaseの共有プールから以前のSQL計画がクリアされ、さらに効率的な新しい計画が作成されるに従って、パフォーマンスは向上します。
12.12 DMSを使用したリコンシリエーション・パフォーマンスの監視
ダイナミック・モニタリング・サービス(DMS)コマンドは、パフォーマンス・メトリックの表示およびイベント・トレースの構成に使用します。
次のDMSメトリックは、リコンシリエーション・パフォーマンスの監視に適しています。
-
OIM_ScheduledJob: 特定のスケジュール済ジョブの実行にかかった時間です。
-
リコンシリエーション・サービス(ReconOperationsServiceまたはtcReconciliationOpIntf): リコンシリエーション・サービスでイベントを作成するために各APIでかかった時間です。コネクタのスループットは、「スケジュール済ジョブ時間の合計 - イベントの作成にかかった合計時間」で計算できます。
-
OIM_JMS: ActionTaskに、編成を介して実行されたストアド・プロシージャおよび後処理によって両方を処理するためにかかる統合時間が示されます。XLAuditMessageは、実際の監査処理についての情報を提供します。
-
OIM_EventHandlers: オーケストレーション内の各イベント・ハンドラにかかった時間です。
-
DMSダンプ: パフォーマンスおよび機能の問題を解決できない場合、分析のためにDMSダンプを提出する必要があります。コマンドは次のとおりです。
${mwhome}/oracle_common/common/bin/wlst>>dms.log Connect('adminusername','adminpassword'); dumpMetrics(format='xml'); Exit();
このコマンドの詳細は、WebLogic Scripting Toolコマンド・リファレンスのDMSカスタムWLSTコマンドのdumpMetricsを参照してください。