プライマリ・コンテンツに移動
Oracle® Identity Manager Oracle CRM On Demandコネクタ・ガイド
リリース11.1.1
E91912-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

4 コネクタの機能拡張

コネクタをデプロイしたら、要件に合せて構成する必要があります。この章では、次のコネクタ構成手順を説明します。


注意:

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

4.1 ターゲット・リソースのリコンシリエーション用のカスタム属性の追加


注意:

この項では、属性という用語はユーザー・データを格納するIDデータ・フィールドを指します。

カスタム属性を追加するには、該当の属性がターゲット・システムに存在することを確認する必要があります。存在しない場合は、まずターゲット・システムにカスタム属性を追加してください。ターゲット・システムでカスタム属性を追加する方法の詳細は、管理者にお問い合せください。


デフォルトでは1.5項「ターゲット・リソースのリコンシリエーションおよびプロビジョニング用のユーザー属性」で示した属性が、Oracle Identity Managerとターゲット・システム間のリコンシリエーション用にマップされます。必要な場合は、カスタム属性またはそのまま(OOTB)では使用できないその他のユーザー属性をリコンサイルするようコネクタを構成することもできます。たとえば、Legal Entityがターゲット・システムのユーザー・プロファイルに追加されたカスタム属性だとすると、次の手順を実行して、この属性をリコンサイルするようにコネクタを構成できます。


関連項目:

