4 コネクタの機能拡張

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

この章では、次のオプションの手順について説明します。

ノート:

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

4.1 リコンシリエーションに関するターゲット・システム属性の追加

デフォルトでは、「ユーザー属性」に示されている属性が、Oracle Identity Managerとターゲット・システム間のリコンシリエーション用にマップされます。必要に応じて、次の追加属性をリコンシリエーション用にマップできます。

ノート:

この手順は、リコンシリエーションに新しいターゲット・システム属性を追加する場合にのみ実行します。

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

    1. 「Resource Objects」フォームを開きます。このフォームは「Resource Management」フォルダにあります。

    2. 「Query for Records」をクリックします。

    3. 「Resource Objects Table」タブで、Lotus Userリソース・オブジェクトをダブルクリックして編集のために開きます。

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

    5. フィールド名となる値を指定します。

      ステップ1でコメント解除または追加した行の、等号記号の左にある名前を指定する必要があります。

      たとえば、ステップ1Users.City=Cityの行をコメント解除する場合は、属性名としてUsers.Cityを指定する必要があります。

    6. 「Field Type」リストから、フィールドのデータ・タイプを選択します。

      たとえば: String

    7. 入力した値を保存し、ダイアログ・ボックスを閉じます。

    8. 必要に応じて、ステップdからgを繰り返してフィールドをさらにマップします。

    9. Oracle Identity Managerリリース11.1.1を使用している場合は、「Create Reconciliation Profile」をクリックします。これにより、リソース・オブジェクトに行われた変更がMDSにコピーされます。

  2. 対応するフィールドがプロセス・フォームに存在しない場合は、プロセス・フォームに新しい列を追加します。

    1. 「Form Designer」フォームを開きます。このフォームは「Development tools」フォルダにあります。

    2. 「UD_LOTUS」フォームを問い合せます。

    3. 「Create New Version」をクリックします。

      「Create a New Version」ダイアログ・ボックスが表示されます。

    4. 「Label」フィールドで、バージョンの名前を入力します。

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

    6. 現在のバージョン・ボックスから、ステップ2.dのラベル・フィールドに入力したバージョン名を選択します。

    7. 「Additional Columns」タブで、「Add」をクリックします。

    8. 「Name」フィールドに、データ・フィールドの名前を入力してから、フィールドのその他の詳細を入力します。

      ノート:

      属性をさらに追加する場合は、ステップgおよびhを繰り返します。

    9. 「Save」「Make Version Active」を順にクリックします。

  3. プロセス定義を修正して、新しく追加された属性と、対応するリコンシリエーション・フィールドとの間のマッピングを追加します。

    1. 「Process Definition」フォームを開きます。このフォームはDesign Consoleの「Process Management」フォルダにあります。

    2. 「Query for Records」アイコンをクリックします。

    3. 「Process Definition Table」タブで、Lotus Userプロセス定義をダブルクリックします。

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

    5. 「フィールド名」リストから、ステップ2.1.eで追加したリソース・オブジェクトの名前を選択します。

    6. 「Process Data Field」をダブルクリックし、「Lookup」ダイアログ・ボックスから対応するプロセス・フォーム・フィールドを選択します。次に、「OK」をクリックします。

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

    8. 必要に応じて、ステップ3.cから3.gを繰り返してフィールドをさらにマップします。

  4. リコンシリエーション参照Lookup.Domino.UM.ProvAttrMapに移動して、次の値を使用して新しい属性に新しいレコードを追加します。

    • コード・キー - リコンシリエーション・フィールドの名前

    • デコード - Domino属性の名前

4.2 プロビジョニングに関するターゲット・システム属性の追加

ノート:

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

「リコンシリエーションに関するターゲット・システム属性の追加」で説明されている手順の一部として実行したステップは、繰り返さないでください。

