プライマリ・コンテンツに移動
Oracle® Identity Manager Generic Scriptingコネクタ・ガイド
11.1.1
E79298-04
目次へ移動
目次

前
次

5 Generic Scriptingコネクタの機能拡張

コネクタを生成しインストールしたら、要件にあわせて構成できます。この章では、次のオプション構成手順を説明します。

注意:

Oracle Identity Managerリリース11.1.2以降では、参照問合せはサポートされません。Oracle Identity Managerシステム管理コンソールでの「フォーム・デザイナ」を使用した参照の管理の詳細は、Oracle Fusion Middleware Oracle Identity Managerの管理の参照の管理を参照してください。

5.1 信頼できるソースのリコンシリエーション用のカスタムOIMユーザー・フィールドの追加

信頼できるソースのリコンシリエーション用のカスタムOIMユーザー・フィールドを追加できます。

「Generic Scriptingコネクタの生成」で説明されている手順を実行してコネクタを生成しているときに、aliasエントリの値を指定することによりOIMユーザー・フィールドと対応するターゲット・システム・フィールドの間のマッピングを作成します。コネクタの生成後に、信頼できるソースのリコンシリエーション中に使用する追加のターゲット・システム・フィールドがある場合は、カスタムまたはユーザー定義フィールド(UDF)を作成して、一連のフィールドを拡張できます。

信頼できるソースのリコンシリエーション用に新規フィールドを追加するには、次のようにします。

  1. OIMユーザー・プロセス・フォームに新しいフィールドを追加します。UDF作成の詳細は、『Oracle Fusion Middleware Oracle Identity Managerの管理』のカスタム属性の作成に関する項を参照してください。

    注意:

    追加する新しいフィールドがOIMの「ユーザー」フィールドにすでにある場合、このステップをスキップし、次のステップに進みます。

  2. Design Consoleにログインします。

  3. リソース・オブジェクト定義で、属性に対応するリコンシリエーション・フィールドを次のように追加します。

    1. 「リソース管理」フォルダを開き、「リソース・オブジェクト」をダブルクリックします。

    2. ターゲット・システムに対応するリソース・オブジェクトを検索して開きます。

    3. 「Object Reconciliation」タブで、「ADD Field」をクリックして、「Add Reconciliation Field」ダイアログ・ボックスを開きます。

    4. フィールド名となる値を指定します。たとえば、Buildingです。

    5. 「フィールド・タイプ」リストから、フィールドのデータ型を選択します。また、属性を必須属性として指定する場合は、そのためのチェック・ボックスを選択します。

    6. 「Save」アイコンをクリックしてダイアログ・ボックスを閉じます。

    7. 「Save」アイコンをクリックします。

  4. 次のようにして、リコンシリエーション・フィールド・マッピングをプロセス定義に作成します。

    1. 「プロセス管理」フォルダを開き、「プロセス定義」をダブルクリックします。

    2. ターゲット・システムに対応するプロセス定義を検索して開きます。

    3. 「リコンシリエーション・フィールド・マッピング」タブで、「フィールド・マップの追加」をクリックします。

    4. 「リコンシリエーション・フィールド・マッピングの追加」ダイアログ・ボックスの「フィールド名」リストから、リソース・オブジェクトに作成された属性に割り当てた名前を選択します。

    5. 「ユーザー属性」メニューから値を選択し、「OK」をクリックします。

    6. フィールド・マッピングがプロセス・データを照合するためのキー・フィールドである場合、「key Field for Reconciliation matching」チェック・ボックスを選択します。

    7. 「Save」アイコンをクリックします。

  5. 次のようにリコンシリエーション・プロファイルを作成します。

    1. 「リソース管理」フォルダを開き、「リソース・オブジェクト」をダブルクリックします。

    2. ターゲット・システムに対応するリソース・オブジェクトを検索して開きます。

    3. 「Object Reconciliation」タブで、「Create Reconciliation Profile」をクリックします。これにより、リソース・オブジェクトに行われた変更がMDSにコピーされます。

    4. 「Save」アイコンをクリックします。

  6. リコンシリエーション属性マッピングの参照定義に、次のようにして属性のエントリを追加します。

    1. 「管理」を開き、「参照定義」をダブルクリックします。

    2. Lookup.RESOURCE.UM.ReconAttrMap参照定義を検索して開きます。

    3. 行を追加するには、「追加」をクリックします。

    4. 「Code Key」列に、リソース・オブジェクトの属性に対して設定した名前を入力します。たとえば、Buildingです。

    5. デコード列に、ターゲット・システム列の対応する名前を入力します。たとえば、BUILDINGです。

    6. 「Save」アイコンをクリックします。

