越来越多的公司使用目录服务来管理用户的凭证和信息,例如Active
Directory,eDirectory和OpenLDAP等目录服务,这与Subversion有关吗?很好,我曾经参与过企业级开发,很多客户希望利用他们现有的目录服务作为Subversion认证,这篇blog将会解释在Apache中使用mod_auth_ldap结合目录服务,让你可以使用现有的数据进行认证。
此时,只能使用Apache作为网络层时才能利用目录服务认证,这允许你利用mod_auth_ldap使用所有的Apache认证选项来对Subversion进行认证,Apache可以为Subversion使用目录服务认证。
在我们开始修改Apache配置文件之前,来看一下将Subversion导出到Apache的最简单Location指示:
<Location /repos>
# Enable Subversion
DAV svn
# Directory containing all repository for this path
SVNParentPath /absolute/path/to/directory/containing/your/repositories
</Location>
现在,让我们在Location指示的认证选项部分添加mod_auth_ldap支持:
<Location /repos>
# 开启Subversion
DAV svn
# 包含所有版本库的路径
SVNParentPath /absolute/path/to/directory/containing/your/repositories
# LDAP认证和授权
AuthLDAPAuthoritative on
# 使用基本的密码认证
AuthType Basic
# 保护区域或”域”的名称
AuthName “Your Subversion Repository”
# 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=your,DC=domain”
# This is the password for the AuthLDAPBindDN user in Active Directory
AuthLDAPBindPassword somepassword
# The LDAP query URL
# Format: scheme://host:port/basedn?attribute?scope?filter
# The URL below will search for all objects recursively below the basedn
# and validate against the sAMAccountName attribute
AuthLDAPURL “ldap://your.domain:389/DC=your,DC=domain?sAMAccountName?sub?(objectClass=*)”
# Require authentication for this Location
Require valid-user
</Location>
可以使用其中的注释来理解Apache配置指示中使用mod_auth_ldap,通过上面的例子(需要根据情况修改你的环境)你可以通过活动目录服务来认证你的Subversion用户,如果在AuthLDAPURL中又很小的修改,上面依然可以工作,你可以咨询第一段中引用mod_auth_ldap的文档,尽管本文很简单,但是希望能够给你带来价值。
|