У меня 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
На ум приходят два шага:
Не уверен, что это ваша проблема, но этот LDAPBindDN мне не кажется DN. Не зная, как вы настроили свое дерево AD, я бы предположил, что это должно быть что-то вроде cn = binduser, dc = mydomain, dc = com или cn = binduser, ou = Users, dc = mydomain, dc = com или что-то еще есть ты.