5.2 ターゲット・リソースのリコンシリエーション用のカスタム・フィールドの追加

ターゲット・リソースのリコンシリエーション用のカスタム・フィールドを追加できます。

「Generic Scriptingコネクタの生成」で説明されている手順を実行してコネクタを生成しているときに、aliasエントリの値を指定することによりOIMユーザー・フィールドと対応するターゲット・システム・フィールドの間のマッピングを作成します。コネクタの生成後に、ターゲット・リソースのリコンシリエーション中に使用する追加のターゲット・システム・フィールドがある場合は、カスタムまたはユーザー定義フィールド(UDF)を作成して、一連のフィールドを拡張できます。カスタム・フィールド作成の詳細は、『Oracle Fusion Middleware Oracle Identity Managerの管理』のカスタム属性の作成に関する項を参照してください。

リコンシリエーション用にカスタム・フィールドを追加するには、次のようにします。

  1. Design Consoleにログインします。

  2. リソース・オブジェクト定義で、属性に対応するリコンシリエーション・フィールドを次のように追加します。

    1. 「リソース管理」フォルダを開き、「リソース・オブジェクト」をダブルクリックします。

    2. ターゲット・システムに対応するリソース・オブジェクトを検索して開きます。

    3. 「Object Reconciliation」タブで、「ADD Field」をクリックして、「Add Reconciliation Field」ダイアログ・ボックスを開きます。

    4. フィールド名となる値を指定します。たとえば、Buildingです。

    5. 「フィールド・タイプ」リストから、フィールドのデータ型を選択します。また、属性を必須属性として指定する場合は、そのためのチェック・ボックスを選択します。

    6. 「Save」アイコンをクリックしてダイアログ・ボックスを閉じます。

    7. 「Save」アイコンをクリックします。

  3. リコンシリエーション属性マッピングの参照定義に、次のようにして属性のエントリを追加します。

    1. 「管理」を開き、「参照定義」をダブルクリックします。

    2. Lookup.RESOURCE.UM.ReconAttrMap参照定義を検索して開きます。

    3. 行を追加するには、「追加」をクリックします。

    4. 「Code Key」列に、リソース・オブジェクトの属性に対して設定した名前を入力します。たとえば、Buildingです。

    5. デコード列に、ターゲット・システム列の対応する名前を入力します。たとえば、BUILDINGです。

    6. 「Save」アイコンをクリックします。

  4. 次のようにして、プロセス・フォームのフィールドとして属性を追加します。

    1. 「開発ツール」フォルダを開き、「フォーム・デザイナ」をダブルクリックします。

    2. ターゲット・システムに対応するプロセス・フォームを検索して開きます。

    3. 「Create New Version」をクリックして、プロセス・フォームのバージョンを作成します。次に、バージョン名を入力し、「Save」アイコンをクリックします。

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

    5. 新しく追加した行で、「名前」、バリアント型、フィールド・ラベルおよび「フィールド・タイプ」列に値を入力します。必要に応じて、その他の列にも値を入力します。

      注意:

      • ターゲット・システムの属性が時間またはタイムスタンプ形式の場合、バリアント型列の値を「文字列」に設定します

      • ターゲット・システムの日付属性を日付エディタとして処理する場合、バリアント型列の値を「日付」に設定しますそれ以外の場合、「文字列」に設定します。

    6. 「Save」アイコンをクリックします。

    7. 「Make Version Active」をクリックして、プロセス・フォームの新しいバージョンをアクティブ化します。

  5. 次のようにして、リコンシリエーション・フィールド・マッピングをプロセス定義に作成します。

    1. 「プロセス管理」フォルダを開き、「プロセス定義」をダブルクリックします。

    2. ターゲット・システムに対応するプロセス定義を検索して開きます。

    3. 「リコンシリエーション・フィールド・マッピング」タブで、「フィールド・マップの追加」をクリックします。

    4. 「リコンシリエーション・フィールド・マッピングの追加」ダイアログ・ボックスの「フィールド名」リストから、リソース・オブジェクトに作成された属性に割り当てた名前を選択します。

    5. 「Process Data Field」をダブルクリックすると、新しいポップアップが表示されます。ポップアップのエントリはプロセス・フォーム・フィールドに対応しています。

    6. ポップアップで、新たに追加された対応するフィールドを選択します。

    7. フィールド・マッピングがプロセス・データを照合するためのキー・フィールドである場合、「key Field for Reconciliation matching」チェック・ボックスを選択します。

    8. 「Save」アイコンをクリックします。

  6. 次のようにリコンシリエーション・プロファイルを作成します。

    1. 「リソース管理」フォルダを開き、「リソース・オブジェクト」をダブルクリックします。

    2. ターゲット・システムに対応するリソース・オブジェクトを検索して開きます。

    3. 「Object Reconciliation」タブで、「Create Reconciliation Profile」をクリックします。これにより、リソース・オブジェクトに行われた変更がMDSにコピーされます。

    4. 「Save」アイコンをクリックします。

  7. 次のように新しいUIフォームで、デザイン・コンソールのフォーム・デザイナに対しすべての変更を行います(ステップ4)。

    1. Oracle Identity System Administrationにログインします。

    2. サンドボックスを作成し、アクティブにします。詳細は、サンドボックスの作成およびアクティブ化を参照してください。

    3. 新たに追加したフィールドと残りのフィールドを表示するために新しいUIフォームを作成します。UIフォームの作成の詳細は、UIフォームの新規作成を参照してください。

    4. 新たに作成したUIフォームをターゲット・システムのアプリケーション・インスタンスに関連付けます。そのためには、リソースに対する既存のアプリケーション・インスタンスを開いて、「フォーム」フィールドからフォーム(ステップ7.cで作成済)を選択し、アプリケーション・インスタンスを保存します。

    5. サンドボックスを公開します。詳細は、サンドボックスの公開を参照してください。

  8. プロビジョニングのために属性を追加します。この手順の詳細は、プロビジョニング用のカスタム・フィールドの追加を参照してください。

