3.2 エンティティおよび属性の操作

識別ボールトの内容に基づいてオブジェクトとその属性を追加することにより、ユーザアプリケーションをカスタマイズできます。これを行うには、新しいエンティティと属性をディレクトリ抽象化レイヤに追加し、追加したエンティティと属性をユーザアプリケーションドライバに展開します。

デフォルトでインストールされたエンティティファイルを変更するには、「セクション 3.2.2, エンティティの追加」および「セクション 3.2.3, 属性の追加」を参照してください。すでに展開されたプロジェクトのエンティティファイル、または別の開発者が定義したファイルセットを変更するには、まず、対象ファイルを設計環境にインポートする必要があります。ファイルのインポートについては、「セクション 2.4, プロビジョニングオブジェクトのインポート」を参照してください。

3.2.1 エンティティおよび属性について

Identity Managerユーザアプリケーションでユーザが検索、表示、編集できるようにする識別ボールトオブジェクトはすべて、ディレクトリ抽象化レイヤのエンティティとして定義する必要があります。たとえば、ユーザアプリケーションでinetOrgPerson識別ボールトオブジェクトを使用するには、そのためのエンティティ定義を作成する必要があります。論理的には次の2種類のエンティティがあります(ただし、作成方法は同じです)。

  • スキーマからマップされるエンティティ: このエンティティは、識別ボールトに存在し、ユーザアプリケーションでユーザに直接公開されるオブジェクトを表します。この種類のエンティティを定義する場合、ユーザに利用してもらうすべての属性を公開します。この種類のエンティティの例には、[ユーザ]、[グループ]などがあります。異なる種類のユーザに異なる属性セットを公開する場合は、同じオブジェクトに対して複数のエンティティ定義を作成することもできます。詳細については、1つのオブジェクトに対する複数のエンティティ定義の作成を参照してください。

  • LDAP関係を表すエンティティ: この種類のエンティティは、DNLookupと呼ばれ、次の目的でユーザアプリケーションに使用されます。

    • 関連するエンティティでのDN検索の結果をリストに入力する

    • 更新や削除が行われた場合、複数のDN参照属性間の参照整合性を維持する

    DNLookupをサポートするエンティティは、組織図ポートレットで関係を判断するために使用されます。また、検索ポートレット、作成ポートレット、および詳細ポートレットでポップアップ選択リストやDNコンテキストを表示するためにも使用されます。この種類のエンティティの例には、[ユーザのルックアップ]エンティティがあります。詳細については、属性およびDNLookupプロパティを参照してください。

1つのオブジェクトに対する複数のエンティティ定義の作成

同じ識別ボールトオブジェクトを表しながら異なる方法でデータを表示する、複数のエンティティ定義を作成できます。複数のエンティティ定義で、ぞれぞれに異なる属性を定義できます。または、すべてに同じ属性を定義し、それぞれに異なるアクセスプロパティを指定して、属性の検索、表示、編集、または非表示の方法を制御することもできます。

メモ:結果セットで特定のエンティティを非表示にするフィルタを定義する方法もあります。

これで、ユーザインタフェースの異なる部分に異なるエンティティ定義を使用できるようになります。たとえば、1つは公開サイト用、もう1つは社内サイト用に従業員のディレクトリを作成する場合を考えてみましょう。公開サイトでは従業員の姓名および電話番号を記載し、社内サイトでは役職、マネージャなどの追加情報も含めることにします。その方法を次に示します。

  1. 2つのエンティティ定義を作成します(異なるキーを使用します)。

    どちらのエンティティ定義も同じ識別ボールトオブジェクトを公開しますが、1つのエンティティ定義キーは公開従業員情報、もう1つのエンティティ定義キーは社内従業員情報です。

  2. それぞれのエンティティ定義で、異なる属性セットを定義します。1つは公開従業員情報用、もう1つは社内従業員情報用です。

  3. Identity Managerユーザアプリケーションの[ポータルの管理]タブで、公開ページ用と社内ページ用のポートレットインスタンスをそれぞれ作成します。

    ポートレットインスタンスの作成の詳細については、『Identity Manager 3.5 ユーザアプリケーション: 管理ガイド』の「★Portlet Reference★」を参照してください。

