jjzjj

windows - 需要通过 GSSAPI 为 svn/svnserve 身份验证确定正确的 SPN 以赢得 2008 AD

coder 2024-06-13 原文

我正在通过 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 作为机制)。我现在到了这样的地步:尝试查询存储库会导致“无法协商身份验证机制”,这是我预计此时的情况,因为我还没有为存储库主机定义 SPN查询 Kerberos。 Network Capture 告诉我 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*

在此先感谢您的帮助,希望这个问题从表面上看不会太愚蠢 :)

最佳答案

我在翻阅旧问题时偶然发现了这个问题。回答晚了,因为我从 2016 年 10 月才成为成员(member)。这个问题的答案如下。注意:使用 setspn -S 而不是 setspn -A,原因是“-S”开关会查找重复项,而旧的“-A”开关不会。此外,在设置新的 SPN 时,通常首选将 SPN 绑定(bind)到服务帐户,而不是主机帐户,因为这种方式在您希望通过负载均衡器发送流量时提供了更大的灵 active ;流量可以路由到预先确定的可用机器池中的任何主机。而绑定(bind)到主机的 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*

关于windows - 需要通过 GSSAPI 为 svn/svnserve 身份验证确定正确的 SPN 以赢得 2008 AD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10400606/

有关windows - 需要通过 GSSAPI 为 svn/svnserve 身份验证确定正确的 SPN 以赢得 2008 AD的更多相关文章

  1. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  2. ruby - 我需要将 Bundler 本身添加到 Gemfile 中吗? - 2

    当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/

  3. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  4. ruby - 通过 erb 模板输出 ruby​​ 数组 - 2

    我正在使用puppet为ruby​​程序提供一组常量。我需要提供一组主机名,我的程序将对其进行迭代。在我之前使用的bash脚本中,我只是将它作为一个puppet变量hosts=>"host1,host2"我将其提供给bash脚本作为HOSTS=显然这对ruby​​不太适用——我需要它的格式hosts=["host1","host2"]自从phosts和putsmy_array.inspect提供输出["host1","host2"]我希望使用其中之一。不幸的是,我终其一生都无法弄清楚如何让它发挥作用。我尝试了以下各项:我发现某处他们指出我需要在函数调用前放置“function_”……这

  5. ruby - rspec 需要 .rspec 文件中的 spec_helper - 2

    我注意到像bundler这样的项目在每个specfile中执行requirespec_helper我还注意到rspec使用选项--require,它允许您在引导rspec时要求一个文件。您还可以将其添加到.rspec文件中,因此只要您运行不带参数的rspec就会添加它。使用上述方法有什么缺点可以解释为什么像bundler这样的项目选择在每个规范文件中都需要spec_helper吗? 最佳答案 我不在Bundler上工作,所以我不能直接谈论他们的做法。并非所有项目都checkin.rspec文件。原因是这个文件,通常按照当前的惯例,只

  6. ruby - 通过 ruby​​ 进程共享变量 - 2

    我正在编写一个gem,我必须在其中fork两个启动两个webrick服务器的进程。我想通过基类的类方法启动这个服务器,因为应该只有这两个服务器在运行,而不是多个。在运行时,我想调用这两个服务器上的一些方法来更改变量。我的问题是,我无法通过基类的类方法访问fork的实例变量。此外,我不能在我的基类中使用线程,因为在幕后我正在使用另一个不是线程安全的库。所以我必须将每个服务器派生到它自己的进程。我用类变量试过了,比如@@server。但是当我试图通过基类访问这个变量时,它是nil。我读到在Ruby中不可能在分支之间共享类变量,对吗?那么,还有其他解决办法吗?我考虑过使用单例,但我不确定这是

  7. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  8. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  9. ruby-on-rails - Enumerator.new 如何处理已通过的 block ? - 2

    我在理解Enumerator.new方法的工作原理时遇到了一些困难。假设文档中的示例:fib=Enumerator.newdo|y|a=b=1loopdoy[1,1,2,3,5,8,13,21,34,55]循环中断条件在哪里,它如何知道循环应该迭代多少次(因为它没有任何明确的中断条件并且看起来像无限循环)? 最佳答案 Enumerator使用Fibers在内部。您的示例等效于:require'fiber'fiber=Fiber.newdoa=b=1loopdoFiber.yieldaa,b=b,a+bendend10.times.m

  10. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

随机推荐