Не удается аутентифицировать пользователя Subversion, используя Apache и LDAP - PullRequest
3 голосов
/ 05 июля 2010

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

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>

Ответы [ 6 ]

3 голосов
/ 02 ноября 2015

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

1 голос
/ 28 ноября 2013

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

REFERRALS off

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

1 голос
/ 14 ноября 2013

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

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

1 голос
/ 13 июля 2010

Похоже, что вы используете 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 голосов
/ 21 марта 2012

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

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

Для всех, кто найдет это, вы должны попробовать это по порядку: telnet YOUR_AD_SERVER 389

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

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

0 голосов
/ 04 января 2011

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

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

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

Satisfy Any 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...