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

Str*_*oop 10 firewall active-directory kerberos springframework

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

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

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

chu*_*utz 11

服务永远不需要与KDC对话。它需要一个由KDC生成的密钥表,但您可以以任何方式复制它。他们永远不必互相交谈。

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

设置服务

  • KDC生成服务密钥表(如果您愿意,它类似于密钥/密码)
  • 密钥表以某种方式提供给服务scp如果需要,也可以随身携带)

客户端连接到服务

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