- PR -

OpenLDAPの簡易認証ができません

1
投稿者投稿内容
wmack
会議室デビュー日: 2006/09/22
投稿数: 3
投稿日時: 2006-09-22 11:34
OpenLDAP初心者です。
Fedora Core 2.6.9上でOpenLDAP2.2.13を使用しています。

別のLDAP client端末からbindを簡易認証によって行おうとしているのですが、
ユーザのDNのみでの認証がうまく動作しておらず、原因がわかりません。

ユーザのDNとパスワードは以下のtest.ldifファイルのように定義しています。
パスワード(userPassword)に文字列(例えば、"abc"など)を記述している場合は、
正常に認証できました。

test.ldifファイルのuserPasswordを空白に設定して、
LDAP clientからはユーザのDN(cn=test001,dc=root)を指定し、
パスワードはNULLとしてbindの簡易認証を行ってみたのですが、

Result Code: unwillingToPersform
Matched DN: (null)
Error Message: unauthenticated bind (DN with no password) disallowed

というエラーが返されてしまい、認証できませんでした。

ユーザのDNのみを指定し、パスワードをNULLとした認証をするためには、
どの設定が誤っているのでしょうか?
それとも別に何か設定が必要なのでしょうか?

ご存知の方がいらっしゃいましたら、
よろしくお願いします。


読み込ませたtest.ldifとslapd.confは以下のような内容になっています。

------------------<test.ldif>---------------------
dn:cn=test001,dc=root
cn:test001
sn:test002
objectclass:inetorgperson
userPassword:
--------------------------------------------------


------------------<slapd.confより抜粋>------------
access to *
by * auth


suffix "dc=root"
--------------------------------------------------

ハラスン
会議室デビュー日: 2006/09/22
投稿数: 4
投稿日時: 2006-09-22 17:10
ユーザのDNのみでパスワードを指定しない簡易認証はできません。

匿名のアクセス権でよければ slapd.conf に

 allow bind_anon_dn

を指定するとDNのみでもエラーにならなくなります。ただし、
間違ったDNを指定してもエラーにならなくなるので、指定の
DNが存在するかのチェックには使えません。


[ メッセージ編集済み 編集者: はらすん 編集日時 2006-09-22 18:36 ]
wmack
会議室デビュー日: 2006/09/22
投稿数: 3
投稿日時: 2006-09-22 19:32
はらすんさん

ご回答ありがとうございました。

bind_anon_dnでは、存在しないDNでも匿名認証として許可されてしまうのですね。
bind時にパスワードはチェックせず、DNの存在の有無のみを
チェックする良い方法はないのでしょうか?

実際に認証が許可されなくても良いのですが、
返される認証エラーの内容からDNの存在を判断できたりしないのでしょうか?

何か方法がありましたら、教えてください。
ハラスン
会議室デビュー日: 2006/09/22
投稿数: 4
投稿日時: 2006-09-25 10:09
bind は匿名にしておいて、チェックしたいDNを基点にbase検索する
のではダメでしょうか? DNが存在すれば LDAP_SUCCESS (0) が返り、
存在しなければ LDAP_NO_SUCH_OBJECT (32)が返ります。
wmack
会議室デビュー日: 2006/09/22
投稿数: 3
投稿日時: 2006-09-26 09:23
はらすんさん

度々のご回答ありがとうございます。
おっしゃる通り、匿名でbindを行った後に検索を実行した結果で
判断するしかなさそうですね。

DNのチェックができればよかったので、
1往復のシーケンスだけでチェックできればベストかと思っていたのですが。

今回はご提案の方法で対処しようかと思います。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)