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