Мы используем LDAP для доступа к Subversion с помощью Apache httpd. Изначально у нас были все наши репозитории Subversion, доступные для всех пользователей, используя следующее:
<Location /src>
DAV svn
SVNParentPath /opt/svn_repos
AuthType basic
AuthName "SVN Repository"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://ldap.mycorp.com:3268/dc=mycorp,dc=com?sAMAccountName" NONE
AuthLDAPBindDN "CN=svn_acct,OU=Users,DC=mycorp,DC=com"
AuthLDAPBindPassword "swordfish"
Require valid-user
</Location>
Все было в порядке. Меня попросили переместить репозиторий CM в другое место и сделать его доступным только для людей из группы CM. Я сделал следующее:
<Location /cm>
DAV svn
SVNPath /opt/cm_svn_repos
AuthType basic
AuthName "CM Repository"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://ldap.mycorp.com:3268/dc=mycorp,dc=com?sAMAccountName" NONE
AuthLDAPBindDN "CN=svn_acct,OU=Users,DC=mycorp,DC=com"
AuthLDAPBindPassword "swordfish"
Require group CN=cm-group,OU=Groups,DC=mycorp,DC=com
</Location>
Я потратил на это пару часов, прежде чем понял, что использую mod_auth nz _ldap, а не простой ol 'mod_auth_ldap. Таким образом, мне нужна была ldap-group
вместо group
в моем операторе Require
. Это сработало.
Мой коллега сообщил мне, что была причина, по которой мы использовали mod_auth nz _ldap, а не mod_auth_ldap, но он не мог вспомнить почему. Мы просмотрели документацию Apache httpd, но в документации нет никаких подсказок, почему вы бы использовали один вместо другого.
Итак, в чем разница между mod_auth_ldap и mod_auth nz _ldap, и зачем вам использовать одно вместо другого?