3.2.2 エンティティの追加

エンティティを追加するには、次の手順で説明するようにエンティティの追加ウィザードを使用するか、またはツールバーの[エンティティの追加]ボタンをクリックします。

メモ:[エンティティの追加]ボタンを使用する場合、作成するエンティティのオブジェクトクラスを選択するよう促すメッセージが表示されます。必須属性は自動的にエンティティに追加されます。[属性の追加]ダイアログボックスを使用して、エンティティの定義を完了します。

エンティティの追加ウィザードを使用してエンティティを追加する

  1. 次のいずれかの方法でエンティティの追加ウィザードを起動します。

    Designerのメニューから起動する場合

    • [ファイル]>[新規]>[プロビジョニング]の順にクリックします。[ディレクトリ抽象化レイヤエンティティ]を選択し、[次へ]をクリックします。

    プロビジョニングビューから起動する場合:

    • [エンティティ]ノードを右クリックし、[新規]をクリックします。

    ディレクトリ抽象化レイヤエディタから起動する場合

    • [DAL]>[新規]>[エンティティ]の順にクリックします。

      または

    • [エンティティ]ノードを右クリックし、[新しいエンティティ - 属性ウィザード]をクリックします。

    [新しいエンティティ]ダイアログボックスが表示されます。

    メモ:[ファイル]メニューから起動した場合、次に示されているように、追加のフィールドがダイアログボックスに表示されます。

    図
  2. 次のようにフィールドに値を入力します。

    フィールド

    説明

    Identity Managerプロジェクトおよびプロビジョニングアプリケーション

    エンティティおよび属性を追加するIdentity Managerプロジェクトおよびプロビジョニングアプリケーション。

    メモ:これらのフィールドは、[ファイル]メニューからウィザードを起動したときに表示されます。

    エンティティキー

    エンティティの固有識別子です。

    表示ラベル

    ユーザアプリケーションでこのエンティティが表示されるときに使用される文字列です。このラベルはローカライズできます。詳細については、セクション 2.10, 表示ラベルのローカライズを参照してください。

  3. [次へ]をクリックします。[新しいエンティティ]ダイアログボックスが表示されます。

  4. このエンティティのオブジェクトクラスを選択し、[エンティティで使用可能な属性]リストで、使用する属性をダブルクリックして追加します。必須属性は、[オブジェクトクラス]の選択時に追加されており、[エンティティで選択された属性]リストから削除できません。

    ヒント:エンティティのオブジェクトクラスが[オブジェクトクラスの選択]リストに表示されないときは、スキーマ要素リストの更新で説明されている手順に従って、Designerのローカルスキーマファイルを更新してください。

  5. [完了]をクリックします。

    編集用のプロパティページが表示されます。詳細については、エンティティのプロパティを参照してくださいユーザアプリケーションでエンティティを使用できるようにするには、そのエンティティを展開する必要があります。

オブジェクトクラスリストのフィルタ

フィルタを追加することにより、[新しいエンティティ]ダイアログボックスに表示されるオブジェクトクラスを制限できます。フィルタを追加するには、以下の手順に従います。

  1. [フィルタの環境設定]をクリックして[クラスフィルタ]ダイアログボックスを起動します。

    デフォルトでは、クラスフィルタは適用されません。[クラスフィルタ]ダイアログボックスには、2つの事前定義フィルタ([starts-with "DirXML"]および[starts-with "srvprv"])が表示されています。2つとも有効にするには、[すべて選択]をクリックし、[OK]をクリックします。2つのフィルタが直ちにオブジェクトクラスリストに適用されます。これらのフィルタは、選択解除しない限り、適用されたままになります。

  2. ボタンの使用方法は次のとおりです。

    ボタン

    説明

    文字列の比較演算子([次を含む]、[次で始まる]、[次で終わる]など)の1つを選択し、比較対象の文字列を入力します。

    フィルタを追加します。フィルタ比較値を定義した場合に有効になります。

    選択されたフィルタを削除します。

    すべてのフィルタを使用する場合、このオプションをクリックします。定義されたすべてのフィルタが選択されます。

    定義されたすべてのフィルタを選択解除する場合は、このオプションをクリックします。このオプションを選択すると、フィルタは適用されません。

