プライマリ・コンテンツに移動
Oracle® Identity Manager Salesforceコネクタ・ガイド
リリース11.1.1
E79638-05
目次へ移動
目次

前
次

4 Salesforceコネクタの機能拡張

特定のビジネス要件に対応するようにコネクタの機能を拡張できます。

この章では、以下のトピックについて説明します。

ノート:

Oracle Identity Managerリリース11.1.2以降では、参照問合せはサポートされません。Oracle Identity System Administrationでフォーム・デザイナを使用して参照を管理する方法の詳細は、『Oracle Fusion Middleware Oracle Identity Managerの管理』の参照の管理に関する項を参照してください。

4.1 リコンシリエーションのための新規ユーザーまたはグループ属性の追加

コネクタでは、Oracle Identity Managerとターゲット・システム間のリコンシリエーション用に属性マッピングのデフォルト・セットが提供されています。必要な場合には、リコンシリエーション用に新規ユーザーまたはグループ属性を追加できます。

4.1.1 プロセス・フォームへの新規属性の追加

Oracle Identity Manager Design Consoleの「フォーム・デザイナ」セクションで、プロセス・フォームの新規属性を追加します。

  1. Oracle Identity Manager Design Consoleにログインします。
  2. 次のようにして、属性をプロセス・フォームに追加します。
    1. 「開発ツール」,を開き、「フォーム・デザイナ」をダブルクリックします
    2. 次のプロセス・フォームのうち1つを検索して開きます。
      • ユーザーの場合: UD_SF_USR

      • グループの場合: UD_SF_GRP

    3. 「Create New Version」をクリックし、「Add」をクリックします。
    4. フィールドの詳細を入力します。
      たとえば、ALIASフィールドを追加している場合は、「名前」フィールドにUD_SF_USR_ALIASを入力し、続いて他の詳細(変数の型、長さ、フィールド・ラベル、フィールド・タイプなど)を入力します。
    5. 保存アイコンをクリックし、「バージョンのアクティブ化」をクリックします 次のスクリーンショットは、プロセス・フォームに追加された新規フィールドを示しています。

      図4-1 フォーム・デザイナ

      図4-1の説明が続きます
      「図4-1 フォーム・デザイナ」の説明

4.1.2 リコンシリエーション・フィールドへの属性の追加

Oracle Identity Manager Design Consoleの「リソース・オブジェクト」セクションで、リコンシリエーション・フィールドのリソース・オブジェクトのリストに新規属性を追加できます。

  1. 「Resource Management」を展開し、「Resource Objects」をダブルクリックします。
  2. 次のリソース・オブジェクトのうち1つを検索して開きます。
    • ユーザーの場合: Salesforce User
    • グループの場合: Salesforce Groups
  3. 「Object Reconciliation」タブで、「Add field」をクリックします。
  4. フィールドの詳細を入力します。
    たとえば、「フィールド名」フィールドにALIASと入力し、「フィールド・タイプ」リストから「文字列」を選択します。
  5. 「保存」アイコンをクリックします。次のスクリーンショットは、リソース・オブジェクトに追加された新しいリコンシリエーション・フィールドを示しています。

    図4-2 オブジェクト・リコンシリエーション・タブ

    図4-2の説明が続きます
    「図4-2 オブジェクト・リコンシリエーション・タブ」の説明

4.1.3 リコンシリエーション・フィールド・マッピングの作成

新しい属性用のリコンシリエーション・フィールド・マッピングをOracle Identity Manager Design Consoleの「プロセス定義」セクションに作成します。

  1. 「Process Management」,を開き、「Process Definition」をダブルクリックします
  2. 次のいずれかのプロセス定義を検索して開きます。
    • ユーザーの場合: Salesforce Users
    • グループの場合: Salesforce Groups
  3. Salesforce Userプロセス定義のリコンシリエーション・フィールド・マッピング・タブで、フィールド・マッピングの追加をクリックします。
  4. 「フィールド名」リストから、マップするフィールドを選択します。
  5. 「プロセス・データ・フィールド」フィールドをダブルクリックし、属性に対する列を選択します。たとえば、UD_SF_USR_ALIASを選択します。
  6. 「保存」アイコンをクリックします。次のスクリーンショットは、プロセス定義のプロセス・データ・フィールドにマップされた新しいリコンシリエーション・フィールドを示しています。

    図4-3 「プロセス定義」タブ

    図4-3の説明が続きます
    「図4-3 「プロセス定義」タブ」の説明

