ldapsearchで1000件を越えるデータを取得する
[履歴] [最終更新] (2016/01/09 14:16:16)

概要

従業員情報などが格納されているサーバがLDAP (Lightweight Directory Access Protocol) というプロトコルに対応していれば、クライアントPCはLDAPで対話できるソフトウェアを用いてその情報を取得できます。LDAPの実装には様々なものがあり、OpenLDAPはその代表的な実装です。WindowsでOpenLDAPをインストールするためにはCygwinを利用すると簡単だと思います。OpenLDAPをインストールすると様々なコマンドが使用できるようになり、特に ldapsearch というコマンドはLDAPサーバから情報をLDIF (LDAP Data Interchange Format) というフォーマットで取得するために利用します。なお、LDIFの解析処理を自作する際にはbase64デコーディングなどに注意します。その手間を考えると、Rubyを利用していてかつgemが利用できる場合は、ldapsearchは使用せずにnet-ldapをインストールして利用した方がよいかもしれません。

$ gem install net-ldap

使用方法はこちらを参照。

1000件を越えるデータを取得する

デフォルトのフィルタ (objectClass=*) でリクエストを行うと大量のレコードがヒットし、OpenLDAPで規定される一度に取得可能な最大件数1000を越えてしまうことがあります。そのような時の対応方法としては、

-E pr=1000/noprompt

というオプションを付与します。これは、1000件のデータ取得を確認なし (noprompt) で繰り返し実行するためのオプションです。

関連ページ
    概要 LDAP の実装の一つ OpenLDAP について、簡単なコマンドサンプルを記載します。 インストール LDAP サーバ slapd (Standalone LDAP Daemon) sudo yum install openldap-servers sudo apt install slapd LDAP クライアントコマンドのインストール
    概要 こちらのページでは、Java のソースコードにハードコーディングしたユーザーとパスワードの情報をもとに、Spring Security でログインフォーム認証を行いました。本ページではユーザー認証を LDAP サーバーからの情報をもとに行います。 Spring LDAP が提供する LDAP クライアントを