Directory first step 4... ディレクトリサービスを支えるテクノロジ群
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 | オブジェクトクラス |
情報モデル
X.500の勧告は,「ディレクトリモデル」を,「機能モデル」,「組織モデル」,「安全保護モデル」,「情報モデル」という4つの異なる観点から定義している。
- ○機能モデル
- ディレクトリサービスを提供するための機能を,ディレクトリシステムエージェント(DSA)とディレクトリユーザーエージェント(DUA)に分割してモデル化し,そのインタフェースを説明している。
- ○組織モデル
- ディレクトリを複数の管理組織に分割して管理している場合のモデルを説明している。
- ○安全保護モデル
- ディレクトリに管理されている情報の機密保持についての方針が説明されている。
- ○情報モデル
- ディレクトリに格納される情報の構造と,情報をディレクトリに格納する方法を規定している。
このうち,ディレクトリについて理解するうえで重要なのが,情報モデルである。情報モデルによると,ディレクトリに格納される情報の基本単位は「オブジェクト」であり,「オブジェクト」は,コンピュータ,ユーザー,プロセスなど,情報提供の対象となる現実世界の「事物」に相当する。「オブジェクト」になることができるものは,通信相手となることができ,かつ名前によって識別できるものに限られる。
「オブジェクト」は,それ自身を特徴付けるいくつかの情報を備えている。そのような個々の情報は「属性」と呼ばれ,「属性」は型(属性型)と値(属性値)で構成される。たとえば,ユーザーオブジェクトであれば,ユーザー名,住所,電話番号など,さまざまな属性を備えることになる。
オブジェクトに関連する属性の集合を,「エントリ」または「ディレクトリエントリ」と呼び,「オブジェクト名=値」として表現される。「エントリ」は,DIT(Directory Information Tree)と呼ばれるツリー構造で管理される。
また,ディレクトリ中の情報全体を格納するディレクトリデータベースを,「ディレクトリ情報ベース(DIB:Directory Information Base)」と呼ぶ。
Active DirectoryやNDSでは,属性を「プロパティ」,ディレクトリエントリを「コンテナオブジェクト」,ディレクトリの末端に位置する「葉」となるユーザーやコンピュータなどのディレクトリエントリを「リーフオブジェクト」と表現する。このようなディレクトリ情報はディレクトリデータベースに格納されており,ディレクトリデータベースを提供しているディレクトリサーバーのことを,Active Directoryでは「ドメインコントローラ」,NDSでは「レプリカ」と呼ぶ。
Fig.6 X.500の情報モデル
識別名
DIBに格納され,情報提供の対象となるオブジェクト(または各オブジェクトに対応するエントリ)には,それを識別する名前が割り当てられている。しかし,ユーザーオブジェクトのような場合には,この名前が重複する可能性がある。もし名前が重複してしまうと,ディレクトリサービスの利用者は目的の情報を正しく取得できなくなってしまう。目的の情報を正しく取得するためには,オブジェクトの名前はディレクトリ内で一意でなければならない。
X.500では,エントリ(オブジェクト)を一意に識別するために「識別名」を用いる。識別名とは,エントリが存在するツリー構造中の位置を,ツリー構造に沿って記述したもので,そのエントリの上位エントリの識別名に当該エントリの相対識別名(Relative Distinglished Name)を加えたものである。たとえば,Fig.7に示すディレクトリにおいて,ユーザーである「山田弘」の情報を検索する場合には,その識別名として{C=JP,O=xy商事,OU=経理部,CN=山田弘}を指定する(Windowsなどでファイル名を指定する場合の絶対パス名と考えるとわかりやすいだろう)。そして,識別名を構成する各要素(C=JP,O=xy商事,OU=経理部,CN=山田弘)が,相対識別名である。いい換えれば,識別名は相対識別名の配列で表現される。
このように,相対識別名が重複することはあっても,識別名で示すことにより,ディレクトリ内のオブジェクトを一意に識別することができるようになっている。
Fig.7 識別名と相対識別名
なお,ディレクトリ中のエントリには,識別名とは別に,別名(Alias)を割り当てることもできるが,ここでは詳しく説明しない。
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サイトを参照してほしい。
Directory first step(前編) 15/21 |