さり海馬

Thoughts walk away, blog stays.

OpenLDAP for Win32 を使ってみる

メモ。

諸般の事情により、テスト環境を作ることになった。LDAPが必要なので、サーバを起こすことにした。テスト用なのでLDAPプロトコルが走れば良い。できるだけ楽をしたかった。

最初は某サーバ(Solaris5.2(!!))にOpenLDAPを載せようと思ったのだけど、最新の安定版でやってみたらconfigureすらできないアリサマ。エラーメッセージを頼りにぐぐってみると、どうやら「そんな恐竜使ってる方が悪い」ということでファイナルアンサーなようだ。その恐竜でも大丈夫なバージョンを探すのはちょっと面倒だなぁ…。

では、というので、自分のPCにOpenLDAP for Win32を載せてしまうことにする。こいつはバイナリで公開されているので、ビルドする必要がない。

http://lucas.bergmans.us/hacks/openldap/

で、以下のサイトを参考にしつつ、インストール。特に困ることはなかった。順調。

http://bhd.staba.jp/ldap/olwin32.html
http://infokeepers.net/network/ldap/

起動。一応立ち上げに成功。適当にobjectClass="Person"なエントリを作ってから確認を行う。確認にはLDAP Browser/Editorが便利。こっちからダウンロード可能(要Java)。

http://www-unix.mcs.anl.gov/~gawor/ldap/

さてここからが問題。実は各エントリに、メールアドレスと証明書を持たせたい。そのための作業が必要。そのためには:

  1. 証明書を作る
  2. 証明書をエクスポートする
  3. 各エントリにメール(mail)、証明書(userCertificate)属性を持たせる
  4. エクスポートした証明書を、LDAPエントリに認識可能な形に変換する
  5. エントリに証明書情報をセットする

が必要。それぞれ以下の方法で実現

  1. xca(http://www.hohnstaedt.de/xca/xca.html)
  2. 同上
  3. エントリのオブジェクトクラスをpersonからinetOrgPersonに変更する
  4. 面倒。もっと良い方法があるはずだが
    1. xcaから証明書をPEM形式でexportする。
    2. そのファイルをテキストエディタで開く
    3. 最初の行と最後の行はコメントなのでそれを除いた部分をコピーして
    4. ldifファイルに
userCertificate;binary:: MIIDPTCAA........
 JKoZIhvcNAQkBFi…
 GA1UEAx…

という形で貼り付ける。このとき、二行目以降の先頭には必ずスペースを1個だけつけること。tabだと読み込みに失敗する。

  1. 出来上がったldifファイルを、ldapadd もしくは ldapmodify でエントリに追加する

一応ここまで。