设置:我们有一台机器( SRV1 )通过Apache为运行Windows 7( CLI1 ),OS X( CLI2 )的客户机提供服务,大概还有一些运行Windows XP的客户机( CLI3 )。 虽然我们提供的资料安全性不高,但用于访问的用户名和密码在其他地方使用,所以我们希望保持authentication部分的encryption。
SRV1:尚未join我们的域名( DOMAIN1 )。 RedHat Linux 5.5,Apache 2.n,Subversion 1.6.12。 我们决定通过Apache和mod_dav_svn来运行颠覆,以实现连接的灵活性; 颠覆书推荐了安全灵活性的方法,这是我们用户需要的。
我们的团队:平庸脚本( MS ),Windows系统pipe理员( WS )和Linux系统pipe理员( LS )。
LS没有使用Active Directory或与Windows服务器通信的经验。 WS没有太多的Apache身份validation经验。 MS有一些历史知识和对基本Web协议的一些理解。
途径排除:
1)基本authentication以明文传输用户名和密码。
2)摘要式authentication似乎从未stream行过。
3)SSL将用于encryption身份validation,但也会导致服务器停止运行。 早期testing表明传输速度放慢因子为15.我们确实只需要encryption的用户名和密码。 通常情况下,这不是一个问题,但是我们的用户可能会推动大文件进出颠覆(无论颠覆是否合适,颠覆已被政治授权)。
4)我们当然可以为这个任务分配单独的用户名和密码,但我们正试图摆脱这种做法。
我们从哪里开始呢? 我们最终将要对包含DOMAIN2中的一些成员的DOMAIN1中的组进行身份validation,但那是另一个日子。
您可以使用Active Directory作为Kerberos KDC,并使用HTTP SPNEGO身份validation (或Kerberos,如果不可用)。 这将通过HTTP协商使用Kerberos进行身份validation(因此您的密码将被encryption,等等)。 Active Directory可以很好地对付MIT Kerberos 5客户端库(在Linux和OSX上可用),当然Active Directory也可以与Windows客户端一起工作。 缺点是它需要额外的设置在客户端(浏览器或命令行客户端,我认为svn可以使用MIT Kerberos 5)。
或者,如果您信任Apache Httpdpipe理员,则可以使用Active Directory作为LDAP服务器。 我认为Digestauthentication是不可能的(因为你需要在LDAP端使用特定的格式),所以你需要Basic + SSL。
我感到惊讶的是你的SSL放缓工厂15,即使是大文件。 SSL / TLS握手总会有开销,但是之后的开销应该是最小的(事实上对于更大的文件它几乎可以忽略不计)。