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) で繰り返し実行するためのオプションです。

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