この手順のステップを実行する方法の詳細は、Oracle Fusion Middleware Oracle Identity Manager開発者ガイドを参照してください。

  1. カスタム属性Legal Entityについて、ユーザー汎用WSDLで対応する属性名を決定します。

    FieldManagementRead Admin Web Service APIを呼び出し、Legal Entityユーザー属性の汎用統合タグの値を取得することができます。

    たとえば、汎用統合タグ = CustomText2です。

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

  3. 次のようにして、新しいバージョンのプロセス・フォームを作成します。

    1. 「開発ツール」を開きます。

    2. 「フォーム・デザイナ」をダブルクリックします。

    3. UD_CRMOD_Uプロセス・フォームを検索し、開きます。

    4. 「新しいバージョンの作成」をクリックします。

      新規バージョンの作成ダイアログ・ボックスで、「ラベル」フィールドに新しいバージョンを入力し、保存アイコンをクリックします。

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

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

      リストにフィールドが追加されます。フィールドの詳細を入力します。

      たとえば、Legal Entityフィールドを追加する場合は、「Name」フィールドにUD_CRMOD_U_LEGALENTITYと入力し、このフィールドの他の詳細にも入力します。

      ブール属性を追加するには、「フィールド・タイプ」リストからComboBoxを選択し、バリアント型として「文字列」を選択します。

      ブール属性を追加する場合は、新しい参照定義、たとえばLookup.CRMOD.AttributeNameを作成します。次に、次のエントリを参照定義に追加します。

      コード・キー デコード
      Y Y
      N N

      UD_CRMOD_Uプロセス・フォームを開き、「プロパティ」をクリックします。新しく追加したプロパティを選択し、「プロパティの追加」をクリックします。「参照コード」として「プロパティ名」を選択し、新しく作成した参照Lookup.CRMOD.AttributeNameをプロパティ値として入力します。

    2. 保存アイコンをクリックします。

    3. 新規作成したフォームをアクティブ化するには、バージョンのアクティブ化をクリックします。

      図4-1はプロセス・フォームの新規バージョンのサンプルのスクリーンショットです。

      図4-1 プロセス・フォームの新しいバージョンの追加

      図4-1の説明が続きます
      「図4-1 プロセス・フォームの新規バージョンの追加」の説明

  5. リソース・オブジェクトのリコンシリエーション・フィールドのリストに、次のようにして、新しいフィールドを追加します。

    1. 「リソース管理」を開きます。

    2. 「リソース・オブジェクト」をダブルクリックします。

    3. CRM On Demandリソース・オブジェクトを検索して開きます。

    4. 「Object Reconciliation」タブで、「Add Field」をクリックします。

    5. 「Add Reconciliation Field」ダイアログ・ボックスで、このフィールドの詳細を入力します。

      たとえば、「フィールド名」フィールドに「Legal Entity」を入力し、「フィールド・タイプ」リストから「文字列」を選択します。

    6. 保存アイコンをクリックします。

    7. 「リソース・オブジェクト」フォームでリコンシリエーション・プロファイルの作成をクリックし、新しく追加したリコンシリエーション・フィールドを含むリコンシリエーション・プロファイルを作成します。

      図4-2は新たに追加されたリコンシリエーション・フィールドのサンプルのスクリーンショットです。

      図4-2 新規リコンシリエーション・フィールドの追加

      図4-2の説明が続きます
      「図4-2 新規リコンシリエーション・フィールドの追加」の説明

  6. リコンシリエーションの参照定義で、次のようにして、フィールドのエントリを作成します。

    1. 「管理」を開きます。

    2. 「参照定義」をダブルクリックします。

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

    4. 「Add」をクリックし、フィールドのコード・キー値とデコード値を入力します。

      コード・キー値は、「リコンシリエーション・フィールド」ラベル名にする必要があります。デコードの値は、ユーザー汎用WSDLの属性の名前にする必要があります。

      たとえば、コード・キー・フィールドにLegal Entityと入力し、デコード・フィールドにCustomText2と入力します。

    5. 保存アイコンをクリックします。

      図4-3はリコンシリエーション参照定義に新たに追加されたエントリのサンプルのスクリーンショットです。

      図4-3 リコンシリエーション参照へのエントリの追加

      図4-3の説明が続きます
      「図4-3 リコンシリエーション参照へのエントリの追加」の説明

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

    1. 「プロセス管理」を開きます。

    2. 「プロセス定義」をダブルクリックします。

    3. 「プロセス定義」表から、「CRM On Demand」リソース・オブジェクトを選択して開きます。

    4. 「Reconciliation Field Mappings」「Add Field Map」をクリックします。

    5. 「Field Name」フィールドで、追加するフィールドの値を選択します。

      たとえば、Legal Entityを選択します。

    6. 「Field Type」フィールドで、事前移入されているフィールドのタイプを選択します。

    7. 「プロセス・データ・フィールド」フィールドをダブルクリックします。

      プロセス・データ列のリストが表示されます。リストから、プロセス・データ・フィールドに対応するプロセス・データ列を選択します。

      たとえば、Legal Entity [String] = UD_CRMOD_U_LEGALENTITYを選択します。

    8. 保存アイコンをクリックします。

  8. Oracle Identity Managerリリース11.1.2.x以降を使用している場合は、新しいUIフォームを作成してこれをアプリケーション・インスタンスに添付し、この新しい属性を表示します。手順については、第2.3.1.2項「新規UIフォームの作成」および第2.3.1.6項「新規フォームによる既存アプリケーション・インスタンスの更新」を参照してください。

4.2 プロビジョニング用のカスタム属性の追加


注意:

この項では、属性という用語はユーザー・データを格納するIDデータ・フィールドを指します。

カスタム属性を追加するには、該当の属性がターゲット・システムに存在することを確認する必要があります。存在しない場合は、まずターゲット・システムにカスタム属性を追加してください。ターゲット・システムでカスタム属性を追加する方法の詳細は、管理者にお問い合せください。


デフォルトでは1.5項「ターゲット・リソースのリコンシリエーションおよびプロビジョニング用のユーザー属性」で示した属性が、Oracle Identity Managerとターゲット・システム間のプロビジョニング用にマップされます。必要な場合は、カスタム属性またはそのまま(OOTB)では使用できないその他のユーザー属性を追加後にプロビジョニング用にコネクタを構成することもできます。たとえば、Legal Entityがターゲット・システムのユーザー・プロファイルに追加されたカスタム属性だとすると、次の手順を実行して、この属性をプロビジョニングするようにコネクタを構成できます。


関連項目:

