我正在通过 SVNSERVE 设置基于 Windows 的 Subversion 设置,在该设置下,用户通过 SASL 和 GSSAPI 对 Active Directory 进行身份验证。我知道一些供应商提供预打包的 Subversion 安装,并提供开箱即用的集成 AD 支持,但在我的情况下,这些不是一个选项。
我在 Windows 上使用 Subversion 1.7.4,在 Windows 上使用 MIT Kerberos V5 (3.2.2),并将从 Win64 机器上的 Tortoise SVN 客户端访问存储库。SVNSERVE 在域帐户下作为系统服务运行。
对于我的存储库服务器,我相信我已经准备好所有基本部分(svn、Kerberos,SVNSERVE 推迟到 SASL 身份验证,然后配置为使用 GSSAPI 作为机制)。我现在到了尝试查询存储库会导致“无法协商身份验证机制”的地步,这是我目前所期望的,因为我还没有定义存储库主机查询 Kerberos 的 SPN。网络捕获告诉我 spn "svn/*FQDN_of_host_omitted* 不是公认的 SPN,这正是我在这一点上所期望的......
所以,虽然我知道我需要一个 SPN,但我需要一些指导来获得正确的SPN 集,因为我不能在这个测试环境中自己做(必须请求,所以我想确保我请求正确的组合)。我的信念是我需要下面列出的 SPN,但如果有人能证实我的方向正确,我将不胜感激。我很困惑是否需要 SPN 纯粹用于针对主机的 svn 服务,或通过指定帐户针对主机的 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*
提前感谢您的帮助,希望这个问题表面上不会太愚蠢:)