4.1.4 参照定義のエントリの作成

リコンシリエーションの属性マッピングを保持する参照定義の、新しく追加された属性のエントリを作成します。

  1. 「管理」を開きます。
  2. 「参照定義」をダブルクリックします。
  3. 次のいずれかの参照定義を検索して開きます。
    • ユーザーの場合: Lookup.Salesforce.UM.ReconAttrMap

    • グループの場合: Lookup.Salesforce.GM.Recon.AttrMap

  4. 「Add」をクリックし、フィールドのコード・キー値とデコード値を入力します。コード・キー値は、リソース・オブジェクトのフィールドの名前と同じにする必要があります。
  5. 「保存」アイコンをクリックします。次のスクリーンショットは、参照定義に追加されたエントリを示しています。

    図4-4 「参照定義」ページ

    図4-4の説明が続きます
    「図4-4 「参照定義」ページ」の説明

4.1.5 新規UIフォームでの変更の実行

Design Consoleのフォーム・デザイナに対するすべての変更を新しいUIフォームでレプリケートする必要があります。

  1. Oracle Identity System Administrationにログインします。
  2. サンドボックスを作成し、アクティブにします。『Oracle Fusion Middleware Oracle Identity Managerのためのアプリケーションの開発とカスタマイズ』のサンドボックスの作成に関する項およびサンドボックスのアクティブ化に関する項を参照してください。
  3. 新たに追加したフィールドと残りのフィールドを表示するために新しいUIフォームを作成します。『Oracle Fusion Middleware Oracle Identity Managerの管理』のフォーム・デザイナを使用したフォームの作成に関する項を参照してください。
  4. 新たに作成したUIフォームをターゲット・システムのアプリケーション・インスタンスに関連付けます。それを行うには、「フォーム」フィールドの、リソースの既存のアプリケーション・インスタンスを開き、フォームを選択して、アプリケーション・インスタンスを保存します。
  5. サンドボックスを公開します。Oracle Fusion Middleware Oracle Identity Managerのアプリケーションの開発とカスタマイズのサンドボックスの公開に関する項を参照してください。

4.2 プロビジョニングのための新規ユーザーまたはグループ属性の追加

コネクタでは、Oracle Identity Managerとターゲット・システム間のプロビジョニング用に属性マッピングのデフォルト・セットが提供されています。必要な場合には、プロビジョニング用に新規ユーザーまたはグループ属性を追加できます。

プロビジョニングのデフォルト属性マッピングは表1-13および表1-17に示されています。

次の項では、プロビジョニング用に新規ユーザーまたはグループを追加する手順について説明します。

4.2.1 プロビジョニングへの新規属性の追加

Oracle Identity Manager Design Consoleの「フォーム・デザイナ」セクションで、プロセス・フォームの新規属性を追加します。

ノート:

リコンシリエーションのための属性をすでに追加している場合、その手順の一部として実行したステップを繰り返す必要はありません。
  1. Oracle Identity Manager Design Consoleにログインします。
  2. 「Development Tools」,を開き、「Form Designer」をダブルクリックします
  3. 次のプロセス・フォームのうち1つを検索して開きます。
    • ユーザーの場合: UD_SF_USR
    • グループの場合: UD_SF_GRP
  4. 「Create New Version」をクリックし、「Add」をクリックします。
  5. 属性の詳細を入力します。
    たとえば、ALIASフィールドを追加する場合は、「名前」フィールドにUD_SF_USR_ALIASと入力してから、このフィールドのその他の詳細を入力します。
  6. 保存アイコンをクリックし、「バージョンのアクティブ化」をクリックします
    次のスクリーンショットは、プロセス・フォームに追加された新規フィールドを示しています

    図4-5 プロセス・フォームに追加された新しいフィールド

    図4-5の説明が続きます
    「図4-5 プロセス・フォームに追加された新しいフィールド」の説明

