SVN集成LDAP认证

article/2025/9/13 10:37:55

如何将 LDAP 的认证,集成到 SVN 中。集成的办法,目前是有两种:一种是 SVN 直接通过 SVN 端口直接访问的,通过 SASL 实现 LDAP 的认证;另一种是 SVN 通过 Apache 进行 HTTP 访问的用户,通过配置 Apache ,在 Apache 上集成 LDAP 来实现 SVNLDAP 认证集成。但是 SASL 方式只能是跟 OpenLDAPSVN同服务器上,使用远程的认证无效。

一、使用Sasl

SASL 全称 Simple Authentication and Security Layer,是一种用来扩充 C/S 模式验证能力的机制。

1、安装 SASL

# yum install -y *sasl*

2、配置文件修改

# vim /etc/sysconfig/saslauthd
......
MECH=ldap              # 只修改这一行
......
# vim /etc/saslauthd.conf  # 不存在则新建
servers: ldap://10.10.1.25
ldap_bind_dn: cn=admin,dc=qualitysphere,dc=github,dc=io
ldap_bind_pw: 123456
ldap_search_base: dc=qualitysphere,dc=github,dc=io
ldap_filter: uid=%U 
ldap_password_attr: userPassword
# vim /etc/sasl2/svn.conf   # 没有就新建,内容如下
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

3、账号测试验证

# systemctl start saslauthd
# systemctl enable saslauthd

LDAP 账号测试验证

# testsaslauthd -ufeb -p123654
0: OK "Success."

4、SVN配置修改

  • 修改 svn 库配置

通过 svnadmin 创建的 svn 库,在 conf 下都会有一个配置文件 svnserver.conf,修改此配置文件,将use-sasl=true 打开即可

# cat /data/svnserver/test/conf/svnserve.conf 
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
[sasl]
use-sasl = true    ## 添加这一行配置即可

启用 LDAP认证后,原本的用户密码配置文件 passwd的 就会失效,但是权限控制依然是在 authz 文件中进行配置。

  • 重启 svn 使用 LDAP 账号认证测试

二、使用Apache集成

SVN 通过 Apache 进行代理 HTTP 访问的场景。在这种场景下,SVN 的访问是通过 HTTP ,然后经过 Apache 来认证的,所以只需要在 Apache 上集成 LDAP 的认证即可实现 SVNLDAP 认证。

1、安装 HTTP

# yum -y install httpd mod_dav_svn

2、配置文件修改

其中 /data/svnserversvn 库文件根目录,在 /data/svnserver 下创建的 svn 库,即 svnserve -d -r /data/svnserversvn 启动的命令。test/data/svnserver 下的一个项目。

1. HTTP协议配置

使用 HTTP 协议访问,用的是 HTTP 账号密码访问,这个配置是没有与 LDAP 集成的。

  • 创建HTTP 账号,后面登录 SVN 使用该账号认证登录:
# htpasswd -m /etc/svn/svnusers.conf feb
  • HTTP 配置
cat /etc/httpd/conf.d/subversion.confLoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so<Location /repos>DAV svnSVNParentPath /data/svnserver#<LimitExcept GET PROPFIND OPTIONS REPORT>AuthType BasicAuthName "Authorization Realm"AuthUserFile /etc/svn/svnusers.confAuthzSVNAccessFile /data/svnserver/test/conf/authzRequire valid-user#</LimitExcept>
</Location>

2. LDAP集成配置

# vim /etc/httpd/conf.d/subversion.confLoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so<Location /repos>DAV svnSVNParentPath /data/svnserver#<LimitExcept GET PROPFIND OPTIONS REPORT>AuthType BasicAuthName "Subversion repository"AuthzSVNAccessFile /data/svnserver/test/conf/authzAuthBasicProvider ldap AuthzLDAPAuthoritative on AuthLDAPURL "ldap://10.10.1.25: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>

上面的配置是我们把所有的项目都存放在统一的资源库目录,那么就可以使用 SVNParentPath 指令来指定存放所有项目的路径。

当然有可能我们并不希望某个项目提供这样一种访问方式,这时候我们就可以使用 SVNPath 为每个项目进行单独的设置。

