ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Identity Manager開発者ガイド
11g リリース1(11.1.1)
B66705-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

5 ルールの開発

この章では、Design Consoleの「ビジネス・ルール定義」について説明します。内容は次のとおりです。

5.1 「ビジネス・ルール定義」の概要

「開発ツール/ビジネス・ルール定義」フォルダでは、システム管理者および開発者がOracle Identity Managerのイベント・ハンドラおよびデータ・オブジェクトを管理するツールが提供されます。

このフォルダには、次のフォームが含まれます。

5.2 「イベント・ハンドラ・マネージャ」フォーム

このフォームは、「開発ツール/ビジネス・ルール定義」フォルダに表示されます。このフォームを使用して、ユーザー定義またはシステム生成のアクション(またはイベント)を処理するJavaクラスを管理します。これらのクラスはイベント・ハンドラと呼ばれます。新規イベント・ハンドラをOracle Identity Managerに追加する場合は、Oracle Identity Managerで認識されるようにするために、最初にそのイベント・ハンドラをここで登録する必要があります。

イベント・ハンドラには次の2種類があります。

「イベント・ハンドラ・マネージャ」フォームを使用して、Oracle Identity Managerによりいつイベント・ハンドラがトリガーされるかを指定できます。イベント・ハンドラの実行は、次のようにスケジュールできます。

図5-1に、「イベント・ハンドラ・マネージャ」フォームを示します。

図5-1 「イベント・ハンドラ・マネージャ」フォーム

図5-1については周囲のテキストで説明しています。

表5-1に、「イベント・ハンドラ・マネージャ」フォームのフィールドの説明を示します。

表5-1 「イベント・ハンドラ・マネージャ」フォームのフィールド

フィールド名 説明

イベント・ハンドラ名

イベント・ハンドラの名前。

パッケージ

イベント・ハンドラが属するJavaパッケージ。

挿入前

このチェック・ボックスを選択すると、データベースに情報が追加される前に、Oracle Identity Managerによってイベント・ハンドラがトリガーされます。

更新前

このチェック・ボックスを選択すると、データベースで情報が変更される前に、Oracle Identity Managerによってイベント・ハンドラがトリガーされます。

削除前

このチェック・ボックスを選択すると、データベースから情報が削除される前に、Oracle Identity Managerによってイベント・ハンドラがトリガーされます。

挿入後

このチェック・ボックスを選択すると、データベースに情報が追加された後に、Oracle Identity Managerによってイベント・ハンドラがトリガーされます。

更新後

このチェック・ボックスを選択すると、データベースで情報が変更された後に、Oracle Identity Managerによってイベント・ハンドラがトリガーされます。

削除後

このチェック・ボックスを選択すると、データベースから情報が削除された後に、Oracle Identity Managerによってイベント・ハンドラがトリガーされます。

注意

イベント・ハンドラに関する追加情報。


次の各項では、イベント・ハンドラの作成および変更の方法について説明します。


注意:

イベント・ハンドラを使用するには、「データ・オブジェクト・マネージャ」フォームを使用して、イベント・ハンドラをデータ・オブジェクトにアタッチする必要があります。イベント・ハンドラのデータ・オブジェクトへの割当ての詳細は、5.3項「「データ・オブジェクト・マネージャ」フォーム」を参照してください。



注意:

名前の先頭の文字がadpであるイベント・ハンドラは、すべてアダプタに関連付けられているため、変更できません。ただし、システム・イベント・ハンドラは変更可能です。これらのイベント・ハンドラは名前の先頭の文字がtcです。


イベント・ハンドラの追加または変更

