2007年10月4日木曜日

OpenLDAP for Win32 - その1.

 OpenLDAP for Win32の設定やらでひっかかった所を忘れない内に書きなぐる予定です.

 先日書いた様に、PHPのLDAP関数でActive Directoryには接続・認証出来たので、今度はOpenLDAPで試します.

 Linuxでやろうかとも思いましたが、面倒なので 先にWindows版からやった方が敷居が低いかな?と思い、以下のソフトをインストール.

 OpenLDAP for Win32
 ※2008-03-28追記 気づけば2回目書く前に「Project suspended」だそうです orz
  まだ http://download.bergmans.us/openldap/ ここからダウンロード可能ではありますが

 インストールは普通に終了.
 ※時間があれば手順追って書きますが、今は時間が無いのでパス.

 次に設定を.
 『取り敢えず』動かしてみる事が目標なので、WEB上にあった設定例通り、以下の様に設定.

suffix[tab]"dc=example,dc=com"
rootdn[tab]"cn=Manager,dc=example,dc=com"
rootpw[tab]secret
 ※『[tab]』はTAB文字(\t). その他は変更なし.

 そしてOpenLDAPサーバーを徐に開始(コントロールパネル→「管理ツール」→「サービス」→「OpenLDAP」を開始).
 問題なく起動した模様.

 次にTOPツリーと言う物を作成するらしい.
 Active Directoryで言う所の…何に当たるのかは不明w
 恐らく、Active Directoryを構築する際に「新しいドメインツリーを作成」とか「既存のドメインツリーに…」等々選択する項目の「最初のドメインツリーを作成」と言うものに当たるのでしょう.

 と言う事で、早速ツリーやOU(OrganizationUnit. 綴りが合っているかは未確認)、ユーザーなんかを作成する事が出来るコマンド「ldapadd」を実行する事に.

D:\OpenLDAP> ldapadd -x -D "cn=Manager,dc=example,dc=com" -w secret
ldap_bind: Invalid credentials (49)

 … orz
 なんじゃそりゃ.
 「ldap_bind: Invalid credentials (49)」で検索してみるも、結構色んな原因があるらしく、ページを見つける度に設定ファイルやら何やらいじくりまわす事数十回.
 これ↓が原因だった.

何故Appleのサイト?なMLから抜粋
> OK, I think I see the problem... it looks like it's not possible to do a simple bind against the rootdn if your password is specified in cleartext. The workaround would be to use slappasswd like this:
>
> % slappasswd -s secret
> {SSHA}ioGadl0574KxRPecJ7Pb5q33j2x/Fi3w
 ※注)ハッシュ結果はコマンド実行毎に異なります.

 …あ、そう.
 そんなに単純な事なのかよっ! orz
 確かに設定ファイルには

 Cleartext passwords, especially for the rootdn, should be avoid.

 とは書いてあるが、「駄目」とは書いてないじゃない orz
 と言う事で、先のAppleMLの続きを読むと…

> I believe this is due to Mac OS X's version of OpenLDAP being built with --disable-cleartext.

 アレか.
 OpenLDAP for Win32では「--disable-cleartext」なオプションが適用された状態でビルドされているってのか?
 …ダウンロードサイトなりREADME読めば、きっとちゃんと書いてあるんでしょうね orz
 はい、結局その辺すっ飛ばしてる私が悪いと言う事で.
 結局下記の通り実行.

D:\OpenLDAP> slappasswd -s secret
{SSHA}Fa6TV9xYXXh+iWrXqwRWj3fm1aTpylEt
 ※注)ハッシュ結果はコマンド実行毎に異なります.
 そして設定の「rootpw」を変更.

suffix[tab]"dc=example,dc=com"
rootdn[tab]"cn=Manager,dc=example,dc=com"
rootpw[tab]{SSHA}Fa6TV9xYXXh+iWrXqwRWj3fm1aTpylEt
 ※『{SSHA}』から記述するので注意.

 今日も今日とて時間の無駄!!!
 自分がアホ人間である事を再認識した今日この頃.
 続きはまた今度.

0 件のコメント: