【发布时间】:2012-04-23 08:49:05
【问题描述】:
编辑
现在我知道我需要什么了。我需要用 Java 实现 Kerberos 协议转换(S4U2Self)。 .Net 中有示例,但 Java 没有。
有这个第三方库Quest Single Sign on for Java 声称可以这样做。我已经下载了 JAR,它看起来不错,但我宁愿使用自定义实现而不是其他人的代码(必须付费)。
任何人都可以在需要做的事情上抢先一步吗?任何现有的开放 Java API 来处理这个问题?
谢谢
之前的问题
目前我的应用程序只知道用户 ID,我需要使用 Kerberos 对该用户进行身份验证,创建服务票证并使用它来访问第三方服务。
我的应用程序需要充当代理,并且需要代表提供的用户 ID 向第三方服务发送请求。这是因为对其他第三方应用程序存在限制。
我无法以任何方式获取给定用户 ID 的密码,也无法从同一用户 ID 获取以前的服务票证(转发它)。我知道,管理员用户的凭据。
有没有办法只使用用户 ID(主名称)来创建服务令牌?
也许是某种委托,其中受信任的委托人已经通过身份验证并为其他委托人请求服务票证?
谢谢
【问题讨论】:
-
客户端代码如何访问第三方服务?这正是 Windows 模拟的用途,因此,如果尚未编写该服务以使用它,我认为您不会有太多运气。我认为 S4U 不会在客户端提供帮助。它允许(高度特权的)服务构造模拟令牌,无需密码且仅供自己使用(令牌不能在其他机器上使用)。
-
谢谢,第三方服务是通过HTTP请求访问的。他们有一个 SPI,它返回客户端代码(我的应用程序)需要的信息。该服务确实支持 Kerberos 身份验证,但问题是它会根据发出请求的用户返回不同的信息。
标签: java windows impersonation kerberos