У меня проблема с Apache2
аутентификация с использованием authnz_ldap_module
для аутентификации пользователей из Active Directory
. Моя версия Apache 2.2.16-6+squeeze10
.
Вот конфигурация, которую я пытаюсь использовать безуспешно (если быть точным, одна из многих комбинаций):
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, ни разу пока не было.
Я не могу проверить, могу ли я подключиться к своему контроллеру 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
и руководство мне пока не помогло.
Что я делаю не так Apache2
конфигурация и как я могу связать с ldapsearch
?
Я предоставлю дополнительную информацию, если она понадобится.
Наиболее проблемным случаем был AuthLDAPBindDN, который должен был иметь синтаксис «user@my.company.tld», а не синтаксис «домен \ пользователь», а не просто «пользователь» или «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 "bind_user@my.company.tld"
AuthLDAPBindPassword "some_random_password"
Require valid-user
Мне потребовалось много времени, чтобы дать ответ, о чем я сожалею.
Вы должны сообщить ldapsearch, кого связываете так как поэтому для ldapsearch --help используйте переключатель -U и дайте ему имя пользователя ... т.е.
ldapsearch -h server1.my.company.tld -p 3268 -D "dc=my,dc=company,dc=tld" -U <username>