エンティティフィルタの追加

指定されたエンティティに対して返されるエントリを制限するには、エンティティフィルタを定義します。属性に基づいて、指定した別の値と比較するフィルタを定義します。たとえば、リージョン属性が「北東」のエントリだけをユーザエンティティに含めるようにするフィルタを作成できます。

  1. [条件グループ化の追加]をクリックします。

  2. 左のドロップダウンリストで、属性を選択します。

  3. 中央のドロップダウンリストで、比較演算子を選択します。

  4. 右のフィールドで、比較する値を指定します。

  5. 複数の条件グループ化を指定する場合は、この手順を繰り返します。条件グループ化では、使用する条件をそれぞれ指定し、指定した条件を論理演算子(and、or)で結合します。

条件は、定義されている順に評価されます。

3.2.3 属性の追加

  1. エンティティを選択します。

  2. 次のいずれかを実行して属性を追加します。

    • エンティティを右クリックし、[属性の追加]を選択します。

      または

    • [属性の追加]ボタンをクリックします。

      または

    • [DAL]>[新規]>[属性]の順にクリックします。

    エンティティに追加する属性が含まれているエンティティクラスを選択するよう促すメッセージが表示されます。目的の属性が含まれるクラスを追加する必要がある場合は、補助クラスを追加(および削除)することもできます。

  3. [エンティティクラスの使用可能な属性]リストで、目的の属性をダブルクリックして追加します。

    LDAP動作属性は、ディレクトリ抽象化レイヤエディタおよびユーザアプリケーションでサポートされています。ただし、動作属性を追加した場合、[編集]、[必須]、および[非表示]プロパティはfalseに設定され、無効になるので、これらのプロパティ値は変更できません。

    ヒント:追加したい属性が[エンティティクラスの使用可能な属性]リストに表示されない場合は、スキーマ要素リストの更新の手順に従って、Designerのローカルスキーマファイルを更新してください。

  4. [OK]をクリックします。編集用のプロパティページが表示されます。

    詳細については、「属性のプロパティ」を参照してください。ユーザアプリケーションで属性を使用できるようにするには、その属性を展開する必要があります。

DAL計算される属性の追加

式から派生する属性を作成できます。たとえば、2つ以上の属性を連結して、1つの計算値を作成できます。式はECMAScriptと互換性があり、ECMA 262言語仕様に準拠します。

制限: この属性タイプは、識別ボールト内の特定の属性にマップされないため、更新、削除、複数値設定、必須化、検索は行えません。

計算される属性を作成する

  1. セクション 3.2.3, 属性の追加の手順に従って属性を追加し、[エンティティクラスの使用可能な属性]リストで、[DAL計算された属性]を選択していることを確認します。

次の制限付きで属性が追加されます。

表 3-3 計算される属性のプロパティ

プロパティ名

説明

ECMA式ビルダを起動するには、[ECMAScript式のビルド]をクリックします。ECMA式ビルダの使用方法の詳細については、「セクション 10.0, ECMA式の使用」を参照してください。

3.2.4 スキーマ要素リストの更新

  1. Identity Managerプロジェクトが開いた状態で、識別ボールトを右クリックし、[ライブ]>[スキーマのインポート]の順にクリックします。

  2. [eDirectoryからインポート]を選択し、eDirectoryホストの仕様を入力します。

  3. 次へ]をクリックします。

  4. インポートするクラスおよび属性を選択し、[完了]をクリックします。