Subversion (SVN)与ldap集成
在企业级开发环境中,将 Subversion (SVN) 与 LDAP (如 Active Directory 或 OpenLDAP) 集成,是实现账号统一管理、提高安全性的标准做法。
1. 核心原理
通常情况下,SVN 本身并不直接支持 LDAP。我们通过 Apache HTTP Server (httpd) 作为中间层,利用其 mod_authnz_ldap 模块来完成认证逻辑。
2. 环境准备
确保你的服务器已安装以下组件:
- Apache HTTP Server (
httpd或apache2) - Subversion 及其 Apache 模块 (
mod_dav_svn) - LDAP 模块 (
mod_ldap和mod_authnz_ldap)
3. 关键配置步骤
3.1加载必要模块
在 Apache 的配置文件(如 httpd.conf)中,确保以下模块已启用:
1 | LoadModule dav_module modules/mod_dav.so |
3.2配置 SVN 虚拟目录与 LDAP
在 Apache 配置中添加以下内容,定义 SVN 仓库路径及认证规则:
1 | <Location /svn> |
4. 实践中的关键参数说明
| 参数 | 说明 | 示例 |
|---|---|---|
| AuthLDAPURL | LDAP 连接字符串。格式:协议://地址:端口/搜索基准?属性?范围?过滤器 |
ldap://ad.company.com/ou=users,dc=com?uid?sub |
| sAMAccountName | Windows AD 常用的登录名属性。如果是 OpenLDAP,通常用 uid。 |
sAMAccountName |
| AuthzSVNAccessFile | 非常重要。LDAP 只负责“你是谁”(认证),此文件负责“你能看哪个文件夹”(授权)。 | /etc/svn/authz |