この章では、Design Consoleの「ビジネス・ルール定義」について説明します。内容は次のとおりです。
「開発ツール/ビジネス・ルール定義」フォルダでは、システム管理者および開発者がOracle Identity Managerのイベント・ハンドラおよびデータ・オブジェクトを管理するツールが提供されます。
このフォルダには、次のフォームが含まれます。
このフォームは、「開発ツール/ビジネス・ルール定義」フォルダに表示されます。このフォームを使用して、ユーザー定義またはシステム生成のアクション(またはイベント)を処理するJavaクラスを管理します。これらのクラスはイベント・ハンドラと呼ばれます。新規イベント・ハンドラをOracle Identity Managerに追加する場合は、Oracle Identity Managerで認識されるようにするために、最初にそのイベント・ハンドラをここで登録する必要があります。
イベント・ハンドラには次の2種類があります。
「アダプタ・ファクトリ」フォームを使用して作成されるイベント・ハンドラ。名前の先頭の文字はadp
です。これらはアダプタと呼ばれます。
Oracle Identity Managerで内部的に作成されるイベント・ハンドラ。名前の先頭の文字はtc
です。これらは、システム・イベント・ハンドラと呼ばれます。
「イベント・ハンドラ・マネージャ」フォームを使用して、Oracle Identity Managerによりいつイベント・ハンドラがトリガーされるかを指定できます。イベント・ハンドラの実行は、次のようにスケジュールできます。
挿入前: 情報がデータベースに追加される前
更新前: 情報がデータベース内で更新される前
削除前: 情報がデータベースから削除される前
挿入後: 情報がデータベースに追加された後
更新後: 情報がデータベース内で更新された後
削除後: 情報がデータベースから削除された後
図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項「「データ・オブジェクト・マネージャ」フォーム」を参照してください。 |
注意: 名前の先頭の文字が |
イベント・ハンドラの追加または変更
イベント・ハンドラを追加または変更するには、次の手順を実行します。
「イベント・ハンドラ・マネージャ」フォームを開きます。
Oracle Identity Managerにイベント・ハンドラを追加するには、「イベント・ハンドラ名」参照フィールドにイベント・ハンドラの名前を入力します。
イベント・ハンドラを変更するには、「イベント・ハンドラ名」参照フィールドをダブルクリックします。
表示される「参照」ダイアログ・ボックスで、編集するイベント・ハンドラを選択します。
パッケージ・フィールドで、イベント・ハンドラがそのメンバーであるJavaパッケージの名前を追加または編集します。
どの時点でOracle Identity Managerによりイベント・ハンドラをトリガーするかに応じて、該当するチェック・ボックスを選択します。
イベント・ハンドラは、挿入前、更新前、削除前、挿入後、更新後および削除後に実行されるようにスケジュールできます。
注意: チェック・ボックスを選択しても、イベント・ハンドラがその時点で(たとえば挿入前に)トリガーされるわけではありません。これは、その時点でのイベント・ハンドラの実行が可能であることを意味しています。 |
「注意」領域で、イベント・ハンドラに関する説明を追加または編集します。
「保存」をクリックします。
イベント・ハンドラが追加または編集されます。
「データ・オブジェクト・マネージャ」フォームは、「開発ツール/ビジネス・ルール定義」フォルダに表示されます。このフォームを使用して、次の操作を実行できます。
データベースのデータを追加、変更または削除できるオブジェクトに、ルール・ジェネレータ・アダプタ、エンティティ・アダプタまたはイベント・ハンドラを割り当てます。このタイプのオブジェクトは、データ・オブジェクトと呼ばれます。
スケジュール(挿入前、更新前、削除前、挿入後、更新後または削除後)に従って実行されるように、アダプタまたはイベント・ハンドラのスケジュールを設定します。
同じ実行スケジュールに属するアダプタまたはイベント・ハンドラが、Oracle Identity Managerによってトリガーされる順序を調整します。
現在のデータ・オブジェクトを追加、変更および削除できるユーザー・グループを表示します。
アダプタ変数を適切なソースの場所およびターゲットの場所にマップします。
図5-2に、「データ・オブジェクト・マネージャ」フォームを示します。
表5-2に、「データ・オブジェクト・マネージャ」フォームのフィールドの説明を示します。
表5-2 「データ・オブジェクト・マネージャ」フォームのフィールド
フィールド | 説明 |
---|---|
フォームの説明 |
データ・オブジェクトに関連付けられているフォームの名前。 |
データ・オブジェクト |
イベント・ハンドラ、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタを割り当てるデータ・オブジェクトの名前。 |
次の項では、ルール・ジェネレータ・アダプタ、エンティティ・アダプタまたはイベント・ハンドラを割り当てるターゲット・データ・オブジェクトの選択方法について説明します。
ターゲット・データ・オブジェクトの選択
ターゲット・データ・オブジェクトを選択するには、次の手順を実行します。
「データ・オブジェクト・マネージャ」フォームを開きます。
フォームの説明フィールドをダブルクリックします。
表示される「参照」ダイアログ・ボックスで、イベント・ハンドラ、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタを割り当てるデータ・オブジェクトに関連付けられているフォームの名前を選択します。
フォームを選択すると、対応するデータ・オブジェクトの名前がデータ・オブジェクト・フィールドに表示されます。
「保存」をクリックします。
ターゲット・データ・オブジェクトが選択されます。これで、ルール・ジェネレータ・アダプタ、エンティティ・アダプタおよびイベント・ハンドラを割り当てられるようになりました。
「データ・オブジェクト・マネージャ」フォームを起動してターゲット・データ・オブジェクトを選択すると、このフォームのタブが使用できるようになります。
「データ・オブジェクト・マネージャ」フォームには、次のタブが含まれます。
ハンドラのアタッチ、アダプタのマップ
それぞれのタブについて、次の各項で説明します。
このタブを使用して、データ・オブジェクトに割り当てるか、データ・オブジェクトから削除するルール・ジェネレータ・アダプタ、エンティティ・アダプタまたはイベント・ハンドラを選択します。次の情報が含まれます。
割り当てられたイベント・ハンドラまたはアダプタが、Oracle Identity Managerによって(挿入前、更新前、削除前、挿入後、更新後または削除後の)いつトリガーされるかを指定します。同じ実行スケジュールに属するアダプタまたはイベント・ハンドラがOracle Identity Managerによってトリガーされる順序を設定します。
イベント・ハンドラ、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタをOracle Identity Managerによってトリガーする必要がなくなった場合は、データ・オブジェクトからそれを削除する必要があります。
たとえば、adpCONVERTTOLOWERCASE
、adpSOLARISHMDSTRINGGEN
、adpSETSOLARISASSET
およびadpSETPASSWORDFROMMAIN
の各アダプタが、挿入前にOracle Identity Managerによってトリガーされるとします。これらのアダプタの順序番号に基づき、Oracle Identity Managerは、まずadpCONVERTTOLOWERCASE
アダプタをトリガーし、それからadpSOLARISHMDSTRINGGEN
、adpSETSOLARISASSET
およびadpSETPASSWORDFROMMAIN
アダプタの順にトリガーします。
注意: 現在のデータ・オブジェクトを追加、変更および削除できるユーザー・グループを表示するには、権限の挿入、「権限の更新」または権限の削除の各タブをそれぞれクリックします。 |
次の各項では、これらの手順について説明します。
データ・オブジェクトへのイベント・ハンドラ、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタの割当て。イベント・ハンドラまたはアダプタの実行スケジュールの構成。データ・オブジェクトからのイベント・ハンドラ、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタの削除。
イベント・ハンドラまたはアダプタを割り当てるには、次の手順を実行します。
アダプタまたはイベント・ハンドラをいつトリガーするかに応じて、該当する「データ・オブジェクト・マネージャ」フォームのタブを選択します。
たとえば、挿入前にOracle Identity Managerでアダプタをアクティブ化する場合は、挿入前タブを選択します。
選択したタブで、「割当て」をクリックします。
「割当て」ダイアログ・ボックスが表示されます。
イベント・ハンドラまたはアダプタを選択し、データ・オブジェクトに割り当てます。
「OK」をクリックします。
イベント・ハンドラまたはアダプタがデータ・オブジェクトに割り当てられます。
実行スケジュールを構成するには、次の手順を実行します。
実行スケジュールを変更するイベント・ハンドラまたはアダプタを選択します。
「割当て」をクリックします。
「割当て」ダイアログ・ボックスが表示されます。
イベント・ハンドラまたはアダプタを選択します。
上をクリックすると、選択したイベント・ハンドラまたはアダプタの位置と順序番号が、その前のイベント・ハンドラまたはアダプタと入れ替わります。
下をクリックすると、選択したイベント・ハンドラまたはアダプタの位置と順序番号が、その次のイベント・ハンドラまたはアダプタと入れ替わります。
すべてのイベント・ハンドラとアダプタの順序番号が適切に設定されるまで、手順3と4を繰り返します。
「OK」をクリックします。
イベント・ハンドラおよびアダプタは、実行スケジュールまたは独自に構成したスケジュールで正しい順序でトリガーされます。
アダプタのマップ・タブは、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタをデータ・オブジェクトに割り当てた後でのみ使用できます。
このタブを使用して、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタの変数を、それぞれに適したソースの場所およびターゲットの場所にマップします。たとえば、adpSOLARISUSERIDGENERATOR
アダプタにfirstname、Adapter return valueおよびlastnameの3つの変数があるとします。各アダプタ変数のマップ済列にY
が表示されている場合は、3つの変数がすべて正しい場所にマップされており、アダプタのステータスが「準備完了」に変わります。
注意: アダプタのステータスは、次の3つのいずれかになります。
|
アダプタのコンパイルおよびアダプタ変数のマッピングの詳細は、第2章「アダプタの開発」を参照してください。
注意: データ・オブジェクトにアダプタが割り当てられていない場合は、アダプタのマップ・タブは無効になります。 |
このフォームは、「開発ツール」フォルダにあります。
このフォームを使用して、次のような場合に起動するルールを定義します。
信頼できるソースへの変更に関連付けられているユーザーまたは組織のレコードをOracle Identity Managerにより判別する場合。これらのルールは、「リコンシリエーション・マネージャ」フォームの「リコンシリエーション・データ」タブで、リコンシリエーション・イベントのすべての必須フィールドが処理された時点で評価されます。
(たとえば、システムで変更が検出されたことを受けて)どのユーザー・レコードまたは組織レコードがターゲット・リソースで検出されたアカウントの所有者かをOracle Identity Managerにより判別する場合。これらのルールは、「リコンシリエーション・マネージャ」フォームの「リコンシリエーション・データ」タブで、リコンシリエーション・イベントのすべての必須フィールドが処理され、同フォームのプロセス一致ツリー・タブのイベントと一致するプロセスがなかった場合のみ評価されます。
前述のように、このフォームを使用して定義されたルールは、信頼できるソースまたはターゲットのリソースでの変更に関連付けられているユーザーまたは組織いずれかとの一致に使用されます。これらのタイプのルールは、それぞれユーザー一致ルールまたは組織一致ルールと呼ばれます。これらのルールは、「ルール・デザイナ」フォームを使用して定義できるルールと似ていますが、「リコンシリエーション・ルール」フォームを使用して作成されたルールは、(単一のターゲット・リソースに関連するため)リソース・オブジェクト固有で、リコンシリエーション関連の機能のみに影響します。
リコンシリエーション・ルールの使用に関するトピックは次のとおりです。
次の手順では、リコンシリエーション・ルールの定義方法について説明します。
注意: 次の手順では、必ず「アクティブ」チェック・ボックスが選択されていることを確認してください。このチェック・ボックスが選択されていない場合、リソースに関連するリコンシリエーション・イベントの処理時に、Oracle Identity Managerのリコンシリエーション・エンジンによってルールが評価されません。ただし、このチェック・ボックスを選択できるのは、Oracle Identity Managerによって「valid」システム・チェック・ボックスが選択されている場合のみです。「valid」チェック・ボックスは、1つ以上のルール要素が作成され、そのルール要素のロジックが有効であるとOracle Identity Managerによって判断された後でのみ選択可能です。 |
ユーザーの一致または組織の一致用にリコンシリエーション・ルールを定義するには、次の手順を実行します。
「リコンシリエーション・ルール」フォームに移動します。
「名前」フィールドに、ルール名を入力します。
「オブジェクト」フィールドで、このルールを関連付けるターゲット・リソースを選択します。
「説明」フィールドにルールの説明を入力します。
ルールに使用する「および」演算子または「または」演算子を選択します。「および」を選択した場合は、ルールのすべての要素(およびルールがネストされている場合はそれらのルール)が一致しないかぎり、ルールがtrueと評価されません。「または」を選択した場合は、ルールのいずれかの要素(またはルールがネストされている場合はそのいずれか)が一致すると、trueと評価されます。
「保存」をクリックします。
ルール定義が保存されます。次に、このルールのルール要素を作成する必要があります。
リコンシリエーション・ルールの個々の要素を定義するには、次の手順を実行します。
要素を追加するルール定義に移動します。
「ルール要素」タブのルール要素の追加をクリックします。
ルール要素の追加ダイアログ・ボックスが表示されます。
「ルール要素」タブをクリックします。
「ユーザー・データ」メニューからユーザー関連のデータ項目を選択します。
これが、ルール要素の評価時にOracle Identity Managerによって調査されるユーザー・データ要素になります。このメニューには、Oracleユーザー・フォームのすべてのフィールド(作成済のユーザー定義フィールドを含む)が表示されます。
注意: 組織の一致のためのルールを定義する場合、使用可能なデータおよびメニュー名は、ユーザーではなく組織に関連付けられます。 |
「演算子」メニューから演算子を選択します。
これは、ルール要素の評価時に、選択したデータ項目の属性にOracle Identity Managerによって適用される条件です。有効な演算子は次のとおりです。
次と等しい: このオプションを選択した場合、ユーザーまたは組織のレコードのデータ要素は、選択された属性と完全に一致する必要があります。
注意:
|
次を含む: このオプションを選択した場合、ユーザーまたは組織のレコードのデータ要素は選択された属性と完全に一致するのではなく、この属性を含んでいる必要があります。
次で始まる: このオプションを選択した場合、ユーザーまたは組織のレコードのデータ要素は、選択された属性で始まる必要があります。
次で終わる: このオプションを選択した場合、ユーザーまたは組織のレコードのデータ要素は、選択された属性で終わる必要があります。
「属性」メニューから値を選択します。このメニューの値は、ルールに関連付けられているリソースに対して、「リコンシリエーション・フィールド」タブで定義されたフィールドです。そのリソースのリコンシリエーション・フィールドが指定されていない場合、値は選択できません。
注意: (信頼できるソースとは対照的に)ターゲット・リソースのルール要素を定義する際には、リソースのカスタム・プロセス・フォームの親表に関連付けられているフィールドのみが、「属性」フィールドで選択可能になります。 |
「属性」フィールド内のデータに対して(演算子を適用する前に)Oracle Identity Managerで特定の変換処理が実行されるようにするには、変換メニューから目的の変換処理を選択します。
注意: このメニューで「なし」以外の値を選択した場合は、Oracle Identity Managerによって変換処理が正しく実行されるように、「保存」をクリックした後でタブを選択し、適切なプロパティを設定する必要があります。 |
表5-3に、実行できる変換処理を示します。
大文字/小文字を区別チェック・ボックスを選択します。
このチェック・ボックスを選択した場合、ルール要素が条件と一致するには、「属性」フィールドで選択された値と、リコンシリエーション・イベント・レコードで評価される値の大/小文字が一致している必要があります。このチェック・ボックスの選択を解除した場合、「属性」フィールドで選択された値と、リコンシリエーション・イベント・レコードで評価される値の大/小文字が一致する必要はありません。
「保存」をクリックします。
変換メニューで(「なし」以外の)値が選択されていても、変換処理のプロパティが設定されていない場合は、プロパティが設定されていますチェック・ボックスは選択されません。
その場合は、ルール要素プロパティ・タブを選択し、適切なプロパティを設定して、再度「保存」をクリックする必要があります。
ルール要素がルールに追加されます。
ルールに追加するルール要素ごとに、この手順全体を繰り返します。
注意: 「アクティブ」チェック・ボックスが選択されていることを確認してください。 |
ルールの中に既存のルールをネストできます。Oracle Identity Managerでは、ネストされたルールの条件は、他のルールの要素と同様に評価されます。
注意: ダイアログ・ボックスで選択できるのは、同じリソース・オブジェクトに関連付けられているリコンシリエーション関連のルールのみです。 |
ルールの中にルールをネストするには、次の手順を実行します。
別のルールが追加されるルールに移動します。
「ルール要素」タブの「ルールの追加」をクリックします。
ルールの選択参照ダイアログ・ボックスが表示されます。
目的のルールの場所を特定し、選択します。
「OK」をクリックします。
選択したリコンシリエーション・ルールがルールに追加されます。
ルールにネストするルールごとに、手順2から4を繰り返します。
ルール要素またはルールを削除するには、次の手順を実行します。
要素を削除するルールに移動します。
「ルール要素」タブで、削除するルール要素またはルールを選択します。
「削除」をクリックします。