Skip to content


使用svnserve的SASL认证

Subversion1.5引入了SASL库,这给了我们机会使用SASL提供的认证方式来为svnserve进行认证,本文介绍了Windows下的配置方式。

SASL核心发布目前支持认证协议有:

  • ANONYMOUS
  • CRAM-MD5
  • PLAIN
  • GSSAPI (MIT Kerberos 5 or Heimdal Kerberos 5)
  • DIGEST-MD5

也支持如下的认证协议:

  • LOGIN
  • SRP
  • NTLM
  • OTP
  • KERBEROS_V4

Windows下这些模块可能都保存为dll,你可以选择自己编译,也可以选择获取二进制程序,现在还不清楚官方的Subversion发布会不会包含所有的模块,但是现在已知的Collabnet Subversion包含了几乎所有的模块,下载地址为:

http://merge-tracking.open.collab.net/servlets/ProjectProcess?pageID=3711

SASL配置

linux下的配置文件好说,windows下SASL配置文件需要使用注册表配置,要在你的系统配置SASL,第一步就是设置注册表:

[HKEY_LOCAL_MACHINE\SOFTWARE\Carnegie Mellon\Project Cyrus\SASL Library]
“SearchPath”=”C:\\Program Files\\CollabNet Subversion Server”
“ConfFile”=”C:\\Program Files\\CollabNet Subversion Server”

这个是安装Collabnet Subversion时自动创建的,可以看到有两个键,其中“SearchPath”指明所有的扩展认证方式库存放的路径(那些dll),而ConfFile指明SASL配置文件的路径,在上面的配置里,配置文件应该是“C:\\Program Files\\CollabNet Subversion Server\\svn.conf”。下面看看我们的这个svn.conf文件:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: ANONYMOUS CRAM-MD5
sasldb_path: C:\svn_repository\sasldb

其中pwcheck_method指明检查的方法,这里是“auxprop ”,这个pwcheck_method还对应了如启动一个代理作为认证服务等方式,而现在的意思就是使用本文件说的方式去检查。然后我们指明auxprop_plugin为sasldb,也就是使用一个文件存放用户名密码,也就是“C:\svn_repository\sasldb”,其它的认证信息存放plugin还有sql和ldapdb。而mech_list指明了认证信息传递机制,现在指明的是ANONYMOUS和CRAM-MD5。 这里还需要做的是创建那个“C:\svn_repository\sasldb”文件:

saslpasswd2 -c -f C:\svn_repository\sasldb -u myrealm username

然后输入密码,这样就在sasldb建立了一个用户,注意“myrealm ”,后面我们还会用到,要想查看建立的用户,可以用:

sasldblistusers2.exe -f C:\svn_repository\sasldb

好的,到此为止SASL部分已经好了,需要注意的是,前面svn.conf的修改要生效必须重启svnserve,这与以前我们修改svnserve.conf立即生效不一样了。我们再去对svnserve作出相应的修改。

svnserve配置

打开一个svnserve管理的库,打开svnserve.conf,把下面这行的注释去掉

use-sasl = true

然后修改realm为前面的myrealm:

realm = myrealm

总结

好的,现在可能就好了,checkout一个工作拷贝,然后提交看看,是不是用了sasldb中的用户名密码。

比较愁人的是,SASL的文档实在太少了,而各种各样的说明也非常不清楚,我也是在不断的整理中逐渐澄清了一些问题。其实SASL更多的是提供了很多认证信息传递的协议,而对于密码保存的方式,他目前只是支持了文件、SQL和LDAP等方式,对于很多人希望的域认证来说,似乎要送ldap访问Active Directory方式入手(后面实际尝试一下),而前面所说的NTLM,只是说认证协议是NTLM的,并不能支持使用现有的域用户认证。

参考资料

Related posts:

  1. Dreamhost上编译Subversion
  2. Windows编译Subversion简要说明
  3. Subversion: Export changed Files in a revision range
  4. Subversion 1.5发布说明
  5. About Me

Posted in recommend, subversion. Tagged with , , , .

0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

Some HTML is OK

(required)

(required, but never shared)

or, reply to this post via trackback.