Apache2
からユーザーを認証するために、authnz_ldap_module
を使用したActive Directory
認証に問題があります。私のApacheバージョンは2.2.16-6+squeeze10
です。
これが私が運悪く使用しようとしている構成です(正確には多くの組み合わせのうちの1つ):
AuthzLDAPAuthoritative off
AuthBasicProvider ldap
AuthType Basic
AuthName "Active Directory"
AuthLDAPURL "ldap://server1.my.company.tld:3268 server2.my.company.tld:3268/dc=my,dc=company,dc=tld?sAMAccountName?sub"
AuthLDAPBindDN "uid=my_user,dc=my,dc=company,dc=tld"
AuthLDAPBindPassword "mypassword"
Require valid-user
そして、Apacheのerror.log
に次のエントリが表示されます。
[debug] mod_authnz_ldap.c(379): [client some_ip_here] [12391] auth_ldap authenticate: using URL ldap://server1.my.company.tld:3268 server2.my.company.tld:3268/dc=my,dc=company,dc=tld?sAMAccountName?sub
[info] [client some_ip_here] [12391] auth_ldap authenticate: user my_user authentication failed; URI / [LDAP: ldap_simple_bind_s() failed][Invalid credentials]
[error] [client some_ip_here] user my_user: authentication failure for "/": Password Mismatch
もちろん、毎回正しいパスワードを入力します。ADで既に約100回ブロックされますが、これまで一度も発生しませんでした。
ADコントローラーに接続できることを確認できません。
ldapsearch -h server1.my.company.tld -p 3268 -D "dc=my,dc=company,dc=tld"
次のエラーが発生します。
text: 000004DC: LdapErr: DSID-0C0906E8, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1db1
ldapsearch
とバインドする方法がまったくわかりません。今のところ、manualは役に立ちませんでした。
Apache2
の設定で何が問題になっていますか、またldapsearch
とバインドするにはどうすればよいですか?
これらが必要な場合は、追加情報を提供します。
最も問題のあるケースはAuthLDAPBindDNで、 "[email protected]"の構文であり、 "domain\user"の構文ではなく、単に "user"でも "uid = my_user、dc = my、dc = company"でもない必要がありました。 、dc = tld」。以下は、私のために機能した適切な構成です。これは、ケースの解決策としてここに提供します。
AuthzLDAPAuthoritative off
AuthBasicProvider ldap
AuthType Basic
AuthName "Active Directory"
AuthLDAPURL "ldap://server1.my.company.tld:3268 server2.my.company.tld:3268/DC=ad,DC=upos,DC=pl?sAMAccountName?sub?(objectClass=*)"
AuthLDAPBindDN "[email protected]"
AuthLDAPBindPassword "some_random_password"
Require valid-user
申し訳ありませんが、答えを出すのに長い時間がかかりました。
バインドしているユーザーをldapsearchに通知する必要がありますasなので、ldapsearch --helpごとに、-Uスイッチを使用してユーザー名を指定します。
ldapsearch -h server1.my.company.tld -p 3268 -D "dc=my,dc=company,dc=tld" -U <username>