<Location /test>DAV svnSVNPath /data/svnserver/test               # 区别在这一行#<LimitExcept GET PROPFIND OPTIONS REPORT>AuthType BasicAuthName "Subversion repository"AuthzSVNAccessFile /data/svnserver/test/conf/authzAuthBasicProvider 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>## /data/svnserver 是SVN根路径
## 使用 http://ip/test/ 地址访问就相当于直接访问了 test 项目下的资源,对比上面统一目录访问是有差别的,上面需要带 repos/ + 项目资源

用了 Apache 做验证后,原先每个库中的 conf/passwd 文件就不生效了,而是使用指定的 AuthUserFile 来指定。而改为 LDAP 后,则由 LDAP 进行认证,但是授权文件则是由 AuthzSVNAccessFile 指定的授权文件来进行设置。这些在配置 Apache+SVN 时应该都已经设置过了。

3、测试验证

在这里插入图片描述

三 、总结

  使用 SASL 来集成 LDAP 的方式在实际验证中需要保持跟 SVN 在同一台服务器,但在生产中基本是分服务器部署的。我们可以选用 Apache 来集成 LDAP 的方式进行 SVN 管理。另外这两种方式都不能使用 LDAP 中的群组功能,只能使用账号密码功能,权限用户组都需要在 SVN 中单独配置。


http://chatgpt.dhexx.cn/article/WGRwpOCt.shtml

相关文章

zabbix配置ldap认证

zabbix配置ldap认证 环境&#xff1a; centos6.6 zabbix3.0.3 域控服务器&#xff1a;windows-active server 2008 需求&#xff1a; 公司越来越大&#xff0c;人越来越多&#xff0c;配置人员的账号密码很麻烦。 为了集中管理&#xff0c;整合公司的用户密码&#xff0c…

LDAP认证-ldap介绍

OpenLDAP简介 LDAP 全称轻量级目录访问协议&#xff0c;是一个运行在 TCP/IP 上的目录访问协议。LDAP实现 提供被称为目录服务的信息服务&#xff0c;可以看做是一张特殊的数据库系统。可以有效的 解决众多网络服务的用户账户问题&#xff0c;规定了统一的身份信息数据库、身份…

LDAP认证

注&#xff1a;本文由网络公开资料整理而来&#xff0c;如有错误&#xff0c;欢迎指正。 LDAP&#xff08;Lightweight Directory Access Protocol&#xff09;是目录服务&#xff08;DAP&#xff09;在TCP/IP上的实现&#xff0c;它是对X.500目录协议的移植&#xff0c;但是简…

BlazeDS简单介绍

BlazeDS 是一个基于服务器的 Java 远程控制 (remoting) 和 Web 消息传递 (messaging) 技术&#xff0c;以LGPL&#xff08;Lesser GNU Public License&#xff09;公共许可证书发布。它能够使得后端的 Java 应用程序和运行在浏览器上的 Adobe Flex 应用程序相互通信。在Java应用…

关于BLAS的简单介绍

BLAS(Basic Linear Algebra Subprograms基础线性代数程序集)是进行向量和矩阵等基本线性代数操作的事实上的数值库。这些程序最早在1979年发布&#xff0c;是LAPACK(Linear Algebra PACKage)的一部分&#xff0c;便于建立功能更强的数值程序包。BLAS库在高性能计算中被广泛应用…

Blazor 基础入门

Blazor 基础知识 Intro Blazor 是微软在 .NET 里推出的一个 WEB 客户端 UI 交互的框架&#xff0c; 使用 Blazor 你可以代替 JavaScript 来实现自己的页面交互逻辑&#xff0c;可以很大程度上进行 C# 代码的复用&#xff0c;Blazor 对于 .NET 开发人员来说是一个不错的选择。 托…

Blazeds学习

BlazeDS是一个基于服务器的Java远程调用&#xff08;remoting&#xff09;和Web消息传递&#xff08;messaging&#xff09;技术&#xff0c;使得后台的Java应用程序和运行在浏览器上的Flex应用程序能够相互通信 一个BlazeDS应用包括两个部分&#xff1a;一个客户端应用程序和…

Blazeds初步

客户端应用 Blazeds包括客户端和服务端应用。客户端应用是典型的Adobe flex或者AIR应用。Flex和AIR应用使用flex组件和blazeds服务通信&#xff0c;包括Remote Object、HTTPService、WebService、Produce和Consumer。其中的HTTPService、WebService、Produce和Consumer是Flex S…

BlazeDS配置实例

