SVN可视化管理iF.SVNAdmin+LDAP认证

SVN 管理工具有很多种,如 SVNAdmin2.0 svnWebUI ,这两款界面UI都比较美观,但是当前集成了LDAP 的只有 iF.SVNAdmin 工具,本文讲解如何 iF.SVNAdmin 工具关联 LDAP 环境使用。

前言:环境介绍

软件版本
CentOS7.6
SVN1.7.14
HTTPD2.4.6-97
PHP5.4.16
SVNAdmin1.6.2

一、iF.SVNAdmin

当前环境 SVN 服务端已经安装好,路径为 /data/svn

1、iF.SVNAdmin 部署

# yum install httpd subversion php php-ldap mod_ldap php-json php-xml php-pdo mod_ssl mod_dav_svn -y

# cd /usr/src && wget https://udomain.dl.sourceforge.net/project/ifsvnadmin/svnadmin-1.6.2.zip --no-check-certificate
# unzip svnadmin-1.6.2.zip
# mv svnadmin-1.6.2 /vaw/www/html/
# chmod -R 777 /var/www/html/svnadmin/data/

# chown -R apache:apache /var/www/html/svnadmin/
# chown -R apache:apache /data/svn/
# systemctl enable httpd
# systemctl start httpd

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 的认证即可实现 SVNLDAP 认证。

1、Apache 配置

# cat /etc/httpd/conf.d/subversion.conf 

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

   #<LimitExcept GET PROPFIND OPTIONS REPORT>
      AuthType Basic
      AuthName "Subversion repository"
      AuthzSVNAccessFile /data/svn/test/conf/authz
      AuthBasicProvider ldap 
      #AuthzLDAPAuthoritative on 
      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
   #</LimitExcept>
</Location>

2、测试验证

在这里插入图片描述

三、总结

  1. LDAP 一同步的话,那么原有的本地账号和组都会被清空掉,只剩下 LDAP 中的用户或组。即使你直接在 auth 文件中添加其他用户访问权限然后通过 svn 协议访问,只要一同步,这些配置也都会被清理掉。
  2. iF.SVNAdmin 权限管控不够细致,当前访问路径管理员后就能设置所有项目的访问权限,正常我们是希望授权给某一个用户管理某一个项目,这样便于后面去授权项目负责人去管控所属项目权限。
  3. 如果您的 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

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值