Kerberos身份验证,服务主机和对KDC的访问


10

我有一个Web应用程序(主机名:service.domain.com),并且希望使用Kerberos身份验证来识别登录到Windows域的用户。Microsoft AD(Windows Server 2008 R2)提供Kerberos服务。

该服务是一个Java Web应用程序,使用Spring Security Kerberos扩展库来实现SPNEGO / Kerberos协议。我在AD中创建了一个密钥表文件,其中包含一个共享密钥,该密钥应足以验证客户端浏览器使用Web应用程序发送的Kerberos票证。

我的问题是,服务主机(service.domain.com)是否需要具有对KDC(kdc.domain.com)的防火墙访问权限(TCP / UDP 88),或者密钥表文件足以使服务主机能够解密Kerberos票证并提供身份验证?


该服务不需要在您的设置中访问KDC。客户绝对会。
jouell

Answers:


11

服务永远不需要与KDC交谈。它需要KDC生成的密钥表,但您可以通过任何方式进行复制。他们再也不必互相交谈。

我认为发生的事情的过度简化版本或多或少是这样的:

设置服务

  • KDC会生成一个服务密钥表(如果您愿意,它就像一个秘密密钥/密码)
  • 密钥表以某种方式提供给服务scp或根据需要在USB记忆棒上携带)

客户端连接到服务

  • 客户请求服务票证KDC
  • KDC生成服务票证,其中包含一些只能由服务密钥表解密的信息(这是位于服务器上的文件)
  • 客户将其服务发送到服务
  • 服务使用其密钥表来验证车票(无需网络通信)

谢谢,这也是我从Kerberos Wikipedia文章中了解的内容。这个问题似乎有矛盾的答案:
Web

好吧,我不知道其他答案中发生了什么,但是我确实有一个非常远程的SSH服务器,它正在执行基于Kerberos的身份验证,并且它肯定无法访问我家里专用LAN上的KDC。网络服务器可能会发生一些奇怪的事情吗?也许吧,但我对此表示高度怀疑。
chutz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.