.什么是BlazeDS BlazeDS is the server-based Java remoting and web messaging technology that enables developers to easily connect to back-end distributed data and push data in real-time to Adobe Flex and Adobe AIR™ applications for more responsive rich Inte…

Bazel

bazel&#xff1a;是一个可以快速构建和测试任意规模软件的编译工具&#xff0c;能够用来编译大部分语言。Bazel使用分布式缓存和增量构建方法&#xff0c;使得编译更加快速。 Bazel 主要文件 使用 Bazel 管理的项目一般包含以下几种 Bazel 相关的文件&#xff1a;WORKSPACE&a…

BlazeDS

BlazeDS 为使用Flex 或者AIR 的客户端程序提供了高度可扩展的远程访问和消息服务。 blazeds :是一门技术&#xff0c;是一门面向AS的前后台通讯框架 在服务器端&#xff1a;提供3种服务&#xff0c;远程调用&#xff08;remoting-config.xml中配置&#xff09;&#xff0c;访问…

Blazeds(一)

Blazeds体系结构 一个Blazeds应用包含了一个运行在浏览器或者Adobe AIR的客户端应用并且和J2EE应用服务端通信。客户端可以是Flex也可以是结合Flex、HTML/JavaScript的应用程序。 整个体系主要包括通道、端点、消息、服务、目的地、适配器等&#xff0c;把这些搞懂也就…

Blazor 简介

Blazor 是一个用于使用 .NET 生成交互式客户端 Web UI 的框架&#xff1a; 使用 C# 代替 JavaScript 来创建丰富的交互式 UI。共享使用 .NET 编写的服务器端和客户端应用逻辑。将 UI 呈现为 HTML 和 CSS&#xff0c;以支持众多浏览器&#xff0c;其中包括移动浏览器。 使用 .…

blaze介绍

sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId1005269003&utm_campaigncommission&utm_sourcecp-400000000398149&utm_mediumshare 项目联系 QQ&#xff1a;231469242 FICO FICO&#xff08;NYSE: FICO&#xff09;是全…

BlazePose

摘要 我们提出了BlazePose&#xff0c;一种轻量级卷积神经网络架构&#xff0c;用于人体姿态估计&#xff0c;可用于移动设备上的实时推断。在推理过程中&#xff0c;网络为一个人产生33个身体关键点&#xff0c;在Pixel 2手机上以每秒30帧以上的速度运行。这使得它特别适合姿态…

BlazeDS介绍

概况 BlazeDS是用来处理J2EE服务器与远程客户端之间远程通信的组件,它以Servlet的形式部署在J2EE容器里,专门负责处理通信。一般而言,远程客户端采用Flex编写,因为Flex组件中对通信细节进行了良好的封装,使得Flex程序员不必关心通信细节。 图1 BlazeDS概况 BlazeDS应用程…

初探blazeDS

blazeDS是一套面向actionscript的前后台通信框架。 在服务器端&#xff0c;blazeDS以servlet的方式存在于java应用服务器上。它默认提供3中服务&#xff0c;远程调用&#xff08;在remoting-config.xml中配置&#xff09;、访问代理&#xff08;proxy-config.xml&#xff09;、…

BlazeDS详解

一、Blazeds初步 客户端应用 Blazeds包括客户端和服务端应用。客户端应用是典型的Adobe flex或者AIR应用。Flex和AIR应用使用flex组件和blazeds服务通信&#xff0c;包括Remote Object、HTTPService、WebService、Produce和Consumer。其中的HTTPService、WebService、Produce和…

MySQL配置Amoeba中间件

MySQL配置Amoeba中间件 Amoeba介绍环境配置安装Amoeba配置Amoeba配置文件配置dbServers.xml&#xff0c;设置数据库&#xff0c;登录MySQL的账号和密码 启动Amoeba注意事项 Amoeba介绍 Amoeba是一个以MySQL为底层数据存储&#xff0c;并对应用提供MySQL协议接口的proxy。它集中…

MySQL主从复制和基于Amoeba的读写分离部署

文章目录 MySQL主从复制和基于Amoeba读写分离什么是主从复制&#xff1f;为什么要有MySQL主从复制&#xff1f;什么是读写分离&#xff1f;一、MySQL主从复制原理二、主从复制的工作过程三、主从复制方式1、异步复制方式2、半同步复制/增强半同步复制3、全同步复制4、多线程复制…