Lightweight Directory Access Protocol (LDAP) について
Lightweight Directory Access Protocol(LDAP:エルダップ)は、
ディレクトリサービスに接続するために使用される
通信プロトコルの一つです。
ディレクトリサービスとは、ネットワーク上のユーザー、コンピュータ、その他のリソースに関する情報を一元的に管理する仕組みです。LDAPは、この
ディレクトリサービスへのアクセスを効率化し、様々なアプリケーションでの利用を可能にします。
LDAPの概要
LDAPは、ITU勧告X.500モデルをサポートする
ディレクトリへのアクセスを提供するために設計されました。X.500は、大規模な分散
ディレクトリサービスを構築するための国際標準規格です。LDAPは、このX.500の
ディレクトリサービスにアクセスするためのプロトコルであるDAP(Directory Access Protocol)を軽量化したものです。DAPは複雑で処理が重いため、TCP/IPネットワークでの利用には適していませんでした。LDAPは、DAPの持つ機能を必要最小限に絞り込み、TCP/IP上で効率的に動作するように設計されています。
LDAPの主な目的は、
ディレクトリに対する対話的な読み込み/書き込み(read/write)アクセスを、管理アプリケーションやブラウザアプリケーションに提供することです。これにより、ユーザーは
ディレクトリに格納された情報を参照したり、更新したりすることが容易になります。
LDAPの歴史
コンピュータネットワークの規模が拡大するにつれて、ネットワークリソースの管理がますます重要になってきました。従来の
ディレクトリサービスは、それぞれ異なるプロトコルを使用していたため、情報の取得や更新が煩雑でした。そこで、統一されたプロトコルで拡張可能な情報にアクセスする方法が求められるようになり、X.500シリーズが開発されました。
X.500は優れた分散統合案内サービスでしたが、DAPの複雑さがネックとなり、TCP/IPベースの
インターネット環境では使いにくいという問題がありました。そこで、「X.500の90%の機能を10%のコストで実現する」というコンセプトのもと、DAPの問題点を洗い出し、再設計が行われたLDAPv2がIETFによってRFC1777として標準化されました。
LDAPv2では、LDAPサーバはX.500のフロントエンドとして機能し、分散化はX.500が担っていました。その後、分散化をさらに進めたLDAPv2+、国際化やセキュリティを強化したLDAPv3(RFC2251)へと進化を遂げています。
LDAPの処理系は、
OpenLDAPをはじめとして、オープンソースで提供されているものや各種の商用製品が存在します。
LDAPとX.500の違い
LDAPはX.500のDAPを軽量化したものですが、X.500ではDAP以外にもDSP, DOP, DISPといったプロトコルが規定されています。これらのプロトコルは、LDAPには存在しません。
以下に、X.500関連のプロトコルと、その役割を示します。
DUA (Directory User Agent):ディレクトリの利用者に代わってディレクトリにアクセスする機能(プログラムやコマンド、ライブラリ)
DSA (Directory Service Agent):
ディレクトリ情報を管理する個々のシステム。
ディレクトリはDSAの集合体として構成されます。
DAP (Directory Access Protocol):DSAがDUAに対してディレクトリサービスを提供するためのプロトコル
DSP (Directory System Protocol):DSA間で分散協調動作(連鎖や紹介)を行うためのプロトコル
DOP (Directory Operational binding management Protocol):ディレクトリ運用結合管理プロトコル。DSA間の運用結合の規定内容や状態の交換に用いられるプロトコル
DISP (Directory Information Shadowing Protocol):DSA間で複製情報を交換するためのプロトコル
X.500のDAPはOSI各層の標準プロトコルを使用しますが、LDAPはTCP/IPの上に実装されるため、DAPにあるROSE、RTSE、ACSEを実装していません。これらの機能はTCP/IPで実装されているため、LDAPでは不要です。
ROSE (Remote Operation Service Element):遠隔操作サービス要素、処理の依頼と結果の通知という通信メカニズムを実現するプロトコル要素
RTSE (Reliable Transfer Service Element):高信頼転送サービス要素、通信経路障害などによって情報の欠落や重複が起きないようにするプロトコル要素
ACSE (Association Control Service Element):アソシエーション制御サービス要素、コネクションの確立、正常開放、異常解放を行うサービス要素
代表的なLDAP実装
LDAPは、様々な製品やサービスで利用されています。以下に代表的なLDAP実装の例を挙げます。
NetIQ eDirectory (NetIQ)
Oracle Internet Directory(オラクル)
Sun Java System Directory Server(
サン・マイクロシステムズ)
Sun OpenDS(サン・マイクロシステムズ)
StarDirectory(
日本電気)
389 Directory Server(レッドハット)
InfoDirectory(
富士通)
Sendmail Directory Server
OpenLDAP
Tivoli Directory Server (IBM)
Active Directory(
マイクロソフト)
* Apache Directory Server
これらの製品やサービスは、様々なプラットフォームやアプリケーションで利用されており、企業のITインフラストラクチャを支える重要な要素となっています。
まとめ
LDAPは、
ディレクトリサービスへのアクセスを効率化するための重要なプロトコルです。X.500のDAPを軽量化し、TCP/IP上で動作することで、幅広い環境で利用できるようになりました。現代のIT環境において、LDAPはユーザー管理、認証、リソース管理など、さまざまな用途で活用されています。