如何在Java中实现Kerberos协议转换? (S4U2Self)

时间:2012-04-11 03:14:49

标签: java windows impersonation kerberos

修改

现在我知道我需要什么。我需要在Java中实现Kerberos协议转换(S4U2Self)。 .Net中有例子,但Java没有例子。

有第三方图书馆Quest Single Sign on for Java声称这样做。我已经下载了JAR,它看起来不错,但我宁愿使用自定义实现而不是别人的代码(必须付费)。

任何人都可以在需要做的事情上先行一步吗?是否有任何现有的开放Java API来处理这个问题?

由于

之前的问题

目前我的应用程序只知道用户ID,我需要使用Kerberos对该用户进行身份验证,创建服务票证并使用它来访问第三方服务。

我的应用程序需要像代理一样运行,并且需要代表提供的用户ID向第三方服务发送请求。这是因为其他第三方应用程序存在限制。

我无法以任何方式获取给定用户ID的密码,也无法从同一用户ID获取以前的服务票证(转发它)。我知道,管理员用户的凭据。

有没有办法只使用用户ID(主体名称)创建服务令牌?

也许是某种委托,其中可信主体已经过身份验证并请求其他主体的服务票据?

由于

1 个答案:

答案 0 :(得分:1)

S4U2self / S4U2proxy应该是JDK 8:

与此同时,我正在查看https://github.com/cconlon/kerberos-java-gssapi

(他的SWIG输入文件不包含gss_acquire_cred_impersonate_name,但更改很简单。弄清楚如何使用它可能需要更长的时间。)