イベント・ハンドラを追加または変更するには、次の手順を実行します。

  1. 「イベント・ハンドラ・マネージャ」フォームを開きます。

  2. Oracle Identity Managerにイベント・ハンドラを追加するには、「イベント・ハンドラ名」参照フィールドにイベント・ハンドラの名前を入力します。

    イベント・ハンドラを変更するには、「イベント・ハンドラ名」参照フィールドをダブルクリックします。

    表示される「参照」ダイアログ・ボックスで、編集するイベント・ハンドラを選択します。

  3. パッケージ・フィールドで、イベント・ハンドラがそのメンバーであるJavaパッケージの名前を追加または編集します。

  4. どの時点でOracle Identity Managerによりイベント・ハンドラをトリガーするかに応じて、該当するチェック・ボックスを選択します。

    イベント・ハンドラは、挿入前、更新前、削除前、挿入後、更新後および削除後に実行されるようにスケジュールできます。


    注意:

    チェック・ボックスを選択しても、イベント・ハンドラがその時点で(たとえば挿入前に)トリガーされるわけではありません。これは、その時点でのイベント・ハンドラの実行が可能であることを意味しています。


  5. 「注意」領域で、イベント・ハンドラに関する説明を追加または編集します。

  6. 「保存」をクリックします。

    イベント・ハンドラが追加または編集されます。

5.3 「データ・オブジェクト・マネージャ」フォーム

「データ・オブジェクト・マネージャ」フォームは、「開発ツール/ビジネス・ルール定義」フォルダに表示されます。このフォームを使用して、次の操作を実行できます。

図5-2に、「データ・オブジェクト・マネージャ」フォームを示します。

図5-2 「データ・オブジェクト・マネージャ」フォーム

図5-2については周囲のテキストで説明しています。

表5-2に、「データ・オブジェクト・マネージャ」フォームのフィールドの説明を示します。

表5-2 「データ・オブジェクト・マネージャ」フォームのフィールド

フィールド 説明

フォームの説明

データ・オブジェクトに関連付けられているフォームの名前。

データ・オブジェクト

イベント・ハンドラ、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタを割り当てるデータ・オブジェクトの名前。


次の項では、ルール・ジェネレータ・アダプタ、エンティティ・アダプタまたはイベント・ハンドラを割り当てるターゲット・データ・オブジェクトの選択方法について説明します。

ターゲット・データ・オブジェクトの選択

ターゲット・データ・オブジェクトを選択するには、次の手順を実行します。

  1. 「データ・オブジェクト・マネージャ」フォームを開きます。

  2. フォームの説明フィールドをダブルクリックします。

    表示される「参照」ダイアログ・ボックスで、イベント・ハンドラ、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタを割り当てるデータ・オブジェクトに関連付けられているフォームの名前を選択します。

    フォームを選択すると、対応するデータ・オブジェクトの名前がデータ・オブジェクト・フィールドに表示されます。

  3. 「保存」をクリックします。

    ターゲット・データ・オブジェクトが選択されます。これで、ルール・ジェネレータ・アダプタ、エンティティ・アダプタおよびイベント・ハンドラを割り当てられるようになりました。

5.3.1 「データ・オブジェクト・マネージャ」フォームのタブ

「データ・オブジェクト・マネージャ」フォームを起動してターゲット・データ・オブジェクトを選択すると、このフォームのタブが使用できるようになります。

「データ・オブジェクト・マネージャ」フォームには、次のタブが含まれます。

  • ハンドラのアタッチ、アダプタのマップ

それぞれのタブについて、次の各項で説明します。

5.3.1.1 ハンドラのアタッチ・タブ

このタブを使用して、データ・オブジェクトに割り当てるか、データ・オブジェクトから削除するルール・ジェネレータ・アダプタ、エンティティ・アダプタまたはイベント・ハンドラを選択します。次の情報が含まれます。

  • 割り当てられたイベント・ハンドラまたはアダプタが、Oracle Identity Managerによって(挿入前、更新前、削除前、挿入後、更新後または削除後の)いつトリガーされるかを指定します。同じ実行スケジュールに属するアダプタまたはイベント・ハンドラがOracle Identity Managerによってトリガーされる順序を設定します。

イベント・ハンドラ、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタをOracle Identity Managerによってトリガーする必要がなくなった場合は、データ・オブジェクトからそれを削除する必要があります。

