Назад | Перейти на главную страницу

Невозможно пройти аутентификацию с помощью Apache и authnz_mod_ldap в Active Directory

У меня проблема с 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>