LDAPとは何をするもの?
はじめに
皆さんはLDAP(Lightweight Directory Access Protocol)という言葉をご存知でしょうか。
ここ数年で、LDAPを実装したサーバソフトウェアの知名度は上がってきていますので、ご存知の方も多いかもしれません。
例えば、Microsoft社のActive DirectoryやSun Microsystems社のSunONE Directory Server、Red Hat社のRed Hat Directory Server、そして本連載で取り扱うOpenLDAPなどが代表的なLDAPを実装したソフトウェアです。しかし、これらのソフトウェア名を知っていても、実際にどんなことができるのか、というところまでご存知の方はまだまだ少ないのではないでしょうか。
本連載では、LDAPの概要からOpenLDAPのインストール、設定、アプリケーションとの連携などを通し、LDAPとはどういうもので、どういうことができるのかを、順に説明していきます。
ディレクトリサービスって何?
ではLDAPとは何なのでしょうか。Lightweight Directory Access Protocolという名前からわかるようにディレクトリデータベースへアクセスするためのプロトコルです。
いってしまえば、「ディレクトリサービスへとアクセスするためのプロトコル」なのです。
ディレクトリサービスとは、ネットワークを利用するユーザ名やマシン名などの様々な情報を管理するためのサービスのことで、ユーザ名などのキーとなる値から様々な情報を検索することが可能です。ディレクトリサービスは、ローカルに限ってサービスを提供する場合もありますが、グローバルにサービスを提供する場合もあります。
グローバルでサービスを提供する場合には、大抵分散型のディレクトリサービスが用いられ、DNS(Domain Name Syetem)が分散型のディレクトリサービスとして有名です。
ディレクトリサービスは特殊なデータベースを用いるため、一般的なデータベースとは異なった特徴を持っています。
ディレクトリサービスの特徴
- 読み取りが高速
- 分散型の情報格納モデル
- 高度な検索機能を持つ
ディレクトリサービスの場合では、データベースのように読み取りと書き込みが同じ頻度で発生することはありません。読み取りは頻繁に発生するが、書き込みはほとんど発生しないことがほとんどであり、こういった思想を元に最適化されているのです。
例えばDNSの場合ですと、ゾーンファイルやnamed.confへの書き込みよりも、名前解決の読み取りの方がはるかに多く発生します。グローバルでサービスを提供する場合も、ローカルでサービスを提供する場合も基本的な特徴は同じです。また、LDAPにはデータの冗長性を排除する(情報ソースの一元化)という大きな特徴があります。
ゾーンファイル
IPアドレスとホスト名をマッピングするファイル