たとえば、adpCONVERTTOLOWERCASEadpSOLARISHMDSTRINGGENadpSETSOLARISASSETおよびadpSETPASSWORDFROMMAINの各アダプタが、挿入前にOracle Identity Managerによってトリガーされるとします。これらのアダプタの順序番号に基づき、Oracle Identity Managerは、まずadpCONVERTTOLOWERCASEアダプタをトリガーし、それからadpSOLARISHMDSTRINGGENadpSETSOLARISASSETおよびadpSETPASSWORDFROMMAINアダプタの順にトリガーします。


注意:

現在のデータ・オブジェクトを追加、変更および削除できるユーザー・グループを表示するには、権限の挿入「権限の更新」または権限の削除の各タブをそれぞれクリックします。


次の各項では、これらの手順について説明します。

  • データ・オブジェクトへのイベント・ハンドラ、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタの割当て。イベント・ハンドラまたはアダプタの実行スケジュールの構成。データ・オブジェクトからのイベント・ハンドラ、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタの削除。

5.3.1.1.1 データ・オブジェクトへのイベント・ハンドラまたはアダプタの割当て

イベント・ハンドラまたはアダプタを割り当てるには、次の手順を実行します。

  1. アダプタまたはイベント・ハンドラをいつトリガーするかに応じて、該当する「データ・オブジェクト・マネージャ」フォームのタブを選択します。

    たとえば、挿入前にOracle Identity Managerでアダプタをアクティブ化する場合は、挿入前タブを選択します。

  2. 選択したタブで、「割当て」をクリックします。

    「割当て」ダイアログ・ボックスが表示されます。

  3. イベント・ハンドラまたはアダプタを選択し、データ・オブジェクトに割り当てます。

  4. 「OK」をクリックします。

    イベント・ハンドラまたはアダプタがデータ・オブジェクトに割り当てられます。

5.3.1.1.2 イベント・ハンドラまたはアダプタの実行スケジュールの構成

実行スケジュールを構成するには、次の手順を実行します。

  1. 実行スケジュールを変更するイベント・ハンドラまたはアダプタを選択します。

  2. 「割当て」をクリックします。

    「割当て」ダイアログ・ボックスが表示されます。

  3. イベント・ハンドラまたはアダプタを選択します。

  4. をクリックすると、選択したイベント・ハンドラまたはアダプタの位置と順序番号が、その前のイベント・ハンドラまたはアダプタと入れ替わります。

    をクリックすると、選択したイベント・ハンドラまたはアダプタの位置と順序番号が、その次のイベント・ハンドラまたはアダプタと入れ替わります。

  5. すべてのイベント・ハンドラとアダプタの順序番号が適切に設定されるまで、手順3と4を繰り返します。

  6. 「OK」をクリックします。

    イベント・ハンドラおよびアダプタは、実行スケジュールまたは独自に構成したスケジュールで正しい順序でトリガーされます。

5.3.1.1.3 データ・オブジェクトからのイベント・ハンドラまたはアダプタの削除

イベント・ハンドラまたはアダプタを削除するには、次の手順を実行します。

  1. イベント・ハンドラまたはアダプタを選択します。

  2. 「削除」をクリックします。

    イベント・ハンドラまたはアダプタが削除されます。

5.3.1.2 アダプタのマップ・タブ

アダプタのマップ・タブは、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタをデータ・オブジェクトに割り当てた後でのみ使用できます。

このタブを使用して、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタの変数を、それぞれに適したソースの場所およびターゲットの場所にマップします。たとえば、adpSOLARISUSERIDGENERATORアダプタにfirstname、Adapter return valueおよびlastnameの3つの変数があるとします。各アダプタ変数のマップ済列にYが表示されている場合は、3つの変数がすべて正しい場所にマップされており、アダプタのステータスが「準備完了」に変わります。


注意:

アダプタのステータスは、次の3つのいずれかになります。

  • 準備完了: このアダプタは正常にコンパイルされており、すべての変数が正しくマップされています。

  • マッピングが不完全: このアダプタは正常にコンパイルされていますが、正しくマップされていない変数が1つ以上あります。

  • マッピングが不完全: このアダプタは正常にコンパイルされていますが、正しくマップされていない変数が1つ以上あります。


アダプタのコンパイルおよびアダプタ変数のマッピングの詳細は、第2章「アダプタの開発」を参照してください。


注意:

