SVN與LDAP整合一般藉助Apache,首先看看svn與Apache整合:Apache的HTTP服務器
最基本的配置如下:
<Location /repos>
DAV svn
SVNPath /var/www/svn/repos
AuthType Basic
AuthName "SVN Authorization Realm"
#使用htpasswd產生的密碼文件
AuthUserFile /var/www/svn/repos/conf/passwd
AuthzSVNAccessFile /var/www/svn/repos/conf/authz
#允許匿名讀取
Satisfy Any
Require valid-user
</Location>
OK,假設你已經理解了以上配置。
驗證模塊文檔:mod_auth_basic
在前幾篇文檔中,我們創建了Developer和Tester兩個group,現在我們配置成開發有讀寫權限,其他用戶有讀取權限,如下:
<Location /repos>
DAV svn
SVNPath /var/www/svn/repos
AuthType Basic
AuthName "SVN Authorization Realm"
#以下爲LDAP服務配置
AuthBasicProvider ldap
#關閉權限繼承,這個自己查一下資料
AuthzLDAPAuthoritative off
#LDAP連接
AuthLDAPURL "ldap://199.155.122.90:10389/ou=users,dc=taotaosou.com?cn?sub?(objectClass=person)"
#綁定用戶,主要用於對LDAP進行讀取與匹配,如果允許匿名讀取LDAP數據則可不寫
#AuthLDAPBindDN "ldap-reader"
#綁定密碼
#AuthLDAPBindPassword "ldap-reader-pwd"
#讀取權限要求必須是有效用戶,非匿名
<Limit GET PROPFIND OPTIONS REPORT>
require valid-user
</Limit>
#讀取權限以外的權限必須是開發組
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require ldap-group cn=developer,ou=groups,dc=taotaosou.com
</LimitExcept>
</Location>
以上就實現了開發人員的讀寫權限,其他人員的讀取權限,如果需要匿名讀取,則是以下配置:
<Location /repos>
DAV svn
SVNPath /var/www/svn/repos
AuthType Basic
AuthName "SVN Authorization Realm"
#以下爲LDAP服務配置
AuthBasicProvider ldap
#關閉權限繼承,這個自己查一下資料
AuthzLDAPAuthoritative off
#LDAP連接
AuthLDAPURL "ldap://199.155.122.90:10389/ou=users,dc=taotaosou.com?cn?sub?(objectClass=person)"
#綁定用戶,主要用於對LDAP進行讀取與匹配,如果允許匿名讀取LDAP數據則可不寫
#AuthLDAPBindDN "ldap-reader"
#綁定密碼
#AuthLDAPBindPassword "ldap-reader-pwd"
#讀取權限以外的權限必須是開發組
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require ldap-group cn=developer,ou=groups,dc=taotaosou.com
</LimitExcept>
</Location>
一些LDAP與Httpd整合的資料:mod_auth_ldap
Mod_core中的一些指令:Limit