4.2.2 プロビジョニングへの参照定義のエントリの作成

プロビジョニングの属性マッピングを保持する参照定義の、新しく追加された属性のエントリを作成します。

  1. 「管理」を開きます。
  2. 「参照定義」をダブルクリックします。
  3. 次のいずれかの参照定義を検索して開きます。
    • ユーザーの場合: Lookup.Salesforce.UM.ProvAttrMap
    • グループの場合: Lookup.Salesforce.GM.ProvAttrMap
  4. 「追加」をクリックし、属性のコード・キー値とデコード値を入力します。
    たとえば、コード・キー列にはAlias、デコード列にはaliasと入力します。次のスクリーンショットは、参照定義に追加されたエントリを示しています。

    図4-6 参照定義に追加されたエントリ

    図4-6の説明が続きます
    「図4-6 参照定義に追加されたエントリ」の説明

4.2.3 タスクの作成による更新操作の有効化

プロビジョニング操作中の新規ユーザーまたはグループの属性の更新を有効にするタスクを作成します。

この手順を実行しない場合、Create Userプロビジョニング操作で属性の値を設定した後で、値を変更できなくなります。
プロビジョニング操作中の属性の更新を有効にするには、次のようにして新規ユーザーおよびグループの属性を更新するためのプロセス・タスクを追加します。
  1. 「Process Management」,を開き、「Process Definition」をダブルクリックします
  2. 次のいずれかのプロセス定義を検索して開きます。
    • ユーザーの場合: Salesforce User
    • グループの場合: Salesforce Group
  3. 「追加」をクリックします。
  4. 「新しいタスクの作成」ダイアログ・ボックスの「一般」タブで、タスクの名前と説明を入力し、次を選択します。
    • 条件付き
    • 完了に必須
    • 保留中の取消しを許可
    • 複数のインスタンスを許可
  5. 「保存」アイコンをクリックします。
    次のスクリーンショットは、プロセス定義に追加された新しいタスクを示しています。

    図4-7 プロセス定義に追加された新しいタスク

    図4-7の説明が続きます。
    「図4-7 プロセス定義に追加された新しいタスク」の説明
  6. プロビジョニング処理で、次のようにして、「Handler Type」セクションでアダプタ名を選択します。
    1. 「新しいタスクの作成」ダイアログ・ボックスの「統合」タブで、「追加」をクリックします。
    2. ハンドラ選択ダイアログ・ボックスで「アダプタ」を選択し、adpSALESFORCEUPDATEOBJECTをクリックして「保存」アイコンをクリックします。
      「統合」タブにアダプタ変数のリストが表示されます。次のスクリーンショットは、アダプタ変数のリストを示しています。

      図4-8 アダプタ変数のリスト

      図4-8の説明が続きます。
      「図4-8 アダプタ変数のリスト」の説明
  7. 「アダプタ変数」リージョンでParentFormProcessInstanceKey変数をクリックします。
  8. 表示されるダイアログ・ボックスで次のマッピングを作成します。
    • 変数名: ParentFormProcessInstanceKey

    • マップ先: Process Data

    • 修飾子:Process Instance

  9. 「保存」をクリックして、ダイアログ・ボックスを閉じます。
  10. ユーザー属性のプロビジョニング操作の更新を有効化する場合、「アダプタ変数」リージョンの残りの変数について、ステップ7から9を繰り返します。
    各変数について次の表に示す値を「Map To」、「Qualifier」および「Literal Value」リストから選択してください。
    変数 マップ先 修飾子 リテラル値

    Adapter Return Value

    Response Code

    該当なし

    該当なし

    Object Type

    Literal

    String

    User

    itResourceFieldName

    Literal

    String

    UD_SF_USR_SERVER

    attributeFieldName

    Literal

    String

    Alias

  11. グループ属性のプロビジョニング操作の更新を有効化する場合、「アダプタ変数」リージョンの残りの変数について、ステップ7から9を繰り返します。
    各変数について次の表に示す値を「Map To」、「Qualifier」および「Literal Value」リストから選択してください。
    変数 マップ先 修飾子 リテラル値

    ParentFormProcessInstanceKey

    Process Data

    Process Instance

    該当なし

    Adapter Return Value

    Response Code

    該当なし

    該当なし

    Object Type

    Literal

    String

    Group

    itResourceFieldName

    Literal

    String

    UD_SF_GRP_SERVER

    attributeFieldName

    Literal

    String

    NAME_OF_THE_NEW_GROUP_ATTRIBUTE

  12. 「レスポンス」タブで、「追加」をクリックして少なくともSUCCESSレスポンス・コードをステータスCで追加します。これにより、タスクの実行に成功するとタスクのステータスが「完了」として表示されます。
  13. 「Save」アイコンをクリックしてダイアログ・ボックスを閉じ、プロセス定義を保存します。

