LDAP とは Lightweight Directory Access Protocol を意味し、"ディレ クトリ・サーバー" にアクセスするために使用されるプロトコルです。ディ レクトリとは、ツリー構造に情報を保持している特殊なデータベースのこ とです。
この概念は、ハードディスクのディレクトリ構造に似ています。 ただし、その内容は異なっており、ルートディレクトリは "世界" であり、 最初のレベルのサブディレクトリは "国" となります。ディレクトリ構造 の下位には、会社や機関、場所のエントリがあります。さらに下位には、 人やおそらく道具や文書に関するディレクトリエントリもあります。
ハードディスクにあるサブディレクトリにあるファイルを参照するには、 次のようにします。
/usr/local/myapp/docs
スラッシュは、リファレンスの各部分を区分し、解釈は左から右に行われます。
LDAP においてこの完全に正しいファイル参照に等価なものは "区分された名前(distinguished name)"であり、単に"dn"と表されます。 例として dn が次のようになっているとしましょう。
cn=John Smith,ou=Accounts,o=My Company,c=US
カンマは各部分を区分し、右から左に解釈されます。この dn は次のよう に解釈されます。
country = US
organization = My Company
organizationalUnit = Accounts
commonName = John Smith
ハードディスクのディレクトリ構造を管理する手法について明確な規約が ないのと同様に、ディレクトリサーバーマネージャーは、目的に適したあ らゆる構造を設定することが可能です。しかし、実用的にはいくつかの慣 習があります。 利用可能なものに関する情報を持たずにデータベースを使用する ことができないのと同様にディレクトリの構造に関する情報なくして ディレクトリサーバーにアクセスするコードを書くことはできない ということが言えます。
あるディレクトリサーバーから姓が "S" から始まる全てのエントリに 関する情報を検索し、名前と電子メールアドレスで検索結果を表示します。
ミシガン大の ldap-3.3 パッケージまたは Netscape Directory SDK 3.0 のどちらかから完全な LDAP クライアントライブラリを取得する必 要があります。また、PHP の LDAP コールを動作させるには、 PHP を LDAP サポートを有効にして再コンパイルする必要があります。
LDAP コールを使用する前に、以下のことを知っておいてください。
使用するディレクトリサーバーの名前またはアドレス
サーバーの "base dn" (このサーバーがあるワールドディレクトリ の部分で、"o=My Company,c=US" のようにすることができます)
サーバーへのアクセスにパスワードを必要とするかどうか。 (多くのサーバーは "匿名バインド" に関して読みこみを 許可するが、他の処理についてはパスワードを要求します)
アプリケーションとして作成する LDAP コールのシーケンスは、 通常、次のようなパターンに沿っています。
ldap_connect() // サーバーへの接続を確立
|
ldap_bind() // 匿名または認証された "ログイン"
|
ディレクトリの検索または更新等を行い、結果を表示する
|
ldap_close() // "ログアウト"