データ・オブジェクトにアダプタが割り当てられていない場合は、アダプタのマップ・タブは無効になります。


5.4 「リコンシリエーション・ルール」フォーム

このフォームは、「開発ツール」フォルダにあります。

図5-3 「リコンシリエーション・ルール」フォーム

図5-3については周囲のテキストで説明しています。

このフォームを使用して、次のような場合に起動するルールを定義します。

前述のように、このフォームを使用して定義されたルールは、信頼できるソースまたはターゲットのリソースでの変更に関連付けられているユーザーまたは組織いずれかとの一致に使用されます。これらのタイプのルールは、それぞれユーザー一致ルールまたは組織一致ルールと呼ばれます。これらのルールは、「ルール・デザイナ」フォームを使用して定義できるルールと似ていますが、「リコンシリエーション・ルール」フォームを使用して作成されたルールは、(単一のターゲット・リソースに関連するため)リソース・オブジェクト固有で、リコンシリエーション関連の機能のみに影響します。

リコンシリエーション・ルールの使用に関するトピックは次のとおりです。

5.4.1 リコンシリエーション・ルールの定義

次の手順では、リコンシリエーション・ルールの定義方法について説明します。


注意:

次の手順では、必ず「アクティブ」チェック・ボックスが選択されていることを確認してください。このチェック・ボックスが選択されていない場合、リソースに関連するリコンシリエーション・イベントの処理時に、Oracle Identity Managerのリコンシリエーション・エンジンによってルールが評価されません。ただし、このチェック・ボックスを選択できるのは、Oracle Identity Managerによって「valid」システム・チェック・ボックスが選択されている場合のみです。「valid」チェック・ボックスは、1つ以上のルール要素が作成され、そのルール要素のロジックが有効であるとOracle Identity Managerによって判断された後でのみ選択可能です。


ユーザーの一致または組織の一致用にリコンシリエーション・ルールを定義するには、次の手順を実行します。

  1. 「リコンシリエーション・ルール」フォームに移動します。

  2. 「名前」フィールドに、ルール名を入力します。

  3. 「オブジェクト」フィールドで、このルールを関連付けるターゲット・リソースを選択します。

  4. 「説明」フィールドにルールの説明を入力します。

    ルールに使用する「および」演算子または「または」演算子を選択します。「および」を選択した場合は、ルールのすべての要素(およびルールがネストされている場合はそれらのルール)が一致しないかぎり、ルールがtrueと評価されません。「または」を選択した場合は、ルールのいずれかの要素(またはルールがネストされている場合はそのいずれか)が一致すると、trueと評価されます。

  5. 「保存」をクリックします。

    ルール定義が保存されます。次に、このルールのルール要素を作成する必要があります。

5.4.2 ルール要素の追加

