`

征服 Apache + SVN + LDAP

阅读更多
最近跟LDAP干上了,几乎所有的系统都要跟LDAP整合。一开始技术热情高涨,接着就是被LDAP的种种细节折磨。终于,有那么一天,几乎所有的基于LDAP服务的应用全部整合完毕。这一刻,我也体会到了企业中使用LDAP,对于帐号管理是多么的方便。不自然地,竟然想要把接触到的系统全部整合LDAP。 着魔了!赶在脑子还算清醒的阶段,赶紧整理Apache+SVN+LDAP系统!


相关内容:
征服 Apache + SSL
征服 Apache + SVN
征服 Apache + SVN +  LDAP
征服 Apache + Tomcat
征服 Nginx
征服 Nginx + Tomcat


对于开发服务器,如果只有subersion,虽然也可以通过svn://host/svn方式访问svn;但是,这样的访问方式,终归不方便,尤其是外网访问,于是,我们整合Apache中的WebDAV,使之可以通过http://host/svn方式访问svn;可是,如果直接通过外网访问svn,于是,我们结合SSL,以https://host/svn方式访问svn;当然,如果有很多人要使用svn,svn帐号管理就成为一个麻烦事!如何解决?帐号分配,密码更迭等等,这些事情都很麻烦。LDAP,正好解决这个问题!

在搭建Apache+SVN+LDAP服务前,先使用ldapSearch命令检测下LDAP服务连接:
ldapsearch -h ldap.zlex.org -p 389 -x -b "cn=users,dc=zlex,dc=org" -D "snowolf@zlex.org" -w 11111111

简要描述:
-h 主机地址
-p 端口号(默认389)
-x 简单授权
-b BaseDN
-D BindDN 这里就是邦定的用户帐号了
-w 显式输入密码
-W 隐式输入密码

这是基于绑定用户帐号方式访问LDAP服务,如果可以匿名访问LDAP,这事情就更简单了,也就更不安全了!

如果连接成功,可以获得一堆该账户下的所有LDAP信息。如果不成功,只能向LDAP服务提供者咨询了!
PS:这一个月,我被LDAP服务搞死了,公司负责LDAP服务维护的同事也不懂如何配置相关应用中的LDAP连接。我只能误打误撞,挨个参数测验了。

如果你的Ubuntu正好不能使用这个命令,那么就执行下面的命令安装好了!

sudo apt-get install ldap-utils


在Ubuntu下,想要搭建Apache+SVN+LDAP,除了完成Apache+SVN服务搭建,只需要通过追加ldap模块的方式,就可以很快完成这套服务的搭建工作。

如果不知道哪些apache模块跟ldap有关,我们可以使用这个命令找到相关模块:
sudo apt-cache search apache2 ldap


如下提示:
引用
libapache2-mod-ldap-userdir - Apache module that provides UserDir lookups via LDAP
libapache2-mod-vhost-ldap - Apache 2 module for Virtual Hosting from LDAP


这下,事情就简单了,直接安装相关模块:
sudo apt-get install libapache2-mod-ldap-userdir libapache2-mod-vhost-ldap


接下来,修改我们上次的SVN配置文件:

sudo vi /etc/apache2/mods-available/dav_svn.conf


找到AuthType Basic,追加AuthBasicProvider ldap,同时注释掉AuthUserFile
以下是配置片段:
    AuthType Basic
    AuthName "Subversion Repository"

#使用LDAP服务校验用户身份,废弃密码文本
#    AuthUserFile /etc/apache2/dav_svn.passwd

    AuthzSVNAccessFile /etc/apache2/dav_svn.authz

#以下为LDAP服务配置
    AuthBasicProvider ldap

    AuthzLDAPAuthoritative off

#LDAP连接
        AuthLDAPURL "ldap://ldap.zlex.org/dc=zlex,dc=org?sAMAccountName?sub?(objectClass=user)" 

#邦定用户
        AuthLDAPBindDN "snowolf@zlex.org"

#邦定密码      
        AuthLDAPBindPassword "11111111"

        Require valid-user


悲哀地是,LDAP服务现在还不知道如何构建。对于LDAP服务,我也知之甚少,更无法深入了解每一个参数的含义。构建LDAP服务,将是我下一个技术攻坚标杆!

参考
http://www.jejik.com/articles/2007/06/apache_and_subversion_authentication_with_microsoft_active_directory/


相关内容:
征服 Apache + SSL
征服 Apache + SVN
征服 Apache + SVN +  LDAP
征服 Apache + Tomcat
征服 Nginx
征服 Nginx + Tomcat
5
3
分享到:
评论
3 楼 highill 2015-02-15  
http://httpd.apache.org/docs/2.4/mod/mod_authnz_ldap.html#operation

Apache httpd文档有关于 mod_authz_ldap的基本概念介绍, 感觉很不错啊
各种绑定都有基础的例子

The Require Directives
    Require ldap-user #绑定 ldap用户
    Require ldap-group #绑定 ldap组
    Require ldap-dn  # 绑定 ldap dn
    Require ldap-attribute # 绑定  ldap 属性
    Require ldap-filter # 绑定 ldap 过滤器

一般来说, 用 ldap-user, ldap-group,ldap-dn就可以满足svn的访问需求了


2 楼 niko7 2011-03-04  
非常感谢楼主的总结和分享,受益匪浅。
期待完成本篇大作!
另外期望看到用双向数字证书进行认证的资料。
1 楼 sawen21 2011-01-23  
很多公司都是ldap存储部门结构及用户信息,内部系统统一认证用ldap做就不需要记忆太多的用户名密码,确实方便,楼主每个步骤说的很明白,很受用 

相关推荐

    apache+svn安装配置

    Apache Subversion(简称SVN)是一个开源的版本控制系统,常用于软件开发中的代码管理。Apache HTTP Server(简称Apache)是世界上最流行的HTTP服务器软件,能够提供Web服务。将Apache与SVN结合,可以创建一个集中式...

    Ubuntu+svn+ssl+ldap

    【Ubuntu+svn+ssl+ldap】的安装及集成是一个复杂的过程,涉及到Ubuntu操作系统、Subversion (SVN) 版本控制系统、SSL安全套接层以及Lightweight Directory Access Protocol (LDAP) 用户认证。以下是对这些技术的详细...

    ubuntu apache+svn 常用配置

    1. 添加Apache的SVN模块:`sudo apt-get install libapache2-svn` 2. 安装Subversion:`sudo apt-get install subversion` 三、配置Apache与SVN集成 1. 创建SVN仓库:`svnadmin create /var/svn/repo_name` 2. 配置...

    apache+svn配置网络服务器

    Apache 和 Subversion(SVN)的组合是一种常见的版本控制系统,用于管理软件开发中的源代码和其他文件。Apache 作为Web服务器,而Subversion则提供版本控制功能。以下是对这个主题的详细解释: 一、Apache Web...

    centos 下apache+svn安装.docx

    为了在Apache上启用SVN服务,需要编辑Apache的配置文件(通常是`/etc/httpd/conf/httpd.conf`),并添加`LoadModule dav_svn_module /usr/local/subversion/mod_dav_svn.so`和`LoadModule authz_svn_module /usr/...

    Apache+Trac+SVN

    【Apache+Trac+SVN】是一个常见的项目管理和版本控制系统组合,主要应用于Windows环境。Apache作为Web服务器,Trac是一个带有内置wiki和问题跟踪系统的Web应用程序,而SVN(Subversion)则是版本控制系统,用于追踪...

    apache+svn安装

    ### Apache + SVN 安装与配置详解 #### 概述 在软件开发过程中,版本控制系统是必不可少的工具之一。Subversion(简称SVN)作为一款经典的集中式版本控制系统,在项目管理方面发挥着重要作用。而Apache作为一款...

    Cent OS上配置Apache2 + SVN

    Cent OS上配置Apache2 + SVN Cent OS上配置Apache2 + SVN

    ubuntu下Apache2+Svn详细配置

    Apache2+Svn 在 Ubuntu 下的详细配置 在本文中,我们将详细介绍如何在 Ubuntu 系统下配置 Apache2+Svn,以便实现版本控制和协作开发。本文将涵盖从安装 Apache2 和 Svn 服务器到配置 Svn 仓库的所有步骤。 安装 ...

    apache+svn+MySQL+PHP+svnmanager+bugfree完全安装手册

    ### Apache+SVN+MySQL+PHP+SVNManager+BugFree 完全安装手册 #### 一、Apache+SVN 安装与配置 ##### 1. 安装 Apache 2.2.9 在安装 Apache 之前,请确保你的计算机运行的是 Windows 2000、Windows XP SP1 或 ...

    windows下apache+svn

    【Apache + SVN 在 Windows 下的配置与应用】 Apache 和 Subversion(简称 SVN)是软件开发过程中常见的工具,Apache 作为一款流行的开源Web服务器,而 SVN 则是一种版本控制系统,用于协同开发和管理代码版本。本...

    centos搭建PHP+mysql+apache+svn

    非常便利的centos搭建PHP+mysql+apache+svn环境搭建文档,只需复制粘贴

    Apache+SVN+Trac配置详解

    ### Apache+SVN+Trac配置详解 #### 第1章 引言 ##### 1.1 编写目的 本文档旨在详细介绍如何安装与配置Apache、Subversion (SVN) 和 Trac,以便构建一个高效的版本控制系统和项目管理平台。在软件开发过程中,版本...

    Windows 下面 apache+SVN配置

    在Windows环境下配置Apache服务器与Subversion(SVN)的集成是一项常见的任务,这对于团队协作开发至关重要。Apache作为流行的Web服务器,而SVN则是一个版本控制系统,二者结合可以让开发者通过Web界面进行代码版本...

    Apache+SVN+Trac

    【Apache+SVN+Trac】是一个常见的项目管理和版本控制系统组合,主要用于软件开发团队协作。Apache 作为Web服务器,Subversion (SVN) 提供版本控制功能,而 Trac 则是一个集成的项目管理工具,提供了缺陷跟踪、文档...

    windows下配置apache+svn+trac的方法详解

    ### Windows 下配置 Apache + SVN + Trac 的方法详解 #### 一、背景介绍 在进行软件开发的过程中,项目管理和版本控制是非常重要的环节。为了更好地管理项目中的问题追踪、代码版本控制以及文档协作等功能,通常会...

    apache+svnserver配置

    ### Apache + SVNServer 配置详解 #### 一、配置前准备 在开始Apache与Subversion(SVN)服务器的配置之前,确保已正确安装Apache Web服务器和Subversion。本指南将详细介绍如何在Windows环境下配置Apache与...

Global site tag (gtag.js) - Google Analytics