我正在开发一个需要代表用户生成Kerberos票证的Java EE服务器应用程序。
我正在开发的应用程序将使用备用凭据(非Active Directory,比如生物识别)对用户进行身份验证,然后需要以某种方式生成显示用户已通过身份验证的Kerberos票证。然后,我将使用Kerberos票证生成SPNEGO令牌,并在HTTP标头中插入令牌,以便用户不必在浏览器的后续请求中重新进行身份验证。
是否可以代表用户在没有用户的原始AD密码的情况下生成该Kerberos票证? (假设我可以访问AD服务帐户登录名和密码)。如果有可能,我该怎么做呢?什么样的配置,权限是必要的?
答案 0 :(得分:3)
是的,这是可能的。微软已经为此扩展了Kerberos。这称为用户服务(S4U)。您的案例称为S4U2Self
(协议转换)。这将与Java 8一起使用。您可以检查ticket并将该代码添加到Java认可的类路径中。您可以在MIT Kerberos wiki中阅读更多内容。