リコンシリエーション・ルールの個々の要素を定義するには、次の手順を実行します。

  1. 要素を追加するルール定義に移動します。

  2. 「ルール要素」タブのルール要素の追加をクリックします。

    ルール要素の追加ダイアログ・ボックスが表示されます。

  3. 「ルール要素」タブをクリックします。

  4. 「ユーザー・データ」メニューからユーザー関連のデータ項目を選択します。

    これが、ルール要素の評価時にOracle Identity Managerによって調査されるユーザー・データ要素になります。このメニューには、Oracleユーザー・フォームのすべてのフィールド(作成済のユーザー定義フィールドを含む)が表示されます。


    注意:

    組織の一致のためのルールを定義する場合、使用可能なデータおよびメニュー名は、ユーザーではなく組織に関連付けられます。


  5. 「演算子」メニューから演算子を選択します。

    これは、ルール要素の評価時に、選択したデータ項目の属性にOracle Identity Managerによって適用される条件です。有効な演算子は次のとおりです。

    • 次と等しい: このオプションを選択した場合、ユーザーまたは組織のレコードのデータ要素は、選択された属性と完全に一致する必要があります。


      注意:

      • ユーザーの信頼できるソースのリコンシリエーションを構成する場合は、Oracle Identity Managerユーザー・アカウントの「ユーザーID」フィールドがリコンシリエーション一致ルールで使用されていることを確認する必要があります。

      • 組織の信頼できるソースのリコンシリエーションを構成する場合は、Oracle Identity Managerユーザー・アカウントの「組織名」フィールドがリコンシリエーション一致ルールで使用されていることを確認する必要があります。


    • 次を含む: このオプションを選択した場合、ユーザーまたは組織のレコードのデータ要素は選択された属性と完全に一致するのではなく、この属性を含んでいる必要があります。

    • 次で始まる: このオプションを選択した場合、ユーザーまたは組織のレコードのデータ要素は、選択された属性で始まる必要があります。

    • 次で終わる: このオプションを選択した場合、ユーザーまたは組織のレコードのデータ要素は、選択された属性で終わる必要があります。

  6. 「属性」メニューから値を選択します。このメニューの値は、ルールに関連付けられているリソースに対して、「リコンシリエーション・フィールド」タブで定義されたフィールドです。そのリソースのリコンシリエーション・フィールドが指定されていない場合、値は選択できません。


    注意:

    (信頼できるソースとは対照的に)ターゲット・リソースのルール要素を定義する際には、リソースのカスタム・プロセス・フォームの親表に関連付けられているフィールドのみが、「属性」フィールドで選択可能になります。


  7. 「属性」フィールド内のデータに対して(演算子を適用する前に)Oracle Identity Managerで特定の変換処理が実行されるようにするには、変換メニューから目的の変換処理を選択します。


    注意:

    このメニューで「なし」以外の値を選択した場合は、Oracle Identity Managerによって変換処理が正しく実行されるように、「保存」をクリックした後でタブを選択し、適切なプロパティを設定する必要があります。


    表5-3に、実行できる変換処理を示します。

    表5-3 変換プロパティ

    変換 ルール要素プロパティ・タブで設定するプロパティ

    部分文字列

    開始ポイント、終了ポイント

    終了文字列

    開始ポイント

    トークン化

    デリミタ、トークン番号、スペース・デリミタ


  8. 大文字/小文字を区別チェック・ボックスを選択します。

    このチェック・ボックスを選択した場合、ルール要素が条件と一致するには、「属性」フィールドで選択された値と、リコンシリエーション・イベント・レコードで評価される値の大/小文字が一致している必要があります。このチェック・ボックスの選択を解除した場合、「属性」フィールドで選択された値と、リコンシリエーション・イベント・レコードで評価される値の大/小文字が一致する必要はありません。

  9. 「保存」をクリックします。

  10. 変換メニューで(「なし」以外の)値が選択されていても、変換処理のプロパティが設定されていない場合は、プロパティが設定されていますチェック・ボックスは選択されません。

    その場合は、ルール要素プロパティ・タブを選択し、適切なプロパティを設定して、再度「保存」をクリックする必要があります。

    ルール要素がルールに追加されます。

  11. ルールに追加するルール要素ごとに、この手順全体を繰り返します。


    注意:

    「アクティブ」チェック・ボックスが選択されていることを確認してください。


5.4.3 ルール内でのルールのネスト

ルールの中に既存のルールをネストできます。Oracle Identity Managerでは、ネストされたルールの条件は、他のルールの要素と同様に評価されます。


注意:

ダイアログ・ボックスで選択できるのは、同じリソース・オブジェクトに関連付けられているリコンシリエーション関連のルールのみです。


ルールの中にルールをネストするには、次の手順を実行します。

  1. 別のルールが追加されるルールに移動します。

  2. 「ルール要素」タブの「ルールの追加」をクリックします。

  3. ルールの選択参照ダイアログ・ボックスが表示されます。

    目的のルールの場所を特定し、選択します。

  4. 「OK」をクリックします。

    選択したリコンシリエーション・ルールがルールに追加されます。

  5. ルールにネストするルールごとに、手順2から4を繰り返します。

5.4.4 ルール要素またはルールの削除

ルール要素またはルールを削除するには、次の手順を実行します。

  1. 要素を削除するルールに移動します。

  2. 「ルール要素」タブで、削除するルール要素またはルールを選択します。

  3. 「削除」をクリックします。