# Lightweight Directory Access Protocol

# はじめに

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

ハードディスクのディレクトリ構造を管理する手法について明確な規約が ないのと同様に、ディレクトリサーバーマネージャーは、目的に適した あらゆる構造を設定することが可能です。しかし、実用的にはいくつかの 慣習があります。 利用可能なものに関する情報を持たずにデータベースを使用することが できないのと同様、ディレクトリの構造に関する情報なくして ディレクトリサーバーにアクセスするコードを書くことはできない ということが言えます。

LDAP に関する多くの情報が以下の場所にあります。

- » Mozilla

- » OpenLDAP Project

- Internet Engineering Taskforce RFCs » 4510 から » 4519

Netscape SDK では、有用な » プログラマーズガイド が HTML 形式で公開されています。

- インストール/設定
  - 要件
  - インストール手順
  - 実行時設定
  - リソース型
- 定義済み定数
- PHP LDAP コールの使用法
- LDAP コントロール
- 例
  - 基本的な使用法
  - LDAP コントロール
- LDAP 関数
  - ldap_8859_to_t61 — 8859 文字を t61 文字に変換する
  - ldap_add — LDAP ディレクトリにエントリを付加する
  - ldap_add_ext — LDAP ディレクトリにエントリを付加する
  - ldap_bind — LDAP ディレクトリにバインドする
  - ldap_bind_ext — LDAP ディレクトリにバインドする
  - ldap_close — ldap_unbind のエイリアス
  - ldap_compare — 指定した DN のエントリで見付かった属性の値を比較する
  - ldap_connect — LDAP サーバーへ接続する
  - ldap_connect_wallet — LDAP サーバーに接続する
  - ldap_control_paged_result — LDAP ページネーション制御情報を送信する
  - ldap_control_paged_result_response — LDAP ページネーションクッキーを取得する
  - ldap_count_entries — 検索結果のエントリ数を数える
  - ldap_count_references — 検索結果に含まれる参照数を数える
  - ldap_delete — ディレクトリからエントリを削除する
  - ldap_delete_ext — ディレクトリからエントリを削除する
  - ldap_dn2ufn — DN をユーザーに分かりやすい名前のフォーマットに変換する
  - ldap_err2str — LDAP のエラー番号をエラーメッセージ文字列に変換する
  - ldap_errno — 直近の LDAP コマンドの LDAP エラー番号を返す
  - ldap_error — 直近の LDAP コマンドの LDAP エラーメッセージを返す
  - ldap_escape — LDAP フィルタまたは DN で使われる文字列をエスケープする
  - ldap_exop — 拡張されたオペレーションを実行する
  - ldap_exop_passwd — PASSWD 拡張オペレーションのヘルパ
  - ldap_exop_refresh — Refresh 拡張操作のヘルパ
  - ldap_exop_sync — 拡張されたオペレーションを実行する
  - ldap_exop_whoami — WHOAMI 拡張オペレーションのヘルパ
  - ldap_explode_dn — DN を構成要素ごとに分割する
  - ldap_first_attribute — 最初の属性を返す
  - ldap_first_entry — 最初の結果 ID を返す
  - ldap_first_reference — 最初のリファレンスを返す
  - ldap_free_result — 結果メモリを開放する
  - ldap_get_attributes — 検索結果エントリから属性を得る
  - ldap_get_dn — 結果エントリから DN を得る
  - ldap_get_entries — 全ての結果エントリを得る
  - ldap_get_option — 指定したオプションの現在の値を得る
  - ldap_get_values — 結果エントリから全ての値を得る
  - ldap_get_values_len — 結果エントリから全てのバイナリ値を得る
  - ldap_list — 単一階層の検索を行う
  - ldap_mod_add — 現在の属性に属性を追加する
  - ldap_mod_add_ext — 現在の属性に属性を追加する
  - ldap_mod_del — 現在の属性から属性を削除する
  - ldap_mod_del_ext — 現在の属性から属性を削除する
  - ldap_mod_replace — 属性を新規の値に置換する
  - ldap_mod_replace_ext — 属性を新規の値に置換する
  - ldap_modify — ldap_mod_replace のエイリアス
  - ldap_modify_batch — LDAP エントリの変更をまとめて実行する
  - ldap_next_attribute — 結果における次の属性を得る
  - ldap_next_entry — 次の結果エントリを得る
  - ldap_next_reference — 次のリファレンスを得る
  - ldap_parse_exop — LDAP拡張オペレーションの結果オブジェクトをパースする
  - ldap_parse_reference — 参照エントリから情報を展開する
  - ldap_parse_result — 結果から情報を展開する
  - ldap_read — エントリを読み込む
  - ldap_rename — エントリ名を修正する
  - ldap_rename_ext — エントリ名を修正する
  - ldap_sasl_bind — SASL を使用して LDAP ディレクトリにバインドする
  - ldap_search — LDAP ツリーを探索する
  - ldap_set_option — 指定したオプションの値を設定する
  - ldap_set_rebind_proc — 参照先を再バインドするためのコールバック関数を設定する
  - ldap_sort — LDAP 結果エントリをクライアント側でソートする
  - ldap_start_tls — TLS を開始する
  - ldap_t61_to_8859 — t61 文字を 8859 文字に変換する
  - ldap_unbind — LDAP ディレクトリへのバインドを解除する
- LDAP\Connection — LDAP\Connection クラス
- LDAP\Result — LDAP\Result クラス
- LDAP\ResultEntry — LDAP\ResultEntry クラス

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open