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

Проблемы с Active Directory при попытке выполнить операцию сравнения

У меня CentOs 5.5 с установленными Apache 2.2 и SVN. Также у меня Windows 2003 R2 с Active Directory.
Я пытаюсь авторизовать пользователей через AD, чтобы каждый пользователь имел доступ к репо, если он является членом соответствующей группы в AD.
Вот моя конфигурация apache:

LoadModule dav_svn_module      modules/mod_dav_svn.so
LoadModule authz_svn_module    modules/mod_authz_svn.so
LDAPVerifyServerCert off
ServerName svn.mydomain.com
DocumentRoot /var/www/svn.mydomain.com/htdocs
RewriteEngine On
[Location /]
 AuthType basic
 AuthBasicProvider ldap
 AuthzLDAPAuthoritative on
 AuthLDAPURL ldaps://comp1.mydomain.com:636/DC=mydomain,DC=com?sAMAccountName?sub?(objectClass=*)
 AuthLDAPBindDN binduser@mydomain.com
 AuthLDAPBindPassword binduserpassword
[/Location]
[Location /repos/test]
 DAV svn
 SVNPath /var/svn/repos/test
 AuthName "SVN repository for test"
 Require ldap-group CN=test,CN=ProjectGroups,DC=mydomain,DC=com
[/Location]

Когда я использую «Требовать действительного пользователя», все идет нормально, «Требовать пользователя ldap» также работает.
Но как только я использую «Требовать ldap-group», авторизация не выполняется.
Trere не содержит ошибок в журналах apache, но Active Directory показывает следующую ошибку:

Event Type: Information
Event Source: NTDS LDAP
Event Category: LDAP Interface 
Event ID: 1138
Date:  10/9/2010
Time:  1:28:52 PM
User:  MYDOMAIN\binduser
Computer: COMP1
Description:
Internal event: Function ldap_compare entered.

Event Type: Error
Event Source: NTDS General
Event Category: Internal Processing 
Event ID: 1481
Date:  10/9/2010
Time:  1:28:52 PM
User:  MYDOMAIN\binduser
Computer: COMP1
Description:
Internal error: The operation on the object failed. 

Additional Data 
Error value:
2 0000208D: NameErr: DSID-031001CD, problem 2001 
(NO_OBJECT), data 0, best match of:
'DC=mydomain,DC=com'

Меня смущает эта проблема. Что я делаю не так?

Они необходимы при использовании Active Directory с mod_authnz_ldap; они также могут помочь здесь:

   AuthLDAPGroupAttribute member
   AuthLDAPGroupAttributeISDN on

На ум приходят два шага:

  • Что вернется, если вы выполните ldapsearch из командной строки с указанным именем sAMAccountName? Это тот объект, которого вы ожидаете?
  • Что произойдет, если вы используете порт глобального каталога (3268 незашифрованный, 3269 SSL)?

Не уверен, что это ваша проблема, но этот LDAPBindDN мне не кажется DN. Не зная, как вы настроили свое дерево AD, я бы предположил, что это должно быть что-то вроде cn = binduser, dc = mydomain, dc = com или cn = binduser, ou = Users, dc = mydomain, dc = com или что-то еще есть ты.