デフォルトでは、「ユーザー属性」に示されている属性が、Oracle Identity Managerとターゲット・システム間のプロビジョニング用にマップされます。必要に応じて、次のステップを実行して、追加属性をプロビジョニング用にマップできます。

  1. 新しいフォーム・フィールドを追加します。

    プロセス・フォームに新規フィールドを追加するには、次のステップに従います。

    1. 「Form Designer」フォームを開きます。このフォームは、Oracle Identity Manager Design Consoleの「Development Tools」フォルダ内にあります。

    2. 「UD_LOTUS」フォームを問い合せます。

    3. 「Create New Version」をクリックします。

      「Create a New Version」ダイアログ・ボックスが表示されます。

    4. 「Label」フィールドで、バージョンの名前を入力します。

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

    6. 「Current Version」ボックスから、ステップ4の「Label」フィールドに入力したバージョン名を選択します。

    7. 「Additional Columns」タブで、「Add」をクリックします。

    8. 新しいフィールド名とその他の値を指定します。

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

    10. 「Make Version Active」をクリックして、新しいフォーム・フィールドをユーザーに表示します。

      Oracle Identity Managerに移動して、Dominoに新しいユーザーをプロビジョニングする場合、新しいフォーム・フィールドを表示する必要があります。次に、プロビジョニング・マッピング参照に新しいフォーム・フィールドを追加する必要があります。

  2. プロビジョニング・マッピング参照に新しいフィールドを追加します。

    新しいフォーム・フィールドの作成後、そのフィールドをプロビジョニング・マッピング参照に追加する必要があります。次のステップを実行します。

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

    2. 「ルックアップ定義」ウィンドウで、*Domino*を検索します。

      Design Consoleは、Lookup.Domino.UM.ProvAttrMapを返します。

    3. 「Lookup Definition Table」タブを選択して、Lookup.Domino.UM.ProvAttrMapを選択します。

      「Lookup Code Information」タブは、OIMのフォーム・フィールド名およびDominoアイデンティティ・コネクタ属性をマップします。「Code Key」列には、OIMフィールド・ラベルが含まれており、「Decode」列には、Dominoアイデンティティ・コネクタによってサポートされる属性名が含まれています。

    4. 新しいフォーム・フィールドに新しいレコードを追加します。「Code Key」列に新しいフォーム・フィールド名を入力し、「Decode」列にDominoアイデンティティ・コネクタ属性名を入力します。

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

      新しいDominoユーザーを作成する場合、作成操作の一部として、コネクタは新しい属性を取得します。

    この時点では、プロセス・タスクでは作成のみを処理します。次に、プロセス・タスクを変更して、更新も処理できるようにする必要があります。手順は、次の項で説明します。

  3. 次のステップを実行して、プロセス・タスクを変更し、更新を処理するようにします。

    1. Design Consoleで、「Process Management」を展開してから、「Process Definition」をダブルクリックします。

    2. Lotus Userプロセスを検索して選択します。

    3. 「Task」列で、そのエントリを追加および選択する更新タスクと同様な更新タスクを検索します。

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

    5. 「Creating New Task」ダイアログで「General」タブを選択して、タスク名およびタスクの説明を入力します。

      「Task Name」はフォーム名フィールドとなるため重要です。タスクで処理するイベントが含まれていることを確認します。たとえば、プロビジョニングにCityフィールドを追加する場合は、City Updatedタスクを追加します。この更新イベントは、Cityフィールドが更新される際にトリガーされます。

    6. 「Task Properties」セクションで、次に示されているようにプロパティを設定します。

      - 条件付き: 有効

      - 完了に必須: 無効

      - 手動挿入不可: 無効

      - 保留中の取消しを許可: 有効

      - 複数のインスタンスを許可: 有効

      残りのプロパティを変更する必要はありません。

    7. 変更を保存します。

    8. イベント・ハンドラを追加するには、「Integration」タブを選択してから、「Add」をクリックします。

    9. ハンドラの選択ダイアログ・ボックスが表示されたら、ハンドラ・タイプとして「アダプタ」を選択し、「adpLNUPDATEUSERINFO」を選択して「保存」をクリックします。

    10. イベント・アダプタに構成されているすべての変数をマップします。

      「Adapter Variable」セクションで、変数名をダブルクリックして、「Edit Data Mapping For Variable」ダイアログ・ボックスを開きます。変数ごとに次の値を順番に指定します。マッピング後には、必ず変更を保存してください。

      変数名 マップ先 修飾子 リテラル値

      itResourceFieldName

      Literal

      String

      UD_LOTUS_SERVERNAME

      processInstanceKey

      Process Data

      Process Instance

      Adapter return value

      Response Code

      objectType

      Literal

      String

      User

      attrName

      Literal

      String

      新しいフォーム・フィールド・ラベルを入力

    11. 「Creating New Task」ダイアログを保存して閉じます。

    12. 「Process Definition」タブの「Task」列を確認して、新しいプロセス・タスクがリストされていることを確認します。また、新しいフォーム・フィールドが使用可能で、Oracle Identity Managerで動作していることも確認します。

4.3 検証および変換の構成

要件にあわせて、プロビジョニングおよびリコンサイルされた単一値データの検証を構成できます。変換も構成できますが、変換はリコンシリエーションにのみサポートされています。

検証および変換を構成する手順は、次の各項で説明します:

4.3.1 プロビジョニング検証の構成