この手順のステップを実行する方法の詳細は、Oracle Fusion Middleware Oracle Identity Manager開発者ガイドを参照してください。

  1. カスタム属性Legal Entityについて、ユーザー汎用WSDLで対応する属性名を決定します。

    FieldManagementRead Admin Web Service APIを呼び出し、Legal Entityユーザー属性の汎用統合タグの値を取得することができます。

    たとえば、汎用統合タグ = CustomText2です。

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

  3. 次のようにして、新しいバージョンのプロセス・フォームを作成します。

    1. 「開発ツール」を開きます。

    2. 「フォーム・デザイナ」をダブルクリックします。

    3. UD_CRMOD_Uプロセス・フォームを検索し、開きます。

    4. 「新しいバージョンの作成」をクリックします。

      新規バージョンの作成ダイアログ・ボックスで、「ラベル」フィールドに新しいバージョンを入力し、保存アイコンをクリックします。

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

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

      リストにフィールドが追加されます。フィールドの詳細を入力します。

      たとえば、Legal Entityフィールドを追加する場合は、「Name」フィールドにUD_CRMOD_U_LEGALENTITYと入力し、「ラベル名」フィールドにLegal Entityと入力して、このフィールドの他の詳細にも入力します。

      ブール属性を追加する場合は、「フィールド・タイプ」リストからComboBoxを選択し、バリアント型として「文字列」を選択します。

      次に、新しい参照定義、たとえばLookup.CRMOD.AttributeNameを作成します。次に、次のエントリを参照定義に追加します。

      コード・キー デコード
      Y Y
      N N

      UD_CRMOD_Uプロセス・フォームを開き、「プロパティ」をクリックします。新しく追加したプロパティを選択し、「プロパティの追加」をクリックします。「参照コード」として「プロパティ名」を選択し、新しく作成した参照Lookup.CRMOD.AttributeNameをプロパティ値として入力します。

    2. 保存アイコンをクリックします。

    3. 新規作成したフォームをアクティブ化するには、バージョンのアクティブ化をクリックします。

      図4-4はプロセス・フォームの新規バージョンのサンプルのスクリーンショットです。

      図4-4 プロセス・フォームの新しいバージョンの追加

      図4-4の説明が続きます
      「図4-4 プロセス・フォームの新規バージョンの追加」の説明

  5. プロビジョニングの参照定義で、次のようにして、フィールドのエントリを作成します。

    1. 「管理」を開きます。

    2. 「参照定義」をダブルクリックします。

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

    4. 「Add」をクリックし、フィールドのコード・キー値とデコード値を入力します。

      コード・キー値は、フォーム・フィールド・ラベル名にする必要があります。デコードの値は、ユーザー汎用WSDLの属性名にする必要があります。

      たとえば、コード・キー・フィールドにLegal Entityと入力し、デコード・フィールドにCustomText2と入力します。

    5. 保存アイコンをクリックします。

      図4-5はプロビジョニング参照定義に新たに追加されたエントリのサンプルのスクリーンショットです。

      図4-5 プロビジョニング参照へのエントリの追加

      図4-5の説明が続きます
      「図4-5 プロビジョニング参照へのエントリの追加」の説明

  6. Oracle Identity Managerリリース11.1.2.x以降を使用している場合は、新しいUIフォームを作成してこれをアプリケーション・インスタンスに添付し、この新しい属性を表示します。手順については、第2.3.1.2項「新規UIフォームの作成」および第2.3.1.6項「新規フォームによる既存アプリケーション・インスタンスの更新」を参照してください。

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

Lookup.CRMOD.UM.ProvValidationsおよびLookup.CRMOD.UM.ReconValidations参照定義は、それぞれ、プロビジョニングおよびリコンシリエーション操作中に検証される単一値データを保持します。

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


注意:

Lookup.CRMOD.UM.ProvValidationsおよびLookup.CRMOD.UM.ReconValidations参照定義はオプションで、デフォルトでは存在しません。

