是否在 JAAS 中使用带有 Kerberos 登录模块的 SPN

Whether to use an SPN with a Kerberos loginmodule in JAAS

我正在使用 Jaas 构建一个将由 Jconsole 使用的 Kerberos 登录模块。

Jconsole 将是用于访问具有公开 MBean 的进程的客户端,kerberos 登录模块将对用户进行身份验证。

用户将通过 Jconsole 登录,Jconsole 会将用户数据传递给登录模块,然后用户名和密码由 Kerberos 登录模块处理,用户凭证将根据中央活动目录进行验证。

我在为 Kerberos 配置时遇到问题。即。这是否需要设置 SPN?还是只需要设置一个 KeyTab?

如果您要求用户在控制台上输入用户名和密码,那么您既不需要密钥表也不需要 SPN。您只需要一个 JAAS 插件,它会询问密码。 Kerberos 会话将启动 JAAS 登录模块,您的应用程序中将有 TGT。

另一方面,如果您打算接受来自用户的现有 kerberos 会话(他们当前的 Windows 域会话),那么您需要在活动目录中包含 SPN,并且系统不会提示用户输入您的应用程序的密码。

密钥表只是存储在kerberos 数据库中的密钥的副本,您始终需要SPN 来生成密钥表。但反之则不然,您可以通过提供 SPN 密码从活动目录中获取会话密钥。