SVN + SASL + Active Directory:如何

时间:2009-11-25 02:11:41

标签: svn authentication active-directory ldap sasl

我正在尝试设置SVN以针对ActiveDirectory进行身份验证。我知道如果你设置SVN使用Apache服务是可能的,但这样做会带来太多的开销,并且SVN运行速度太慢。通过阅读SVN文档,听起来现在应该可以(因为SASL已经在1.5中集成到SVN中)来配置SVN以在不使用Apache的情况下对ActiveDirectory进行身份验证。不幸的是,SVN和SASL的文档非常通用,缺乏帮助使其正常工作的细节。

有没有人得到这个工作?如果您可以提供一些示例配置文件或高级步骤来指示我自己(以及可能是其他人)正确的方向,那将是一个巨大的帮助。

4 个答案:

答案 0 :(得分:3)

启用了SASL的SVN(在Debian v7上),使用Active Directory(在另一台服务器上)

请注意,我已经设置了samba和winbind,其中包括libsasl2-2,所以也获得了启动可执行文件和svnserve和模块(svn plain(或其他)机制需要工作,这些(只是FYI)将它们放入/ usr /lib/x86_64-linux-gnu/sasl2/libplain.so):

sudo apt-get install sasl2-bin svnserve libsasl2-modules

sudo pico /etc/default/saslauthd

START=no更改为START=yesMECHANISMS="pam"更改为MECHANISMS="ldap"THREADS=0(而不是5),并删除前面的/var来自最后一行的/run,以便它OPTIONS="-c -m /run/saslauthd";控制x,y,输入

sudo pico /etc/saslauthd.conf

添加以下内容(注意:您可能需要在dc =系列前面添加“ou =文件夹”):

ldap_servers: ldap://hostname.of.server<br />
ldap_search_base: dc=hostname,dc=of,dc=server<br />
ldap_bind_dn: cn=usernamehere,dc=hostname,dc=of,dc=server<br />
ldap_bind_pw: password<br />
ldap_filter: samaccountname=%u<br />
sudo /etc/init.d/saslauthd start

运行sudo testsaslauthd -u usernamehere -p password以测试ldap设置,并cat /var/log/auth.log查看日志。

将以下行添加到文件/usr/lib/sasl2/svn.conf

pwcheck_method: saslauthd
mech_list: plain

创建存储库:

mkdir /data
svnadmin create /data/repohere

假设某种先前的“svnadmin dump / data / repohere&gt; /data/repohere.dump”     svnadmin load / data / repohere

pico /data/repohere/conf/svnserve.conf

取消注释(删除前导前导空格);并且,修改anon-access和authz-db(并注意我将authz放在/ data中,而不是我的多个repos共享它):

anon-access = none<br />
auth-access = write<br />
authz-db = ../../authz<br />
use-sasl = true<br />
pico /data/authz

添加以下内容:

[groups]<br />
whatever = username1,username2<br />
[/]<br />
@whatever = rw<br /> 

在启动时安排svnserve(抱歉,找不到一个,所以手动制作一个):

sudo cp /etc/init.d/skeleton /etc/init.d/svnserve
sudo chmod 755 /etc/init.d/svnserve
sudo update-rc.d svnserve defaults
sudo pico /etc/init.d/svnserve

将DESC更改为“subversion server”,将NAME更改为“svnserve”,取出DAEMON的“sbin”中的“s”(使其成为/ bin /),将DAEMON_ARGS更改为“-d -r /” data --log-file /var/log.svn.log“

sudo /etc/init.d/svnserver start

测试你最喜欢的svn客户端(例如TortoiseSVN)!

答案 1 :(得分:1)

使用VisualSVN Server

在Windows上运行SVN

答案 2 :(得分:1)

我在其中一个邮件列表中找到了this post。下次我试着让这个工作我将参考这个信息。我将在下面引用它作为参考。

  

我刚尝试让svnserve + SASL在Windows上运行   Mark Phippard的帮助,还有一些补充/更正   需要svn.serverconfig.svnserve.sasl部分。

     
      
  1. 你谈的是subversion.conf文件,但至少在Windows上   被称为svn.conf。

  2.   
  3. 在Windows下,数据库文件的默认名称为sasldb2   位于C:\ CMU。如果你没有在svn.conf中指定任何内容,那就是   SASL在尝试进行身份验证时会查找它   颠覆。

  4.   
  5. 但是,您可以通过添加来指定要使用的SASL数据库文件   svn.conf的另一行,格式为:sasldb_path:   c:\ svn_repository \ sasldb即一个名为sasldb的文件   C:\ svn_repository

  6.   
  7. 可以更好地描述注册表项:SearchPath - 目录   包含sasl * .dll插件的路径,例如saslCRAMMD5.dll(我们不是   在这里谈论libsasl.dll)。 ConfFile - 包含的目录路径   svn.conf文件。请注意这里的不一致:这是目录   包含conf文件,而conf中的sasldb_path值   文件指向数据库文件本身,而不是其包含的目录。

  8.   
  9. 在Windows上使用saslpasswd2时,需要指定数据库   显式文件(不要认为它会使用c:\​​ CMU \ sasldb2作为默认值),   所以命令行的一个更好的例子是:

  10.         

    saslpasswd2 -c -f c:\ svn_repository \ sasldb -u realm username

         
        
    1. Windows用户(通常)不构建自己的程序 - 他们有   仆人/开发人员为他们做这件事;-)那么他们会去哪里   从saslpasswd2? Open Collab Net有一个方便的svn服务器   包含这些程序的安装程序,甚至安装svnserve as   一项服务。可能值得一提。不确定你会想要什么链接   提供,因为它目前只存在于合并跟踪/测试网站上。
    2.         

      西蒙

答案 3 :(得分:0)

我认为这在技术上是可行的。请参阅link点8.GSSAPI和microsoft technet article

我已经按照here所述的SVN 1.6 + SASL实践经验。它对我们来说很好。所以我认为你最大的挑战是“结婚”的SASL和Active目录。