2010-07-05 2 views
3

Я пытаюсь использовать аутентификацию LDAP для репозитория Subversion, доступ к которому осуществляется через Apache HTTP Server. Что бы я ни стараюсь, Apache генерирует следующее сообщение об ошибке:Не удается аутентифицировать пользователя Subversion, используя Apache и LDAP

authentication failed; URI /repos/branches/my-branch [ldap_search_ext_s() for user failed][Operations Error] 

Я использовал AD исследователь от Sysinternals для подключения к серверу AD, и может видеть данные, поэтому я полагаю, что это проблема с моим Строка поиска URL-адреса LDAP. Я пробовал несколько вариантов, но всегда получаю вышеуказанную ошибку. Вот что я имею в своем httpd.conf. Любые предложения или идеи для диагностики этого будут оценены.

<Location /repos> 
    DAV svn 
    SVNPath C:\repos 
    AuthType Basic 
    AuthzLDAPAuthoritative off 
    AuthBasicProvider ldap 
    AuthName "IT Subversion repository" 
    AuthLDAPURL "ldap://x.y.z.com:389/DC=y,DC=z,DC=com?sAMAccountName?sub?(objectClass=user)" NONE  
    Require valid-user 
</Location> 
+0

Не должно ли 'error.log' предоставлять более подробное сообщение об ошибке? –

+0

Все, что я получаю в error.log показано выше i.e [Пн июл 05 09:08:03 2010] [warn] [клиент 127.0.0.1] [9556] auth_ldap authenticate: аутентификация пользователя xxxxxxxx; URI/repos/branches/my-branch [ldap_search_ext_s() для пользователя не удалось] [Ошибка операций] –

+0

На этой странице описывается опция Ldap REFERRALS, которая должна быть отключена http://michele.pupazzo.org/diary/?p = 227 К сожалению, я не знаю, как отключить это для Apache 2.2 в Windows. Кажется, существует директива LDAPReferrals, которая может быть установлена ​​в файле httpd.conf, но это не реализовано для mod_ldap 2.2, всего 2,3, которая все еще находится в альфа-версии http://httpd.apache.org/docs /trunk/mod/mod_ldap.html#ldapreferrals –

ответ

1

похоже, что вы используете Active Directory, что не позволяет анонимную привязку. Попробуйте добавить следующее:

# Active Directory requires an authenticating DN to access records 
# This is the DN used to bind to the directory service 
# This is an Active Directory user account. 
AuthLDAPBindDN "CN=someuser,CN=Users,DC=y,DC=z,DC=com" 

# This is the password for the AuthLDAPBindDN user in Active Directory 
AuthLDAPBindPassword some_secret_password 
0

У меня была эта проблема в последнее время вам нужно добавить 3 дополнительные параметры

AuthLDAPBindDN "CN=someuser,CN=Users,DC=y,DC=z,DC=com" 
AuthLDAPBindPassword some_secret_password 

Как jgnagy предложил, и это также помогло мне, когда я добавил

Satisfy Any 
0

LDAPReferrals просто не существовало в более ранних версиях, поэтому ничего не нужно отключать, действительно ...

Я думаю, если вам удастся сопоставить новый LDAP/Apache, в котором есть перенаправление LDAP в качестве опции, и пытались использовать и старше AD, вам придется отключить его.

Для кого-то найти это, вы должны попробовать это в следующем порядке: телнета YOUR_AD_SERVER 389

Либо вы получаете соединение и что-то вроде Экранирующего символа ~, или вы получили неправильное имя/IP для ваших AD или ваши брандмауэры блокируют доступ с вашего компьютера к AD на порт 389.

Затем установите инструменты командной строки openldap, openldap-клиенты и посмотрите, можете ли вы использовать ldapsearch (прочитать страницу руководства) для выполнения поиск непосредственно на ваш сервер AD, без Apache посередине.

1

У меня было что-то симулятивное, хотя и незнакомое. Сначала это при тестировании, но после перезагрузки и обновления Apache он перестает работать.

После долгого поиска в Интернете, мне кажется, мне пришлось сменить порт с 389 до 3268. Это решило мой «[ldap_search_ext_s() для пользователя не удалось] [Ошибки операции]« по какой-то причине. Я до сих пор не понимаю, почему, или почему это сработало сначала, но это было для меня.

1

была такая же проблема, вам нужно указать в /etc/ldap/ldap.conf:

REFERRALS off 

решить мою проблему.

1

Моя проблема была продана путем смены порта с 389 в 3268. Порт 389 выглядит только для местной Direcotry, но 3268 ищет глобальный каталог. Смущает то, что в браузере LDAP (например, JXplorer) работает оба порта правильно.

Смежные вопросы