5.3 プロビジョニング用のカスタム・フィールドの追加

プロビジョニングのために新しいカスタム・フィールドを追加できます。

「Generic Scriptingコネクタの生成」で説明されている手順を実行してコネクタを生成しているときに、aliasエントリの値を指定することによりOIMユーザー・フィールドと対応するターゲット・システム・フィールド(列)の間のマッピングを作成します。プロビジョニング中に使用する必要のある追加のターゲット・システム・フィールドがある場合は、カスタムまたはユーザー定義フィールド(UDF)を作成して、一連の既存のフィールドを拡張できます。カスタム・フィールド作成の詳細は、『Oracle Fusion Middleware Oracle Identity Managerの管理』の「カスタム属性の構成」を参照してください。

プロビジョニング用に新しいユーザー定義フィールドを追加するには、次のようにします。

  1. 次のようにして、プロセス・フォームのフィールドとして属性を追加します。

    注意:

    ターゲット・リソースのリコンシリエーション用のカスタム・フィールドの追加で説明した手順を実行している間にプロセス・フォームにすでにフィールドを追加している場合は、次のステップに直接進みます。

    1. 「開発ツール」を開き、「フォーム・デザイナ」をダブルクリックします。

    2. ターゲット・システムに対応するプロセス・フォームを検索して開きます。

    3. 「Create New Version」をクリックして、フォームのバージョンを作成します。次に、バージョン名を入力し、「Save」アイコンをクリックします。

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

    5. 新しく追加した行で、「名前」、バリアント型、フィールド・ラベルおよび「フィールド・タイプ」列に値を入力します。必要に応じて、その他の列にも値を入力します。

      注意:

      • ターゲット・システムの属性が時間またはタイムスタンプ形式の場合、バリアント型列の値を「文字列」に設定します

      • ターゲット・システムの日付属性を日付エディタとして処理する場合、バリアント型列の値を「日付」に設定しますそれ以外の場合、「文字列」に設定します。

    6. 「Save」アイコンをクリックします。

    7. 「Make Version Active」をクリックして、プロセス・フォームの新しいバージョンをアクティブ化します。

  2. デザイン・コンソールのフォーム・デザイナに対するすべての変更(ステップ1)を、次のように新しいUIフォームで実行します。

    1. Oracle Identity System Administrationにログインします。

    2. サンドボックスを作成し、アクティブにします。詳細は、サンドボックスの作成およびアクティブ化を参照してください。

    3. 新たに追加したフィールドと残りのフィールドを表示するために新しいUIフォームを作成します。UIフォームの作成の詳細は、UIフォームの新規作成を参照してください。

    4. 新たに作成したUIフォームをターゲット・システムのアプリケーション・インスタンスに関連付けます。そのためには、リソースに対する既存のアプリケーション・インスタンスを開いて、「フォーム」フィールドからフォーム(ステップ2.cで作成済)を選択し、アプリケーション・インスタンスを保存します。

    5. サンドボックスを公開します。詳細は、サンドボックスの公開を参照してください。

  3. プロビジョニング属性マッピングの参照定義に、次のようにしてエントリを追加します。

    1. 「Administration」を開き、「Lookup Definition」をダブルクリックします。

    2. Lookup.RESOURCE.UM.ProvAttrMap参照定義を検索して開きます。

    3. 行を追加するには、「追加」をクリックします。

    4. コード・キー列に、プロセス・フォームの属性に対するフィールド・ラベルを入力します。このフィールド名は、ステップ1を参照してください。

    5. デコード列に、ターゲット・システム列の対応する名前を入力します。たとえば、BUILDINGです。

    6. 「Save」アイコンをクリックします。

  4. 属性の更新を有効にするには、次のようにしてプロセス定義に更新プロセス・タスクを追加します。

    1. 「プロセス管理」を開いて、「プロセス定義」をダブルクリックします。

    2. ターゲット・システムに対応するプロセス定義を検索して開きます。

    3. 「タスク」タブで、「追加」をクリックします。

    4. 表示されたダイアログ・ボックスの「一般」タブで、タスクの名前と説明を入力した後、「条件付き」「完了に必須」「保留中の取消しを許可」および「複数のインスタンスを許可」をタスク・プロパティ・セクションから選択します。

      注意:

      名前はPROCESS_FORM_FIELD_NAME Updatedの書式で指定する必要があります。

    5. 「Save」アイコンをクリックします。

    6. 「統合」タブで、アカウントの更新プロビジョニング操作の実行に対応するアダプタをアタッチし、次の表に示すアダプタ変数をマップします。

      変数名 データ型 マップ先 修飾子 リテラル値

      processKeyInstance

      Long

      Process Data

      Process Instance

      該当なし

      Adapter return value

      Object

      Response Code

      該当なし

      該当なし

      objectType

      String

      Literal

      String

      User

      attrFieldName

      String

      Literal

      String

      Building

      itResourceFieldName

      String

      Literal

      String

      ITリソースのフォーム・フィールド名

    7. 「Save」アイコンをクリックします。

    8. 「Response」タブで、適切なレスポンスを追加します。

    9. 「Save」アイコンをクリックします。

    10. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。

  5. リコンシリエーションのための属性の追加。

    プロセス・フォームに属性を追加するときは、ターゲット・システムでその属性の値のリコンシリエーションを有効にすることも必要です。詳細は、ターゲット・リソースのリコンシリエーション用のカスタム・フィールドの追加を参照してください。

