Subversion结合Apache使用LDAP认证
 
2008-12-12 来源:网络
 

越来越多的公司使用目录服务来管理用户的凭证和信息,例如Active DirectoryeDirectoryOpenLDAP等目录服务,这与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的文档,尽管本文很简单,但是希望能够给你带来价值。


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织