LDAPdでLDAPを使ってみる

作成 2003/5/3

少しだけLDAPを使う機会があったんだけど、 何も書かないとまた全て忘れちゃうのでちょっとだけ書いてみた。

実験環境

LDAPって?

LDAP(Lightweight Directory Access Protocol)は、ディレクトリサービスに アクセスするためのプロトコルです。

ディレクトリサービスとは、階層型のデータベースのようなものですが、 属性やクラス情報が記述できます。 書き込み、更新のための複雑なトランザクション機能は、通常実装されず、 参照、検索に最適化されています。

組織のユーザー管理などに利用されているようです。

参考
http://www.linux.or.jp/JF/JFdocs/LDAP-HOWTO-1.html
http://kwatch.tripod.co.jp/tech/ldap.html

LDAPサーバーのインストール

LDAPをちょっと触ってみるときに、何がめんどくさいって、サーバーの設定でしょう。Tomcatみたいに展開して起動して、ブラウザからアクセス、じゃないですもんね。 LINUX系はよくわからないし(勉強中)、Windowsでサーバー立てるちゅうても、 NetscapeやiPlanetを、LDAPにちょっと触るだけのために、 苦労してインストールして設定するのも骨が折れそうです。

OpenLdap for Windows

というのが(Linuxでやるより)簡単らしいですが、これでさえ、気が引けます。

最近Jakartaのニュースを見ていたら、 JavaのLDAPサーバLDAPdなるものが、αリリースされたそうなんで、 ちょっと触ってみることにしました。

LDAPd

Webサイトはこちら
http://ldapd.sourceforge.net/

LDAPdは以下を目標に開発されてます。

ver1.0リリース予定日は、2004/4/1。Phenix(by Apache Avalon)が利用されているらしい。

インストールと設定

ちょっと触る分の設定は期待通り簡単でした(ホッ)。

ダウンロード元は上のURLです。

ドキュメント(User Guide)も上のURLです(5/3現在インストールまでしか書いてないけど)。

上記URLからアーカイブをダウンロードし、インストーラを起動します。 ダウンロードするアーカイブ自体がinstaller.jarという実行可能JARファイルなので、 ダブルクリックするだけでインストーラ起動可です。 全部デフォルトで進みました(管理者パスワードだけ変えたけど、使わなかった)。

サーバの起動

ここから先はドキュメントになかったので、勘でやりました。

インストール先は、デフォルトでProgram Files\ldapd-0.7aです。 サーバの起動は、bin/run.batです。 起動すると、ほとんど何もメッセージが表示されなくて、ちょっと不安ですが、 netstatすると1396番で何か動いてるようなので、いいことにしましょう。

クライアントの起動

GUIクライアントの起動は、client/client.batです。 起動すると、見覚えのある画面が。LDAP Browzerですね。 インストール時に作成されたサンプルのツリーが作成されており、 選択できるようになっているので、それ(ldapd)を選択し、「connect」します。 メニューのEdit->Add Entityからエンティティを追加できるので、いくつか作っておきます。

画面、LdapBrouzerでorganiztion(組織)とperson2人を追加してみた。

Javaプログラムから接続

さて、本題(?)のJavaプログラムからの接続を行ってみました。

LDAPSearch.java

別途なんとかプロバイダとかのJARが必要かと思いきや、JDK1.4だけでいいみたいです(SunのJNDIサービスプロバイダが標準でついているんでしょう。たぶん)。 実行すると、先ほど作ったエンティティが取得できました。

画面、実行結果

JavaのLDAPプログラムについては、こちらを参考にされるといいでしょう。
http://www.atmarkit.co.jp/fnetwork/rensai/ldap06/ldap1.html

フィルターの検索式の書き方はこちらのRFC2254あたりが参考になると思います。 http://www.ipa.go.jp/security/rfc/RFC.htm


TOP