2

我有一个与 Kerberos 服务器对话并执行各种操作的 Java API。截至目前,我的 API 请求到 Kerberos 服务器的不可更新票证。据我了解,jaas 配置文件具有将 renewTGT 选项设置为 true 的选项,以便可以签发可更新票证。但是,Jaas 似乎对设置“renewUntil”时间有很多限制。谁能告诉我我们如何申请可更新票并控制其可更新性?基本上,有没有一种方法可以执行与 Java 等效的操作: kinit -R ?提前致谢。

4

1 回答 1

4

从 JDK7 (1.7.0_55) 开始,JAASKrb5LoginModule不提供在身份验证时请求可更新 TGT 的任何选项,因此目前无法使用 JAAS。您或许能够实现这一点,但您需要绕过 JAAS 直接使用内部 Kerberos 类。

在内部,使用提供的密码或 keyTab Krb5LoginModule实例化 a以获取凭据。有一个方法,但是在登录模块中没有调用它。如果可以访问它,您可以调用,如果 KDC 配置为允许可更新的票证,那么我希望返回的票证是可更新的。sun.security.krb5.KrbAsReqBuilderKrbAsReqBuildersetOptions(KDCOptions options)KDCOptions#set(KDCOptions.RENEWABLE, true)

于 2014-09-03T23:50:55.187 回答