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



我正在Linux机器上运行Kerby (MIT Kerberos Java实现)的一个实例。我有一个在Windows机器上运行的web应用程序。使用Spring Security Kerberos保护web应用程序(遵循本文中描述的步骤)。

根据wikipedia上客户端身份验证的Kerberos协议描述,步骤1是

  1. 客户端发送用户ID的明文消息给AS (Authentication Server),代表用户请求服务。

客户端(在我的情况下)是一个web浏览器。web浏览器如何知道身份验证服务器在哪里?我在文章或其引用代码中没有看到任何提及。它是从KDC导出的用于服务主体名称(SPN)的密钥选项卡的一部分吗?

Spring Security Keberos使用SPNEGO协议获取服务令牌(请参阅参考文章的第3节)。它"指示"用户代理获取服务令牌。然后,用户代理将使用操作系统库来检索它。操作系统知道KDC所在的位置(*nix krb5.conf, Windows域/AD成员)。keytab可用于向KDC (Spring Security Keberos文档)验证客户端身份。Spring似乎正在利用操作系统的krb5.conf文件,因为它不允许指定KDC。您应该首先在部署web应用程序的主机上设置OS Kerberos客户端,并通过kinit

使用keytab文件测试身份验证。

最新更新