4.2.4 新規UIフォームへのフォーム・デザイナの変更のレプリケート

Design Consoleのフォーム・デザイナに対するすべての変更を新しいUIフォームでレプリケートする必要があります。

  1. Oracle Identity System Administrationにログインします。
  2. サンドボックスを作成し、アクティブにします。『Oracle Fusion Middleware Oracle Identity Managerのためのアプリケーションの開発とカスタマイズ』のサンドボックスの作成に関する項およびサンドボックスのアクティブ化に関する項を参照してください。
  3. 新たに追加したフィールドと残りのフィールドを表示するために新しいUIフォームを作成します。『Oracle Fusion Middleware Oracle Identity Managerの管理』のフォーム・デザイナを使用したフォームの作成に関する項を参照してください。
  4. 新たに作成したUIフォームをターゲット・システムのアプリケーション・インスタンスに関連付けます。それを行うには、「フォーム」フィールドの、リソースの既存のアプリケーション・インスタンスを開き、フォームを選択して、アプリケーション・インスタンスを保存します。
  5. サンドボックスを公開します。Oracle Fusion Middleware Oracle Identity Managerのアプリケーションの開発とカスタマイズのサンドボックスの公開に関する項を参照してください。

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

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

要件に応じて、リコンサイルおよびプロビジョニングされた単一値データの検証を構成できます。たとえば、ユーザー名属性からフェッチしたデータを検証して、そのデータに番号記号(#)が含まれていないことを確認します。また、プロセス・フォームの「ユーザー名」フィールドに入力したデータを検証して、プロビジョニング操作中にターゲット・システムに番号記号(#)が送信されないようにします。
検証チェックで合格しないデータについては、次のメッセージが表示されるか、ログ・ファイルに記録されます。
Validation failed for attribute ATTRIBUTE_NAME.

ノート:

この機能は、ターゲット・システムのロック/ロック解除ステータス属性には適用できません。
データの検証を構成するには:
  1. 必要な検証ロジックをJavaクラスに実装するコードを記述します。
    検証クラスには、次のメソッド・シグネチャを持つ検証メソッドを実装する必要があります。
    boolean validate(HashMap hmUserDetails, HashMap 
    hmEntitlementDetails, String field)

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

    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 sUserName=(String) hmUserDetails.get(field); for(int 
       i=0;i<sUserName.length();i++){
         if (sUserName.charAt(i) == '#'){
             valid=false;
             break;
                    }
                    }
              return valid;
                }    
  2. Javaクラスを保持するJARファイルを作成します。
  3. JARファイルをOracle Identity Managerデータベースにコピーします。
    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. Lookup.Salesforce.UM.ReconValidationという参照定義を作成します。
    3. 参照定義に変更を保存します。
    4. Lookup.Salesforce.UM.Configuration参照定義を検索して開きます。
    5. 参照定義に変更を保存します。
  5. プロビジョニングのプロセス・フォーム・フィールドを検証するJavaクラスを作成した場合は、次の手順を実行します。
    1. Design Consoleにログインします。
    2. Lookup.Salesforce.UM.ProvValidationという参照定義を作成します。
    3. 「Code Key」列に、プロセス・フォーム・フィールド名を入力します。たとえば、User Nameです。デコード列に、クラス名を入力します。たとえば、org.identityconnectors.Salesforce.extensionです。
    4. 参照定義に変更を保存します。
    5. Lookup.Salesforce.UM.Configuration参照定義を検索して開きます。
    6. 参照定義に変更を保存します。

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

