Sun Java System Directory Server Enterprise Edition 6.3 管理ガイド

第 24 章 仮想データ変換

仮想データ変換は、既存のデータビュー上で定義され、仮想データビューを使用して仮想データを作成できるようにします。機能方法については、『Sun Java System Directory Server Enterprise Edition 6.3 Reference』「Virtual Data Transformations」を参照してください。

この章の内容は次のとおりです。

仮想データ変換の設定

仮想データ変換は次のどの種類のデータビューにも追加できます。LDAP データビュー、LDIF データビュー、結合データビュー、または JDBC データビュー。

Procedure仮想変換を追加する

DSCC を使用してこのタスクを実行することはできません。次の手順に示すように、コマンド行を使用します。

  1. 変換をデータビューに追加します。


    $ dpconf add-virtual-transformation -h host -p port view-name \
     transformation-model transformation-action attribute-name [parameters...]

    transformation-model は、mappingwrite、および read 変換のいずれかです。

    transformation-action は、add-attrremove-attradd-attr-valueremove-attr-valuedef-value、および attr-value-mapping アクションのいずれかです。

    transformation-modeltransformation-action によっては、parameters は必須である場合があります。

    変換のモデル、変換アクション、変換パラメータについては、『Sun Java System Directory Server Enterprise Edition 6.3 Reference』「Virtual Data Transformations」を参照してください。

  2. (省略可能) データビューで定義された仮想変換の一覧を表示します。

    $ dpconf list-virtual-transformations -h host -p port view-name
    

Procedure仮想変換を削除する

  1. 次のコマンドを使用して仮想変換を削除します。


    dpconf remove-virtual-transformation view_name transformation_name
    

仮想変換の例

次の節では、仮想データビューが必要なユースケースと、それらのユースケースの実装に必要な変換のモデルとアクションの組み合わせを示します。

エントリの既存の属性から派生した属性の誘導

次の変換ルールを使用して、エントリの既存の属性から属性を誘導します。たとえば、次の変換ルールを適用すると、givenName および sn 属性から派生した mail 属性が表示されます。


$ dpconf add-virtual-transformation dataview1 read add-attr \
mail \${givenName}.\${sn}@example.com 

次の図に、検索で返されるユーザーエントリで発生する変換を示します。

エントリの既存の属性から派生した属性の誘導

物理属性への属性のマップ

次のマッピング変換ルールを使用して、純粋な仮想属性の一部として配信された属性を追加します。たとえば、次の変換ルールを適用すると、givenName は、エントリで指定されていなくてもサーバーに格納されます。値は、mail \${givenName}@example.com として定義された純粋な仮想属性から取られます。


$ dpconf add-virtual-transformation dataview1 mapping add-attr \
mail \${givenName}@example.com 

まず、仮想属性として mail 属性を含み、givenName 属性を含まないエントリを追加します。仮想変換により、givenName 属性の値が生成され、エントリは givenName 属性とともに格納されますが、mail 属性は含まれていません。次に、uid 属性の使用時に検索を行いながら、givenName の値を取得すると、同じ仮想変換により、仮想属性 mail の値が生成されます。

次の図に、ユーザーエントリで発生する変換を示します。

仮想属性からエントリへの属性の追加

別の物理属性によって指定された属性の 2 つ目の仮想値の表示

次の変換を使用して、別の属性によって指定された属性の値を表示します。たとえば、uidcn として表示するときに、すでにエントリに格納されている cn の値も表示できます。次の場合は、cn に追加の値は格納されませんが、結果がクライアントに返される前に変換が適用されます。


$ dpconf add-virtual-transformation dataview1 read add-attr-value cn \${uid}

次の図に、検索で返されるユーザーエントリで発生する変換を示します。

別の属性によって指定された属性の値の表示

別の物理属性によって指定された属性への 2 つ目の値の格納

次の変換ルールを使用して、属性の値と、新しいエントリを追加するときに指定した値を格納します。このシナリオでは、エントリを追加すると、mail 属性の追加の値が格納されます。この変換は、新しいエントリを作成するときだけ適用されます。


$ dpconf add-virtual-transformation dataview1 write add-attr-value \
mail \${uid}@example.com

次の図に、追加要求で発生する変換を示します。

ある属性から別の属性への値の追加

属性の出力からの削除

属性を出力に表示しない場合は、次の変換ルールを使用します。たとえば、次の変換ルールを適用すると、givenName は出力に返されません。


dpconf add-virtual-transformation dataview1 read remove-attr givenName

次の図に、検索で返されるユーザーエントリで発生する変換を示します。

属性の出力からの削除

エントリの保存時の属性のマスキング

特定の属性を格納しない場合は、次の変換ルールを使用します。たとえば、次の変換ルールを適用すると、givenName 属性は物理データベースに格納されません。この変換は、新しいエントリを作成するときだけ適用されます。


$ dpconf add-virtual-transformation dataview1 write remove-attr givenName

次の図に、追加要求で発生する変換を示します。

エントリの保存時の属性のマスキング

属性のデフォルト値の表示

属性に割り当てられたデフォルト値を表示する場合は、次の変換を使用します。たとえば、次の変換を適用すると、それ自体の電話番号が含まれていないエントリのデフォルトの電話番号が表示されます。


$ dpconf add-virtual-transformation data-view read 11111 telephoneNumber default-number

次の図に、検索で返されるユーザーエントリで発生する変換を示します。

属性のデフォルト値の表示

属性へのデフォルト値の格納

デフォルト値は、エントリの作成時に属性の値が指定されない場合のみ格納されます。デフォルト値を持つ属性を格納する場合は、次の変換ルールを使用します。たとえば、次の変換を適用すると、作成するエントリごとにデフォルトの電話番号が追加されます。この変換は、エントリを追加するときだけ適用されます。


$ dpconf add-virtual-transformation dataview1 write 11111 \
telephoneNumber telephone-number

次の図に、追加要求で発生する変換を示します。

属性へのデフォルト値の追加