我正在尝试设置SVN以针对ActiveDirectory进行身份验证。我知道如果你设置SVN使用Apache服务是可能的,但这样做会带来太多的开销,并且SVN运行速度太慢。通过阅读SVN文档,听起来现在应该可以(因为SASL已经在1.5中集成到SVN中)来配置SVN以在不使用Apache的情况下对ActiveDirectory进行身份验证。不幸的是,SVN和SASL的文档非常通用,缺乏帮助使其正常工作的细节。
有没有人得到这个工作?如果您可以提供一些示例配置文件或高级步骤来指示我自己(以及可能是其他人)正确的方向,那将是一个巨大的帮助。
答案 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=yes
,MECHANISMS="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)
答案 2 :(得分:1)
我在其中一个邮件列表中找到了this post。下次我试着让这个工作我将参考这个信息。我将在下面引用它作为参考。
我刚尝试让svnserve + SASL在Windows上运行 Mark Phippard的帮助,还有一些补充/更正 需要svn.serverconfig.svnserve.sasl部分。
你谈的是subversion.conf文件,但至少在Windows上 被称为svn.conf。
在Windows下,数据库文件的默认名称为sasldb2 位于C:\ CMU。如果你没有在svn.conf中指定任何内容,那就是 SASL在尝试进行身份验证时会查找它 颠覆。
但是,您可以通过添加来指定要使用的SASL数据库文件 svn.conf的另一行,格式为:sasldb_path: c:\ svn_repository \ sasldb即一个名为sasldb的文件 C:\ svn_repository
可以更好地描述注册表项:SearchPath - 目录 包含sasl * .dll插件的路径,例如saslCRAMMD5.dll(我们不是 在这里谈论libsasl.dll)。 ConfFile - 包含的目录路径 svn.conf文件。请注意这里的不一致:这是目录 包含conf文件,而conf中的sasldb_path值 文件指向数据库文件本身,而不是其包含的目录。
- 醇>
在Windows上使用saslpasswd2时,需要指定数据库 显式文件(不要认为它会使用c:\ CMU \ sasldb2作为默认值), 所以命令行的一个更好的例子是:
saslpasswd2 -c -f c:\ svn_repository \ sasldb -u realm username
- Windows用户(通常)不构建自己的程序 - 他们有 仆人/开发人员为他们做这件事;-)那么他们会去哪里 从saslpasswd2? Open Collab Net有一个方便的svn服务器 包含这些程序的安装程序,甚至安装svnserve as 一项服务。可能值得一提。不确定你会想要什么链接 提供,因为它目前只存在于合并跟踪/测试网站上。
醇>西蒙
答案 3 :(得分:0)
我认为这在技术上是可行的。请参阅link点8.GSSAPI和microsoft technet article。
我已经按照here所述的SVN 1.6 + SASL实践经验。它对我们来说很好。所以我认为你最大的挑战是“结婚”的SASL和Active目录。