0

ユーザー認証に mod_authz_ldap を使用しようとしています。LDAPディレクトリにバインドする必要がある奇妙なLDAPセットアップがあります

uid=user,o=organisation

次にクエリ

cn=xxx,o=organisation 

ユーザーの資格情報を取得します。次の構成は実際に機能しますが、ログインしているユーザーの資格情報を使用して LDAP ディレクトリにバインドしようとしますが、言うまでもなく失敗します。

これを検証するために、LDAP バインド ユーザーとしてアプリケーションへの認証を試みましたが、認証は成功しました。

<Location />

    AuthType Basic
    AuthName "My LDAP authenticated app"

    AuthzLDAPLogLevel debug

    AuthBasicProvider ldap
    AuthBasicAuthoritative off
    AuthzLDAPAuthoritative off

    AuthzLDAPBindPassword bindpass
    AuthzLDAPBindDN "uid=binduser,o=my.edu.au"

    AuthzLDAPMethod ldap
    AuthzLDAPServer ldapdevel.my.edu.au
    AuthzLDAPUserBase o=my.edu.au
    AuthzLDAPUserKey cn
    AuthzLDAPUserScope base
    AuthLDAPRemoteUserAttribute cn

    Require valid-user

</Location>

mod_authz_ldap がバインドを試みていることを示す Apache エラー ログ:

[Fri Sep 07 14:14:27 2012] [error] [client xxx.xxx.xxx.xxx] [15628] bind as cn=devraj,l=X,ou=Students,o=my.edu.au failed: 49
[Fri Sep 07 14:14:27 2012] [error] [client xxx.xxx.xxx.xxx] [15628] basic LDAP authentication of user 'devraj' failed
[Fri Sep 07 14:14:27 2012] [error] [client xxx.xxx.xxx.xxx] access to / failed, reason: verification of user id 'devraj' not configured

また、間違ったバインド資格情報を提供すると、mod_authz_ldap はバインド ユーザーとしてバインドできないと文句を言います。これは、バインド ユーザーとしてバインドしようとしているだけでなく、認証ユーザーとしてもバインドしようとしていることを示唆しています。

私の質問は、mod_auz_ldap がユーザーの資格情報を使用して LDAP ディレクトリにバインドする原因となる、私が間違っていることは何ですか?

御時間ありがとうございます。

4

2 に答える 2

1

なぜ AuthzLDAPBindDN は "uid=binduser,o=my.edu.au" なのですか? 次に、AuthzLDAPUserKey cn を表示します。

「uid=binduser,o=my.edu.au」は通常、LDAP の有効なユーザーであり、通常はサービス アカウントである必要があります。

次に、AuthzLDAPUserKey cn は、LDAP 内のユーザーの RDN (相対識別名) 属性を表します。ユーザーが uid=binduser で、他のユーザーが cn=devraj のようになるのは一般的ではありません。

uid=binduser,o=my.edu.au は存在しますか?

ユーザー cn=devraj,l=X,ou=Students,o=my.edu.au は存在しますか? (または: uid=devraj,l=X,ou=Students,o=my.edu.au)

-ジム

于 2012-09-09T09:06:13.173 に答える
0

it attempts to use the credentials of the user logging in to bind to the LDAP directory, which needless to say fails

Why 'needless to say'? And why does it fail at all? This is exactly what it is supposed to do. Normally you should be searching the directory for the user, possibly using a system account to do so, then binding as the found user with his credentials. If that succeeds, authentication is complete. If your LDAP isn't set up to support that, it is set up wrongly.

于 2012-09-09T01:23:27.957 に答える