5.4 ユーザー・リコンシリエーション中のデータ変換の構成

要件に応じて、リコンサイルされた単一値データの変換を構成できます。たとえば、「名」および「姓」値を使用して、Oracle Identity Managerの「氏名」フィールドの値を作成できます。

注意:

この項ではオプションの手順を説明します。この手順は、リコンシリエーション時のデータの変換を構成する場合にのみ実行します。

データの変換を構成するには、次の手順を実行します。

  1. 必要な変換ロジックをJavaクラスに実装するコードを記述します。

    次のサンプル変換クラスは、ターゲット・システムの「FIRST_NAME」および「LAST_NAME」列からフェッチした値を使用して、Full Name属性の値を作成します。

    package oracle.iam.connectors.common.transform;
     
    import java.util.HashMap;
     
    public class TransformAttribute {
     
          /*
          Description:Abstract method for transforming the attributes
          
          param hmUserDetails<String,Object> 
     
          HashMap containing parent data details
     
          param hmEntitlementDetails <String,Object> 
     
          HashMap containing child data details 
          
          */
          public Object transform(HashMap hmUserDetails, HashMap hmEntitlementDetails,String sField) {
          /*
           * You must write code to transform the attributes.
           Parent data attribute values can be fetched by 
           using hmUserDetails.get("Field Name").
           *To fetch child data values, loop through the
           * ArrayList/Vector fetched by hmEntitlementDetails.get("Child          Table")
           * Return the transformed attribute.
           */
          String sFirstName= (String)hmUserDetails.get("First Name");
          String sLastName= (String)hmUserDetails.get("Last Name");
          String sFullName=sFirstName+"."+sLastName;
          return sFullName;
          }
    }
    
  2. Javaクラスを保持するJARファイルを作成します。

  3. Oracle Identity Manager JARアップロード・ユーティリティを実行して、JARファイルをOracle Identity Managerデータベースに投稿します。このユーティリティは、Oracle Identity Managerのインストール時に次の場所にコピーされます。

    注意:

    このユーティリティを使用する前に、Oracle WebLogic ServerをインストールしたディレクトリにWL_HOME環境変数が設定されていることを確認してください。

    • Microsoft Windowsの場合:

      OIM_HOME/server/bin/UploadJars.bat

    • UNIXの場合:

      OIM_HOME/server/bin/UploadJars.sh

    ユーティリティを実行すると、Oracle Identity Manager管理者のログイン資格証明、Oracle Identity Managerホスト・コンピュータのURL、コンテキスト・ファクトリ値、アップロードするJARファイルのタイプおよびJARファイルがアップロードされる場所の入力を求めるプロンプトが表示されます。JARタイプの値として1を指定します。

  4. 次のように変換用の参照定義を作成し、それにエントリを追加します。

    1. Design Consoleにログインします。

    2. 「Administration」を開き、「Lookup Definition」をダブルクリックします。

    3. 「コード」フィールドに、参照定義の名前としてLookup.RESOURCE.UM.ReconTransformationを入力します。

    4. 「Lookup Type」オプションを選択します。

    5. 「Lookup Code Information」タブで「Add」をクリックします。

      新しい行が追加されます。

    6. コード・キー列に、変換済の値を格納するリソース・オブジェクト・フィールド名を入力します。たとえば、FirstNameです。

    7. デコード列に、変換ロジックを実装するクラスの名前を入力します。たとえば、oracle.iam.connectors.common.transform.TransformAttributeです。

    8. 参照定義に変更を保存します。

  5. 次のように、Lookup.RESOURCE.UM.Configuration参照定義にエントリを追加して、変換を有効にします。

    1. 「Administration」を開き、「Lookup Definition」をダブルクリックします。

    2. Lookup.RESOURCE.UM.Configuration参照定義を検索して開きます。

    3. 次のように、変換に使用する参照定義の名前を保持するエントリを作成します。

      コード・キー: Recon Transformation Lookup

      デコード: Lookup.RESOURCE.UM.ReconTransformation

    4. 参照定義に変更を保存します。

