Red Hat Training

A Red Hat training course is available for Red Hat Directory Server

4.4. 仮想ディレクトリー情報ツリービュー

Directory Server は、仮想ディレクトリー情報ツリービュー あるいは 仮想 DIT ビュー と呼ばれる、ディレクトリー情報の階層ナビゲーションと組織の概念をサポートします。
注記
ビューが返すエントリーが同じバックエンドに存在しなければならないないという点で、仮想ビューは、複数のバックエンドと完全に互換性があるわけではありません。検索は 1 つのバックエンドに限定されます。

4.4.1. 仮想 DIT ビューについて

ディレクトリーの名前空間を設定するには 2 つの方法があります。
  • 階層構造のディレクトリー情報ツリー。
  • フラットなディレクトリー情報ツリー。
階層構造の DIT は、ディレクトリーのナビゲーションに便利ですが、変更するのは面倒で時間がかかります。階層構造の DIT への大規模な組織変更は、通常、かなりのサービスの中断を伴うため、費用と時間のかかる作業になります。通常、営業時間外やトラフィックの少ない時間帯に変更を行うことでしか、このデメリットを最小限に抑えることはできません。
フラットな DIT は、ほとんど変更を必要としませんが、ディレクトリーサービス内でエントリーをナビゲーションしたり、管理するための便利な方法を提供しません。また、フラットな DIT は、自然な階層構造のグルーピングを持たないことにより管理が複雑になるため、多くの管理上の課題があります。

図4.14 フラットな DIT と組織ベースの DIT の例

フラットな DIT と組織ベースの DIT の例
階層構造の DIT を使用する場合、デプロイメントは階層のサブジェクトドメインを決定する必要があります。選択肢は 1 つしかなく、自然な傾向は、組織の階層を選択することです。
組織のこのビューは多くの場合に適しますが、1 つのビューしかないことが、ディレクトリーのナビゲーションや管理に対する大きな制約となります。例えば、経理部門の人に属するエントリーを探すには、組織の階層が適しています。しかし、この表示では、Mountain View, California のような地理的な場所にいる人に属するエントリーを探すのにはあまり役に立ちません。2 番目のクエリーも 1 番目のクエリーと同様に有効ですが、エントリーに含まれる属性の知識と追加の検索ツールが必要になります。このような場合、DITを使ってナビゲーションを行うことは適切ではありません。
同様に、DIT が管理機能の要件に合致していれば、ディレクトリーの管理は非常に容易になります。また、DIT の構成は、レプリケーションやマイグレーションへの考慮など、他の要因にも影響されます。これらにより DIT がこれらのアプリケーションの機能ユーティリティーを持ちますが、他のケースでは実用性がほとんどないということもあります。
明らかに、階層はナビゲーションと管理のための便利なメカニズムです。しかし、既存の DIT に変更を加える際の負担を回避するために、デプロイメントではフラットな DIT のメリットにより階層をすべて廃止する選択も可能です。
もし、ディレクトリーが、対象となるエントリーを移動させることなくエントリーにマッピングされる階層を任意の数作成する方法を提供する場合は、デプロイメントにとって有用になるでしょう。Directory Server の 仮想 DIT ビュー 機能は、ディレクトリーのデプロイメントに使用する DIT の種類を決定する際の迷いを解消します。
仮想 DIT ビュー では、エントリーが特定の場所に物理的に存在していなくても、それらのエントリーを階層的にナビゲートすることができます。仮想 DIT ビューは、エントリーの情報を使用してビュー階層に置きます。クライアントアプリケーションでは、仮想 DIT ビューは通常のコンテナ階層として表示されます。ある意味、仮想 DIT ビューは、エントリーがフラットな名前空間にあるか、独自の別の階層にあるかに関わらず、DIT 階層をそれらのエントリーのセットに重ね合わせます。
通常の DIT 階層と同じように、仮想 DIT ビュー階層を作成します。同じエントリー (例えば、組織単位のエントリー) を作成します。ただし、追加のオブジェクトクラス (nsview) およびビューを記述するフィルター属性 (nsviewfilter) を追加します。追加属性の追加後、ビューフィルターにマッチするエントリーが即座にビューを反映させます。対象となるエントリーは、ビューの中に存在している ように見える だけで、実際の場所は変わりません。仮想 DIT ビューは、サブツリーまたは 1 レベルの検索が、想定された結果で返されることで、通常の DIT と同様に動作します。
エントリーの追加および修正については、『Red Hat Directory Server Administration Guide』の「Creating Directory Entries」を参照してください。

図4.15 ビューを使った DIT の組み合わせ

ビューを使った DIT の組み合わせ
図4.15「ビューを使った DIT の組み合わせ」の DITは、図4.14「フラットな DIT と組織ベースの DIT の例」で示した 2 つの DIT がビューを使って組み合わされたときの様子を示しています。ビューは本来、エントリーがビュー階層の複数の場所に表示されることを許可するので、この機能を使って ou=Sales エントリーを拡張し、営業部門のエントリーを場所別または製品別に表示することが可能です。
仮想 DIT ビュー階層のセットが与えられた場合、ディレクトリーユーザーは、必要なエントリーにナビゲートするのに最も適したビューを使用することができます。たとえば、対象のエントリーが Mountain View に住んでいる人であれば、場所ベースの情報を利用したナビゲーションにより始まるビューが最適です。組織的な質問であれば、組織ビューの方が適しているでしょう。この 2 つのビューは、同時に Directory Server に存在し、同じエントリーに対して操作を行いますが、それぞれのビューはディレクトリー構造のバージョンを表示する際の目的が異なります。
図4.15「ビューを使った DIT の組み合わせ」のビュー対応ディレクトリーのエントリーは、階層内の最上位ビューの親のすぐ下にあるフラットな名前空間に含まれています。これは必須ではありません。エントリーはそれ専用の階層に存在することができます。エントリーの配置に関してビューが持つ唯一の懸念は、ビュー階層の親の子孫でなければならないということです。

図4.16 仮想 DIT ビュー階層を含む DIT

仮想 DIT ビュー階層を含む DIT
  • サブツリー ou=People には、実際の エントリー Aエントリー B のエントリが含まれています。
  • サブツリー ou=Location Views は、ビュー階層です。
  • リーフノード ou=Sunnyvaleou=Mountain View には、それぞれビューを説明する nsviewfilter という属性が含まれます。
    実際のエントリーを含まないため、これらはリーフノードです。しかし、クライアントアプリケーションがこれらのビューを検索すると、エントリー Aou=Sunnyvale の下に、エントリー Bou=Mountain View の下に見つかります。この仮想検索空間は、すべての祖先のビューの nsviewfilter 属性によって記述されます。ビューからの検索では、仮想検索空間からのエントリーと実際の検索空間からのエントリーの両方が返されます。これにより、ビュー階層を従来の DIT として機能させたり、従来の DIT をビュー階層に変更したりすることができます。