要件に応じて、リコンサイルされた単一値アカウント・データの変換を構成できます。

たとえば、User NameおよびLast Name値を使用して、Oracle Identity Managerの「氏名」フィールドの値を作成できます。

ノート:

この機能は、ターゲット・システムのロック/ロック解除ステータス属性には適用できません。
リコンシリエーション中にフェッチした単一値のアカウント・データの変換を構成するには:
  1. 必要な変換ロジックをJavaクラスに実装するコードを記述します。
    変換クラスには、次のメソッド・シグネチャを持つ変換メソッドを実装する必要があります。
    Object transform(HashMap hmUserDetails, HashMap hmEntitlementDetails, String sField)
    次のサンプル変換クラスは、ターゲット・システムのUser 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 sUserName= (String)hmUserDetails.get("User Name"); 
          String sLastName= (String)hmUserDetails.get("Last Name"); 
          String sFullName=sUserName+"."+sLastName;
          return sFullName;
          }
       } 
    
  2. Javaクラスを保持するJARファイルを作成します。
  3. JARファイルをOracle Identity Managerデータベースにコピーします。
    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管理者のログイン資格証明およびJARファイルのアップロード元であるOracle Identity Managerホスト・コンピュータのURLの入力を求めるプロンプトが表示されます。JARタイプの値として1を指定します。
  4. リコンシリエーションのプロセス・フォーム・フィールドの変換用にJavaクラスを作成した場合は、次の手順を実行します。
    1. Design Consoleにログインします。
    2. Lookup.Salesforce.UM.ReconTransformationという参照定義を作成します。
    3. コード・キー列に、変換を適用するリソース・オブジェクト・フィールド名を入力します。たとえば、User Nameです。デコード列に、変換ロジックを実装するクラスの名前を入力します。たとえば、oracle.iam.connectors.common.transform.TransformAttributeです。
    4. 参照定義に変更を保存します。
  5. 次のように、Lookup.Salesforce.UM.Configuration参照定義にエントリを追加して、変換を有効にします。
    1. 「Administration」を開き、「Lookup Definition」をダブルクリックします。
    2. Lookup.Salesforce.UM.Configuration参照定義を検索して開きます。
    3. コード・キー列に、リコンシリエーション変換参照を入力しますデコード列に、Lookup.Salesforce.UM.ReconTransformationと入力します。
    4. 参照定義に変更を保存します。

4.5 ターゲット・システムの複数のインストールに対するコネクタの構成

ターゲット・システムの複数のインストールに対してコネクタを構成する場合があります。

次の例でこの要件について説明します。

Example Multinational Inc.のロンドンおよびニューヨークの事業所には、独自にターゲット・システムがインストールされています。最近、この会社では、Oracle Identity Managerをインストールし、これを構成してインストールされたすべてのターゲット・システムをリンクしようとしています。

このような例で示される要件に対応するには、コネクタのコピーを作成する必要があります。Oracle Fusion Middleware Oracle Identity Managerの管理 の コネクタのクローニングに関する項 を参照してください。

4.6 コネクタの定義

アイデンティティ・システム管理を使用して、カスタマイズまたは再構成されたコネクタを定義できます。コネクタを定義することは、コネクタをOracle Identity Managerに登録することと同じです。

コネクタは、コネクタのインストール機能を使用してインストールするか、またはコネクタのアップグレード機能を使用してアップグレードすると、自動的に定義されます。次のような場合に、コネクタを手動で定義する必要があります。
  • デプロイメント・マネージャを使用してコネクタをインポートする場合

  • コネクタをカスタマイズまたは再構成する場合

  • Oracle Identity Managerをアップグレードする場合

コネクタを定義すると、次のイベントが行われます。
  • コネクタを表すレコードがOracle Identity Managerデータベースに作成されます。このレコードがすでに存在する場合は、更新されます。

  • 新たに定義されたコネクタのステータスが、「アクティブ」に設定されます。さらに、前にインストールされたリリースの同じコネクタのステータスが、自動的に「非アクティブ」に設定されます。

Oracle Fusion Middleware Oracle Identity Managerの管理 の コネクタの定義に関する項 を参照してください。