5.5 リコンシリエーションおよびプロビジョニング中のデータ検証の構成

要件に応じて、リコンサイルおよびプロビジョニングされた単一値データの検証を構成できます。

たとえば、「FIRST_NAME」列からフェッチしたデータを検証して、そのデータに番号記号(#)が含まれていないことを確認します。また、プロセス・フォームの「名」フィールドに入力したデータを検証して、プロビジョニング操作中にターゲット・システムに番号記号(#)が送信されないようにします。

検証チェックで合格しないデータについては、次のメッセージが表示されるか、ログ・ファイルに記録されます。

oracle.iam.connectors.icfcommon.recon.SearchReconTask : handle : Recon event skipped, validation failed [Validation failed for attribute: [FIELD_NAME]]

注意:

この機能は、ターゲット・システムのロック/ロック解除ステータス属性には適用できません。

データの検証を構成するには:

  1. 必要な検証ロジックをJavaクラスに実装するコードを記述します。

    次のサンプル検証クラスは、「名」属性の値に番号記号(#)が含まれるかどうかを確認します。

    package com.validate;
    import java.util.*;
    public class MyValidation {
    public boolean validate(HashMap hmUserDetails,
                  HashMap hmEntitlementDetails, String field) {
                /*
             * You must write code to validate attributes. Parent
             * data values can be fetched by using hmUserDetails.get(field)
             * For child data values, loop through the
             * ArrayList/Vector fetched by hmEntitlementDetails.get("Child Table")
             * Depending on the outcome of the validation operation, 
             * the code must return true or false.
             */
             /*
             * In this sample code, the value "false" is returned if the field
             * contains the number sign (#). Otherwise, the value "true" is
             * returned.
             */
                boolean valid=true;
                String sFirstName=(String) hmUserDetails.get(field);
                for(int i=0;i<sFirstName.length();i++){
                  if (sFirstName.charAt(i) == '#'){
                        valid=false; 
                        break;
                  } 
                }
                return valid;
          }
    }
    
  2. Javaクラスを保持するJARファイルを作成します。

  3. Oracle Identity Manager JARアップロード・ユーティリティを実行して、JARファイルをOracle Identity Managerデータベースに投稿します。このユーティリティは、Oracle Identity Managerのインストール時に次の場所にコピーされます。

    注意:

    このユーティリティを使用する前に、Oracle WebLogic ServerをインストールしたディレクトリにWL_HOME環境変数が設定されていることを確認してください。

    • Microsoft Windowsの場合:

      OIM_HOME/server/bin/UploadJars.bat

    • UNIXの場合:

      OIM_HOME/server/bin/UploadJars.sh

    ユーティリティを実行すると、Oracle Identity Manager管理者のログイン資格証明、Oracle Identity Managerホスト・コンピュータのURL、コンテキスト・ファクトリ値、アップロードするJARファイルのタイプおよびJARファイルがアップロードされる場所の入力を求めるプロンプトが表示されます。JARタイプの値として1を指定します。

  4. リコンシリエーションのプロセス・フォーム・フィールドを検証するJavaクラスを作成した場合は、次の手順を実行します。

    1. Design Consoleにログインします。

    2. 「Administration」を開き、「Lookup Definition」をダブルクリックします。

    3. 「コード」フィールドに、参照定義の名前としてLookup.RESOURCE.UM.ReconValidationを入力します。

    4. 「Lookup Type」オプションを選択します。

    5. 「Lookup Code Information」タブで「Add」をクリックします。

      新しい行が追加されます。

    6. コード・キー列に、リソース・オブジェクト・フィールド名を入力します。たとえば、First Nameです。

    7. デコード列に、クラス名を入力します。たとえば、com.validate.MyValidationです。

    8. 参照定義に変更を保存します。

    9. Lookup.RESOURCE.UM.Configuration参照定義を検索して開きます。

    10. 次の値を使用してエントリを作成します。

      コード・キー: Recon Validation Lookup

      デコード: Lookup.RESOURCE.UM.ReconValidation

    11. 参照定義に変更を保存します。

  5. プロビジョニングのプロセス・フォーム・フィールドを検証するJavaクラスを作成した場合は、次の手順を実行します。

    1. Design Consoleにログインします。

    2. 「Administration」を開き、「Lookup Definition」をダブルクリックします。

    3. 「コード」フィールドに、参照定義の名前としてLookup.RESOURCE.UM.ProvValidationを入力します。

    4. 「Lookup Type」オプションを選択します。

    5. 「Lookup Code Information」タブで「Add」をクリックします。

      新しい行が追加されます。

    6. 「Code Key」列に、プロセス・フォーム・フィールド名を入力します。デコード列で、クラス名を入力します。

    7. 参照定義に変更を保存します。

    8. Lookup.RESOURCE.UM.Configuration参照定義を検索して開きます。

    9. 次の値を使用してエントリを作成します。

      コード・キー: Provisioning Validation Lookup

      デコード: Lookup.RESOURCE.UM.ProvValidation

    10. 参照定義に変更を保存します。