プロビジョニングされたデータの検証を構成するには、次のステップに従います。

  1. 検証インタフェースを実装する、いくつかのカスタムJavaクラス・コードを記述します。たとえば:
    package com.validationexample;
    import oracle.iam.connectors.common.ConnectorException;
     
    import java.util.HashMap;
     
    public class MyValidator implements Validator {
        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.Domino.UM.ProvValidation(または他のカスタム名を作成します)参照定義を検索して開きます。

    ノート:

    Lookup.Domino.UM.ProvValidation参照定義が見つからない場合は、新しい参照を作成します。

  4. 「Code Key」列で、検証するリソース・オブジェクト・フィールド名を入力します。
  5. 「Decode」列で、クラス名を入力します。

    たとえば、com.validationexample.MyValidator

  6. 変更を参照定義に保存します。
  7. Lookup.Domino.UM.Configuration参照定義を検索して開きます。
  8. 「Code Key」列にProvisioning Validation Lookupと入力します。
  9. 「Decode」列に、Lookup.Domino.UM.ProvValidationまたはステップ3で作成した参照の名前を入力します。

4.3.2 リコンシリエーション検証の構成

リコンシリエーション検証の構成ステップは、「プロビジョンニング検証の構成」に示されているステップと同じです。ただし、ステップ8のコード・キーはRecon Validation Lookupにする必要があります。

4.3.3 リコンシリエーション変換の構成

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

リコンシリエーション変換を構成するには:

  1. 変換インタフェースを実装するカスタムJavaクラスを記述します。たとえば:
    package com.transformationexample;
    import oracle.iam.connectors.common.ConnectorException;
     
    import java.util.HashMap;
     
     
    public class MyTransformer implements Transformation {
        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.Domino.UM.ReconTransformation(または他のカスタム名を作成します)参照定義を検索して開きます。

    ノート:

    Lookup.Domino.UM.ReconTransformation参照定義が見つからない場合は、新しい参照を作成します。

  4. 「Code Key」列に、変換するリソース・オブジェクト・フィールド名を入力します。
  5. デコード列に、クラス名を入力します。

    たとえば、com.transformationexample.MyTransformer

  6. 参照定義に変更を保存します。
  7. Lookup.Domino.UM.Configuration参照定義を検索して開きます。
  8. コード・キー列に、リコンシリエーション変換参照を入力します。
  9. デコード列に、Lookup.Domino.UM.ReconTransformationまたはステップ3で作成した参照の名前を入力します。

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

ノート:

この手順は、IBM Lotus Notes and Dominoの複数インストール用のコネクタを構成する場合以外は実行しないでください。

ターゲット・システムの複数のインストールに対してコネクタを構成する場合があります。次の例でこの要件について説明します。

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

これを実現するために、ITリソースやスケジュール済ジョブなどのコネクタ・オブジェクトのコピーを作成できます。

コネクタ・オブジェクトのコピーを作成するかどうかの決定は、要件に基づきます。たとえば、ITリソースは1つのターゲット・システム・インストールの接続情報を保持できます。このため、ターゲット・システムのインストールごとにITリソースのコピーを作成する必要があります。

コネクタ・オブジェクトのコピーを作成するには:

ノート:

このコネクタでは、ターゲット・システムのすべてのインストールは、リコンシリエーションおよびプロビジョニング用の同じ属性セットを持っていると想定します。

  1. ITリソースのコピーを作成します。このITリソースの詳細は、「ITリソースの構成」を参照してください。
  2. Lotus Notesユーザー・リコンシリエーション・スケジュール済ジョブのコピーを作成します。このスケジュール済ジョブの詳細は、「リコンシリエーション・スケジュール済ジョブ」を参照してください。

特定のターゲット・システム・インストールからデータをリコンサイルするには、そのターゲット・システム・インストールのITリソースの名前を、ITリソース・スケジュール済ジョブ属性の値として指定します。

4.5 名前階層のユーザー名の移動

名前階層のユーザー名を移動する場合は、次のステップを実行します。

  1. プロセス・フォームのCertifierOrghierarchyを新しい組織情報(例: org2/org)で変更します。
  2. プロセス・フォームの新しいcertifier id pathおよびcertpasswordに値を設定します。
  3. 「MoveCertifier」チェック・ボックスを選択します。
  4. 「保存」をクリックします。

    ノート:

    前述の機能が動作するようにするためには、ルート証明書、現在の証明書およインバウンド・ドメインの名前とアドレス帳(Dominoディレクトリ)の"Servers\Certificates"ビューに移動する証明書をコピーする必要があります。認証者IDファイルがある場合は、ドキュメントを作成することもできます。

4.6 Webユーザーの作成および更新

Webユーザーを作成および更新する場合、次の手順を実行します。

ノート:

次の手順はWebユーザーにのみ適用できます。

  1. DominoでWebユーザーを作成するには、Lookup.Configuration.Domino参照定義のCreateIdFileの構成オプションをfalseに設定します。これを行うには、次の手順を実行します。

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

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

    3. CreateIdFileの構成オプションをFalseに設定します。

    4. 「保存」をクリックして参照定義を閉じます。

  2. プロビジョニング中に、Webユーザーの更新機能が想定したとおりに動作するようにCertifierOrghierarchyの値をプロセス・フォームに入力します。

4.7 IDVaultのユーザー・パスワードのリセット

このコネクタはIDVaultでパスワードのリセット機能をサポートします。これを実行するには、Lookup.Configuration.DominoのuseIDVaultをtrueに設定する必要があります。

ターゲット側では、特定の組織に対してIDVaultを構成したり、IDFileをIDVaultに保存する必要があるかどうかをポリシーを使用して判断したりできます。また、Dominoコネクタでは、新しいユーザーを登録する際に明示的なポリシーを使用できます。