ディレクトリ調査


 
目次
 

目的

設計手順 DIT構造の設計 エントリ設計

参考

問題点

結論

Return to Directory Page
 

目的

    ディレクトリをRDBのように利用するための検討事項とディレクトリ設計を行う方法の検討を行う。

     

設計手順


 
    システム化する情報をディレクトリ情報ツリー(DIT)で表現する。設計指針としては、月並みだが、ディレクトリの上位階層(ルート)から下の階層に向かって、大分類から小分類に分類していくのがよいと思われる。また、一般にディレクトリサーバは全世界にむけた分散システム(DNSのような仕組み)を指向しているため、世界的に決められているDIT構造に準拠するのが妥当と思われる(ex.上位ディレクトリから国→組織→組織単位→人という様な形が一般的である)。

    ☆成果物:DIT定義書

     

    エントリ設計  

    1. 各ディレクトリの構成要素となるエントリ(ディレクトリにその情報を管理されている実世界のものであるオブジェクトに関する情報の集まりのこと)を抽出する。
    2. 次に上記で抽出したエントリは、そのエントリに対応するオブジェクトに関する個々の情報を表した属性の集合として構成されるので、エントリに含まれる属性を抽出する。
    3. 上記a.b.の結果からエントリに必要な属性から、エントリに対してオブジェクトクラスを割り当てる。
     
    クラス、識別名、属性の概念図
     
    1. ディレクトリに保持する情報が抽出できた所で、それら(エントリ、属性)をディレクトリに識別名として割り当てる。この際の命名規則はX.520等を参照し、既存の属性型が定義されているものは極力それを使用する。同様にオブジェクトクラスについても定義を行う。(識別名はデータの枠を提供するが、エントリは識別名の中に入るデータの実体である。)

    ☆成果物:オブジェクトクラス定義書、属性型定義書、エントリ設計書

     

参考

ディレクトリ設計が未知数であるため、簡易的にディレクトリサーバを構築し、ディレクトリを構築してみた。RDBを使用して表現できるスキーマ構造をディレクトリに構築可能かどうかをチェックポイントとした。
 
  • 試験環境
  • FreeBSD 2.2 上にフリーのディレクトリサーバ(slapd)を使用し、ディレクトリ操作用のクライアントととしては、同サーバの付属ユーティリティldapsearch、ldapadd等を使用してスキーマ構築を行ってみた。
  • 注意
  • 当実験は、RDBで表現できるスキーマ構造をディレクトリ上で実現可能かどうかを調査するためであって、ディレクトリサーバ本来の性能、LDAP APIの機能等の調査は何らおこなっていないので注意されたい。また、セキュリティに関する機能等の調査も同様に行っていないので、同様に注意されたい。
    また当然のことながら、実装する製品によって実現できる機能、方法が異なるため、あくまでも一般論として、捉えて頂きたい。
  • 調査モデル
  • DOA等の手法で導出されたサブジェクトエリアのERモデルを元に、ディレクトリの 表現に必要と思われる代表的なデータ型の実現手段を検討した。
     

    1. 1対多
     
    図:一つの法人が複数の営業所を持つ場合の例
     
    1. 多対多
     
     
     
    1. 再帰型
       
    1. 外部参照
    2. ここでは、RDBにおけるForeign Key制約と同等の機能の実現性を考えてみる。

    1. 入力必須項目
       
    1. 一意制約
    2. RDBでいうPRIMARY KEY指定に近いものだが、ディレクトリではKeyという言葉は使わ れていない。ディレクトリは、単にエントリ(DN)の一意性をチェックしているため、既に 存在するエントリを追加することはできなかった。尚、一意とみなすチェックルールは 未調査であるため、厳密な一意性がどの程度なのかは不明である。

    1. 索引
    1. データのメンテナンス

     

    問題点

    結論

    ディレクトリに関する調査を実施し、今後の方向性を示してみると下記のようになる。
     
  • 理想的なディレクトリ構成
  • 調査の結果からは、ディレクトリには認証に必要な最低限の情報を保持するのがよいと思われる。ディレクトリ構成も下記の図の様な形で表現でき、属性間に複雑なリンク関係がない程度に範囲を限定するとよいと思われる。

      
    図.理想的なディレクトリ構成
     
    一般文献によると、ディレクトリサービスは全世界向けの分散ディレクトリを構築するのが主目的と思われる。商用RDBを使用した固有の業務に利用できる情報の蓄積とは異なり、Internet等を円滑に利用するためのものであると認識している。その性質上、オープン性が重要視されるため、ディレクトリ構成自体を標準的な構成にするのが一般的である。業務にあったディレクトリ構成を構築するのは可能ではあるが、それをDBとして利用するには無理があるのではないかと思われる。 また、それでもDBの様に利用するのであれば、実装想定機種で、ディレクトリをプロトタイピングし、実現可能性について再調査が必要と思われる。  
    以 上

    Return to Top