我正在使用Jaas构建一个Kerberos登录模块,Jconsole将使用该模块。
Jconsole将是用于访问具有公开MBean的进程的客户端,kerberos登录模块将对用户进行身份验证。
用户将通过Jconsole登录,Jconsole将用户数据传递给登录模块,然后由Kerberos登录模块处理用户名和密码,并根据中央active directory验证用户凭据。
我在配置Kerberos时遇到问题。即这是否需要设置SPN?还是只需要设置一个KeyTab?
如果您在控制台上向用户询问用户名和密码,则既不需要keytab也不需要SPN。您所需要的只是一个JAAS插件,它将询问密码。Kerberos会话将由JAAS登录模块启动,您的应用程序中将包含TGT。
另一方面,如果您计划接受用户的现有kerberos会话(他们当前的Windows域会话),那么您确实需要在active directory中具有SPN,并且您的应用程序不会提示用户输入密码。
keytab只是存储在kerberos数据库中的密钥的副本,您总是需要SPN来生成keytab。但相反,您可以通过提供SPN密码从active directory获取会话密钥。