需要通过GSSAPI为Win 2008 AD确定适合svn / svnserve身份验证的SPN

时间:2012-05-01 16:11:57

标签: windows svn kerberos sasl gssapi

我正在通过SVNSERVE设置基于Windows的Subversion设置,用户可以通过SASL和GSSAPI对Active Directory进行身份验证。我知道有些提供商提供Subversion的预打包安装,并且开箱即用,但是在我的情况下这些不是一个选项。

我正在使用Subversion 1.7.4 for Windows,MIT Kerberos V5(3.2.2)for Windows,并将从Win64盒子上的Tortoise SVN客户端访问存储库。 SVNSERVE作为域帐户下的系统服务运行。

对于我的存储库服务器,我相信我已经准备好所有基本部分(svn,Kerberos,SVNSERVE延迟到SASL身份验证,然后将其配置为使用GSSAPI作为机制)。我现在到了尝试查询存储库导致“无法协商身份验证机制”的时候,这是我期望的,因为我还没有为存储库主机定义SPN查询Kerberos。网络捕获告诉我,spn“svn / * FQDN_of_host_omitted *不是一个公认的SPN,这正是我期待的......

所以,虽然我知道我需要一个SPN,但我需要一些关于获取正确的 SPN集的指导,因为我不能在这个测试环境中自己做(必须请求,所以我我想确保我要求正确的组合)。我的信念是我需要下面列出的SPN,但如果有人能够证实我是在正确的方向,我将非常感激。我对于是否纯粹针对主机的svn服务需要SPN,或者是否通过指定帐户针对主机的svn服务,或两者感到困惑。

所以,我相信我可能需要以下一个或全部。哪个(如果有的话)是对还是错?:

#1 SPN for svn service on non-FQDN of host machine:
setspn -F -A svn/*nonFQDN_of_host* *nonFQDN_of_host*

#2 SPN for svn service on FQDN of host machine:
setspn -F -A svn/*FQDN_of_host* *FQDN_of_host*

#3 SPN for svn service from non-FQDN of host through service account:
setspn -F -A svn/*nonFQDN_of_host* *domain\svnhostaccount*

#4 SPN for svn service from FQDN of host through service account:
setspn -F -A svn/*FQDN_of_host* *domain\svnhostacccount*

提前感谢您的帮助,希望这个问题不是太愚蠢:)

1 个答案:

答案 0 :(得分:1)

我正在翻阅旧问题并偶然发现了这个问题。回答很晚,因为我自2016年10月以来才成为会员。这个问题的答案如下。注意:使用setspn -S代替setspn -A,原因是" -S"当旧的" -A"时,开关会查找重复项。开关没有。此外,在设置新的SPN时,通常首选将SPN绑定到服务帐户而不是主机帐户,因为这样可以在您希望通过负载均衡器发送流量时提供更大的灵活性;流量可以路由到预先确定的可用机器池内的任何主机。绑定到主机的SPN只能在指定的主机上运行。所有这一切,你可能想要在你提出问题时运行你的setspn命令,如下所示:

#1 主机非FQDN上的svn服务的SPN:

setspn -F -S svn/*nonFQDN_of_host* *nonFQDN_of_host*

#2 主机FQDN上的svn服务的SPN:

setspn -F -S svn/*FQDN_of_host* *FQDN_of_host*

#3 从主机的非FQDN到服务帐户的svn服务的SPN:

setspn -F -S svn/*nonFQDN_of_host* *svnhostaccount*

#4 通过服务帐户从主机FQDN获取svn服务的SPN:

setspn -F -S svn/*FQDN_of_host* *svnhostacccount*