如何将密钥分发中心的位置指定为 Spring Security Kerberos?

How to specify the location of the Key Distribution Center to Spring Security Kerberos?

我是 运行 Kerby (MIT Kerberos Java implementation) on a Linux machine. I have a web application running on a Windows machine. The web application is secured using Spring Security Kerberos (following the steps described in this article) 的实例。

根据 the Kerberos protocol description for client authentication on wikipedia,第 1 步是

  1. The client sends a cleartext message of the user ID to the AS (Authentication Server) requesting services on behalf of the user.

客户端(在我的例子中)是一个网络浏览器。 Web 浏览器如何知道身份验证服务器在哪里?我在文章或其 referenced code 中没有看到任何提及。它是从 KDC 导出的服务主体名称 (SPN) 的密钥表的一部分吗?

Spring 安全性 Keberos 使用 SPNEGO 协议获取服务令牌(请参阅参考文章中的第 3 节)。它 'instructs' 用户代理获取服务令牌。然后用户代理将使用 OS 库来检索它。 OS 知道 KDC 的位置(*nix krb5.conf、Windows domain/AD 成员资格)。密钥表可用于向 KDC 验证客户端,Spring Security Keberos docs。似乎 Spring 正在利用 OS 的 krb5.conf 文件,因为它不允许指定 KDC。您应该始终首先在部署 Web 应用程序的主机上设置 OS Kerberos 客户端,并通过 kinit

使用密钥表文件测试身份验证