SVN 管理工具有很多种,如 SVNAdmin2.0 、svnWebUI ,这两款界面UI都比较美观,但是当前集成了LDAP 的只有 iF.SVNAdmin 工具,本文讲解如何 iF.SVNAdmin 工具关联 LDAP 环境使用。
前言:环境介绍
软件 | 版本 |
---|
CentOS | 7.6 | SVN | 1.7.14 | HTTPD | 2.4.6-97 | PHP | 5.4.16 | SVNAdmin | 1.6.2 |
一、iF.SVNAdmin
当前环境 SVN 服务端已经安装好,路径为 /data/svn 。
1、iF.SVNAdmin 部署
2、iF.SVNAdmin 配置
1、Web 界面初始化配置
浏览器输入 http://10.10.1.30:8085/svnadmin/ 进行初始化配置,我当前是把 HTTP 的监听端口改成了 8085。 
2、LDAP 配置

3、LDAP 用户和组权限设置
3.1 添加访问路径
 
3.2 给用户或组添加访问项目权限

3.3 取消用户访问项目权限

4、iF.SVNAdmin 角色划分
当我们启用了 LDAP 之后,记得最少给一个 LDAP 用户设置超级管理员权限,防止初始 admin 账号登出时不能在登录进。 iF.SVNAdmin 可以为 LDAP 用户设置登录进管理系统的权限。我们常用的可能就二个角色,一个超级管理员,一个访问路径管理员。访问路径管理员是给用户授权访问某个项目权限的角色。

二、SVN配置LDAP认证
SVN 通过 Apache 进行代理 HTTP 访问的场景。在这种场景下,SVN 的访问是通过 HTTP ,然后经过 Apache 来认证的,所以只需要在 Apache 上集成 LDAP 的认证即可实现 SVN 的 LDAP 认证。
1、Apache 配置
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_user_module moduels/mod_authz_user.so
<Location /repos>
DAV svn
SVNParentPath /data/svn
AuthType Basic
AuthName "Subversion repository"
AuthzSVNAccessFile /data/svn/test/conf/authz
AuthBasicProvider ldap
AuthLDAPURL "ldap://10.10.1.30:389/dc=qualitysphere,dc=github,dc=io?uid?sub?(objectclass=*)"
AuthLDAPBindDN "cn=admin,dc=qualitysphere,dc=github,dc=io"
AuthLDAPBindPassword "123456"
Require ldap-user
</Location>
2、测试验证

三、总结
LDAP 一同步的话,那么原有的本地账号和组都会被清空掉,只剩下 LDAP 中的用户或组。即使你直接在 auth 文件中添加其他用户访问权限然后通过 svn 协议访问,只要一同步,这些配置也都会被清理掉。iF.SVNAdmin 权限管控不够细致,当前访问路径管理员后就能设置所有项目的访问权限,正常我们是希望授权给某一个用户管理某一个项目,这样便于后面去授权项目负责人去管控所属项目权限。- 如果您的 LDAP 数据库有超过 1000 个用户和组,但您只收到 1001 个实体,您需要将 PHP 版本更新到 5.4。以前的 PHP 版本不支持从 LDAP 服务器获取超过 1001 个实体。
Reference: https://blog.csdn.net/qq_25854057/article/details/125296480 http://svnadmin.insanefactory.com/documentation/#ldap
|