この特集のトップページへ

Directory first step 4... ディレクトリサービスを支えるテクノロジ群
sankaku.gif X.500シリーズ

 「X.500」というシリーズは,ディレクトリの構造を説明するときに,必ず登場する勧告である。データ通信網,特にメッセージ通信網(MHS網)におけるディレクトリ機能を中心に標準化することを目指してITU-T(国際電気通信連合の電気通信標準化部門)が1988年に勧告したものであり,本稿の執筆時点で市場に出荷されているほとんどのディレクトリ製品はX.500シリーズをもとに実装されている。

 このX.500シリーズは,次の8つの勧告から構成されている。

Table 1 X.500シリーズを構成する勧告
勧告番号 規定内容
X.500 ディレクトリの概説
X.501 ディレクトリのモデル
X.509 認証
X.511 抽象サービス
X.518 分散操作
X.519 プロトコル
X.520 属性
X.521 オブジェクトクラス

sankaku2.gif 情報モデル

 X.500の勧告は,「ディレクトリモデル」を,「機能モデル」,「組織モデル」,「安全保護モデル」,「情報モデル」という4つの異なる観点から定義している。

 ○機能モデル
 ディレクトリサービスを提供するための機能を,ディレクトリシステムエージェント(DSA)とディレクトリユーザーエージェント(DUA)に分割してモデル化し,そのインタフェースを説明している。
 ○組織モデル
 ディレクトリを複数の管理組織に分割して管理している場合のモデルを説明している。
 ○安全保護モデル
 ディレクトリに管理されている情報の機密保持についての方針が説明されている。
 ○情報モデル
 ディレクトリに格納される情報の構造と,情報をディレクトリに格納する方法を規定している。

 このうち,ディレクトリについて理解するうえで重要なのが,情報モデルである。情報モデルによると,ディレクトリに格納される情報の基本単位は「オブジェクト」であり,「オブジェクト」は,コンピュータ,ユーザー,プロセスなど,情報提供の対象となる現実世界の「事物」に相当する。「オブジェクト」になることができるものは,通信相手となることができ,かつ名前によって識別できるものに限られる。

 「オブジェクト」は,それ自身を特徴付けるいくつかの情報を備えている。そのような個々の情報は「属性」と呼ばれ,「属性」は型(属性型)と値(属性値)で構成される。たとえば,ユーザーオブジェクトであれば,ユーザー名,住所,電話番号など,さまざまな属性を備えることになる。

 オブジェクトに関連する属性の集合を,「エントリ」または「ディレクトリエントリ」と呼び,「オブジェクト名=値」として表現される。「エントリ」は,DIT(Directory Information Tree)と呼ばれるツリー構造で管理される。

 また,ディレクトリ中の情報全体を格納するディレクトリデータベースを,「ディレクトリ情報ベース(DIB:Directory Information Base)」と呼ぶ。

注意 Active DirectoryやNDSでは,属性を「プロパティ」,ディレクトリエントリを「コンテナオブジェクト」,ディレクトリの末端に位置する「葉」となるユーザーやコンピュータなどのディレクトリエントリを「リーフオブジェクト」と表現する。このようなディレクトリ情報はディレクトリデータベースに格納されており,ディレクトリデータベースを提供しているディレクトリサーバーのことを,Active Directoryでは「ドメインコントローラ」,NDSでは「レプリカ」と呼ぶ。

Fig.6 X.500の情報モデル
fig06.gif

sankaku2.gif 識別名

 DIBに格納され,情報提供の対象となるオブジェクト(または各オブジェクトに対応するエントリ)には,それを識別する名前が割り当てられている。しかし,ユーザーオブジェクトのような場合には,この名前が重複する可能性がある。もし名前が重複してしまうと,ディレクトリサービスの利用者は目的の情報を正しく取得できなくなってしまう。目的の情報を正しく取得するためには,オブジェクトの名前はディレクトリ内で一意でなければならない。

 X.500では,エントリ(オブジェクト)を一意に識別するために「識別名」を用いる。識別名とは,エントリが存在するツリー構造中の位置を,ツリー構造に沿って記述したもので,そのエントリの上位エントリの識別名に当該エントリの相対識別名(Relative Distinglished Name)を加えたものである。たとえば,Fig.7に示すディレクトリにおいて,ユーザーである「山田弘」の情報を検索する場合には,その識別名として{C=JP,O=xy商事,OU=経理部,CN=山田弘}を指定する(Windowsなどでファイル名を指定する場合の絶対パス名と考えるとわかりやすいだろう)。そして,識別名を構成する各要素(C=JP,O=xy商事,OU=経理部,CN=山田弘)が,相対識別名である。いい換えれば,識別名は相対識別名の配列で表現される。

 このように,相対識別名が重複することはあっても,識別名で示すことにより,ディレクトリ内のオブジェクトを一意に識別することができるようになっている。

Fig.7 識別名と相対識別名
fig07.gif

 なお,ディレクトリ中のエントリには,識別名とは別に,別名(Alias)を割り当てることもできるが,ここでは詳しく説明しない。

sankaku2.gif X.500にかかわるRFC

 インターネット技術の標準化団体であるIETFは,X.500をインターネット上で利用するために,さまざまな規格を策定し,提唱している。Table 2に,X.500にかかわるRFCを示す。

Table 2 X.500にかかわるRFC
RFC番号 規定内容
RFC1309 X.500プロトコルをディレクトリサービスの概要
RFC1373 ディレクトリユーザエージェント
RFC1430 インターネットX.500ディレクトリサービス展開のための戦略
RFC1431 ディレクトリユーザエージェントのメトリックス
RFC1491 X.500の活用事例
RFC1562 AARNet X.500ディレクトリサービスのネーミングガイド
RFC1564 ディレクトリサービスエージェントのメトリックス
RFC1608 X.500ディレクトリにおけるIP情報
RFC1609 X.500ディレクトリのネットワーク接続モデル
RFC1617 X.500ディレクトリパイロットのネーミングと構造に関するガイドライン
RFC1684 X.500に基づくホワイトページの導入
RFC1781 OSIディレクトリを利用したユーザフレンドリなネーミング

注意 RFCの詳細については,IETFのWebサイトを参照してほしい

prevpg.gif Directory first step(前編) 15/21 nextpg.gif