LDAPでldapsearchを使うにはどうすればいいですか
ldapsearchはLDAPディレクトリで検索操作を実行するコマンドラインツールです。指定された検索フィルタや検索スコープに従ってLDAPディレクトリから特定のエントリを検索して取得できます。
基本的な使い方は次のとおりです。
ldapsearch [オプション] [検索フィルタ] [検索範囲] [取得したい属性]
一般的な選択肢としては、以下があります:
- 簡素な認証機能を使用して紐付ける
- 指定バインド用のユーザーDN
- W:アカウントの紐付けに利用するパスワードを入力してください
- h:LDAP サーバのホスト名または IP アドレスを指定します。
- LDAPサーバのポート番号を指定
- 最上位ノードを指定して検索を開始する
- 検索範囲(base、one、sub)を指定
検索フィルターは検索条件を指定する式であり、必要に応じて結合してネストできます。一般的な検索フィルターには次のようなものがあります。
- objectClass=…:オブジェクトクラスで検索する、例えばユーザー(objectClass=person)やグループ(objectClass=group)
- 属性値による検索(例:メールアドレス(mail=xxx@xxx.com))
- 複数のフィルタの論理AND演算:(&(filter1)(filter2))
- (|(フィルタ1)(フィルタ2)):複数のフィルタの論理和演算
検索範囲はbase(現在のノードのみ検索)、one(現在のノードの直下のみ検索)、sub(子孫ノードすべて再帰的に検索)に指定できます。
LDAP エントリの返答時に返答する属性のリストを示す、戻り特性を与えます。
たとえば、LDAP ディレクトリ内の全ユーザの氏名とメールアドレスを検索する場合は、次のように指定します。
ldapsearch -x -D “cn=admin,dc=example,dc=com” -W -h ldap.example.com -p 389 -b “ou=users,dc=example,dc=com” -LLL
簡単な認証を用いて LDAP サーバーにバインドし、管理者ユーザーの DN とパスワードを指定して、”ou=users,dc=example,dc=com” ノードの下にあるオブジェクトクラスが “person” のすべてのエントリを検索し、名前とメールアドレス属性を返します。