java - Java 中的可过期 Kerberos 票证

标签 java kerberos gssapi

我需要一个postdatable Kerberos ticket在我的 Java 应用程序中。但我在GSSContext接口(interface)中没有找到任何方法。 Java 不支持此 Kerberos 功能吗?

目的如下: 在我们的应用程序中,用户可以设置将在未来某个时间运行的批处理。并且应用程序服务器必须使用在批处理执行时有效的委托(delegate)票证,而原始票证可能已过期。

编辑:为了澄清我的第一句话:我发现 GSSContextGSSContextImpl 以及 GSSContextImpl 无法访问仅在 Krb5Context 中可用的 setAuthTime() 方法。在没有深入研究所有细节的情况下,似乎只有通过直接访问未记录的类才能进行后期身份验证。

由于让客户端浏览器发送设置了正确标志的票证似乎存在其他问题 - 正如 @Michael-O 指出的那样 - 我想我必须找到另一个解决方案,也许只是询问用户用户名和密码,用批处理加密保存它们,然后在批处理开始时请求新票证。

过期票证的概念听起来很适合我的问题,但似乎缺乏实际用途,导致现有环境无法很好地支持它。

最佳答案

除了我的评论:

Frank, did you actually read chapter 2.4 of the RFC4120?. The TGT from the client must have the initial flag MAY-POSTDATE. Please check that first. Yes, Java GSS supports that but I haven't tried that myself. See this search.

弗兰克,您的问题有解决方案。昨天刚来找我。我已经回答过这个问题了。向后移植此代码可能需要一些工作,但这是值得的。

参见Generating AD Kerberos tickets without user password .

关于java - Java 中的可过期 Kerberos 票证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14385623/

相关文章:

java - 打印没有类名的静态变量会导致错误

java - 是否可以将 Mockito 中的某些返回值列入黑名单?

authentication - 从 Spark 访问 Hdfs 会出现 token 缓存错误 Can't get Master Kerberos principal for use as renewer

hadoop - 使用 Zookeeper 客户端连接到 Hadoop 集群的 KrbException - UNKNOWN_SERVER

java - 使用 Java 实现的 Kerberos SSO

java - 在 Java 中使用 PostgreSQL 域和结构类型

java - NumberPicker 的格式化值在单击时消失

c - 如何使用 kerberos 安全地签名和加密消息?

iis - 约束委派 (Kerberos) 仅使用 localhost 工作

java - GSSAPI:安全上下文循环