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

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

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

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

服务 无需KDC进行交谈。 它需要由KDC生成的密钥表 ,但是您可以通过任何您想要的方式进行复制。 他们从来不需要彼此交谈。

我相信的过于简化的版本或多或less是这样的:

build立服务

  • KDC生成一个服务密钥表 (如果你喜欢,它就像一个密钥/密码)
  • 这个密钥表是以某种方式提供给服务的scp或者如果你想要的话用USB存储器)

客户端连接到服务

  • 客户端KDC请求服务票据
  • KDC生成服务票据 ,其中包含一些只能由服务密钥表 (这是服务器上的文件)解密的信息,
  • 客户端将其服务票据发送到服务
  • 服务使用其密钥表来validation票证 (不需要networking通信)