これらの参照をデコード値としてLookup.CRMOD.UM.Configuration参照定義に追加して、プロビジョニングおよびリコンシリエーション操作中に除外を有効にする必要があります。詳細は、第2.3.5項「ユーザー操作用の参照定義の設定」を参照してください。


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

  1. org.identityconnectors.crmod.extension.CRMODValidatorなどの完全修飾ドメイン名(FQDN)を持つJavaクラスで必須の検証ロジックを実装するコードを記述します。

    この検証クラスには、検証メソッドを実装する必要があります。次のサンプル検証クラスは、「名」属性の値に番号記号(#)が含まれるかどうかを確認します。

    package com.validationexample;
    
    import java.util.HashMap;
     
    public class MyValidator {
        public boolean validate(HashMap hmUserDetails, HashMap hmEntitlementDetails, String sField) throws ConnectorException {
     
            /* 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(sField);
            for (int i = 0; i < sFirstName.length(); i++) {
                if (sFirstName.charAt(i) == '#') {
                    valid = false;
                    break;
                }
            }
            return valid;
     
        }
    }
    
  2. Design Consoleにログインします。

  3. 次のいずれかの新しい参照定義を作成します。

    • リコンシリエーション用のデータの検証を構成するには:

      Lookup.CRMOD.UM.ReconValidations

    • プロビジョニング用のデータの検証を構成するには:

      Lookup.CRMOD.UM.ProvValidations

  4. コード・キー列で、検証するリソース・オブジェクト・フィールド名を入力します。たとえば、Aliasです。

  5. デコード列で、クラス名を入力します。たとえば、org.identityconnectors.crmod.extension.CRMODValidatorです。

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

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

  8. コード・キー列で、次のエントリのいずれかを入力します。

    • リコンシリエーション用のデータの検証を構成するには:

      Recon Validation Lookup

    • プロビジョニング用のデータの検証を構成するには:

      Provisioning Validation Lookup

  9. 「Decode」列で、次のエントリのいずれかを入力します。

    • リコンシリエーション用のデータの検証を構成するには:

      Lookup.CRMOD.UM.ReconValidations

    • プロビジョニング用のデータの検証を構成するには:

      Lookup.CRMOD.UM.ProvValidations

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

  11. クラスを使用してJARを作成し、次のようにOracle Identity Managerデータベースにアップロードします。

    Oracle Identity Manager JARアップロード・ユーティリティを実行して、手順7で作成した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を選択します。


    関連項目:

    JARアップロード・ユーティリティの詳細は、Oracle Fusion Middleware Oracle Identity Manager開発者ガイドを参照してください。

  12. PurgeCacheユーティリティを実行して、サーバー・キャッシュからのデータセットのリクエストに関連するコンテンツをクリアします。

  13. リコンシリエーションまたはプロビジョニングを実行して、Aliasなどのフィールドの検証を確認します。

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

Lookup.CRMOD.UM.ReconTransformations参照定義は、リコンシリエーション操作中に変換される単一値のユーザー・データを保持します。たとえば、「名」および「姓」値を使用して、Oracle Identity Managerの「氏名」フィールドの値を作成できます。


注意:

Lookup.CRMOD.UM.ReconTransformations参照定義は、オプションでデフォルトでは存在しません。

この参照をデコード値としてLookup.CRMOD.UM.Configuration参照定義に追加して、プロビジョニングおよびリコンシリエーション操作中に除外を有効にする必要があります。詳細は、第2.3.5項「ユーザー操作用の参照定義の設定」を参照してください。


リコンシリエーション中にフェッチした単一値のユーザー・データの変換を構成するには:

  1. org.identityconnectors.crmod.extension.CRMODTransformationなどの完全修飾ドメイン名(FQDN)を持つJavaクラスで必須の変換ロジックを実装するコードを記述します。

    この変換クラスは、変換メソッドを実装する必要があります。次のサンプル変換クラスは、ターゲット・システムの「名」および「姓」属性からフェッチした値を使用して、「氏名」属性の値を作成します。

    package com.transformationexample;
    
    import java.util.HashMap;
     
     
    public class MyTransformer {
        public Object transform(HashMap hmUserDetails, HashMap hmEntitlementDetails, String sField) throws ConnectorException {
            /*
            * 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");
            return sFirstName + "." + sLastName;
     
        }
    }
    
  2. Design Consoleにログインします。

  3. 新しい参照定義Lookup.CRMOD.UM.ReconTransformationsを作成します。

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

  5. デコード列で、クラス名を入力します。たとえば、org.identityconnectors.crmod.extension.CRMODTransformationです。

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

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

  8. コード・キー列に、リコンシリエーション変換参照を入力します。

  9. デコード列に、Lookup.CRMOD.UM.ReconTransformationsと入力します。

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

  11. クラスを使用してJARを作成し、次のようにOracle Identity Managerデータベースにアップロードします。

    Oracle Identity Manager JARアップロード・ユーティリティを実行して、手順7で作成した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を選択します。


    関連項目:

    JARアップロード・ユーティリティの詳細は、Oracle Fusion Middleware Oracle Identity Manager開発者ガイドを参照してください。

  12. PurgeCacheユーティリティを実行して、サーバー・キャッシュからのデータセットのリクエストに関連するコンテンツをクリアします。

  13. リコンシリエーションを実行して、Aliasなどのフィールドの変換を検証します。

4.5 リソース除外リストの構成

Lookup.CRMOD.UM.ProvExclusionListおよびLookup.CRMOD.UM.ReconExclusionList参照定義は、それぞれ、プロビジョニングおよびリコンシリエーション操作を実行しないターゲット・システム・アカウントのユーザーIDを保持します。


注意:

Lookup.CRMOD.UM.ProvExclusionListおよびLookup.CRMOD.UM.ReconExclusionList参照定義はオプションで、デフォルトでは存在しません。

これらの参照をデコード値としてLookup.CRMOD.UM.Configuration参照定義に追加して、プロビジョニングおよびリコンシリエーション操作中に除外を有効にする必要があります。詳細は、第2.3.5項「ユーザー操作用の参照定義の設定」を参照してください。


これらの参照に格納されている値の形式は次のとおりです。

コード・キー デコード サンプル値
ユーザー・ログインIDリソース・オブジェクト・フィールド名 ユーザーのUser ID コード・キー: ユーザー・ログインID

デコード: User001

[PATTERN]接尾辞を持つユーザー・ログインIDリソース・オブジェクト・フィールド名 java.util.regex.Patternクラスの表現によってサポートされる正規表現 コード・キー: ユーザー・ログインID[PATTERN]

ユーザーID User001、User002、User088のいずれかに一致するユーザーを除外するには:

デコード: User001|User002|User088

ユーザーIDが00012で始まるユーザーを除外するには:

デコード: 00012*

関連項目: サポートされるパターンの詳細は、http://download.oracle.com/javase/6/docs/api/java/util/regex/Pattern.htmlを参照してください。


プロビジョニング操作中に除外する参照にエントリを追加するには:

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

  2. 新しい参照定義Lookup.CRMOD.UM.ProvExclusionListを作成します。


    注意:

    リコンシリエーション操作中に除外するユーザーIDを指定するには、Lookup.CRMOD.UM.ReconExclusionListという新しい参照定義を作成して、その参照にエントリを追加します。

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

  4. コード・キーおよびデコード列に、除外する1つ目のユーザーIDを入力します。


    注意:

    コード・キーはプロビジョニング操作中に適用される除外リストのリソース・オブジェクト・フィールド名を表します。

  5. 除外する残りのユーザーIDに手順3および4を繰り返します。

    たとえば、ユーザーIDがUser001、User002およびUser088のユーザーをプロビジョニングしない場合、参照定義に次の値を移入します。

    コード・キー デコード
    ユーザー・ログインID User001
    ユーザー・ログインID User002
    ユーザー・ログインID User088

    また、パターン一致を実行して、ユーザー・アカウントを除外することもできます。java.util.regex.Patternクラスの表現によってサポートされる正規表現を指定できます。


    関連項目:

    サポートされるパターンの詳細は、http://download.oracle.com/javase/6/docs/api/java/util/regex/Pattern.htmlを参照してください。

    たとえば、ユーザーIDがUser001、User002およびUser088に一致するユーザーをプロビジョニングしない場合、参照定義に次の値を移入します。

    コード・キー デコード
    ユーザー・ログインID[PATTERN] User001|User002|User088

    ユーザーIDが00012から始まるユーザーをプロビジョニングしない場合は、次の値で参照定義を移入します。

    コード・キー デコード
    ユーザー・ログインID[PATTERN] 00012*

  6. 保存アイコンをクリックします。