5

我正在尝试使用 JAVA GSSAPI 执行 NTLM 绑定。

我收到此错误:

javax.naming.AuthenticationException:GSSAPI [根异常是 javax.security.sasl.SaslException:GSS 启动失败 [由 GSSException 引起:未提供有效凭据(机制级别:票证请求中的选项设置无效。(101))]]

我认为(不确定)它在过去有效。为了解决其他问题,我尝试了“kinit”。从那时起停止工作。我什至删除了缓存文件(在 Windows 中找不到 kclear),但我仍然有这个问题。

我该如何解决?

4

3 回答 3

1

它可以帮助您排除故障

原因: Kerberos 要求 KDC 和客户端上的时间松散同步。(默认为 5 分钟内。)如果不是这种情况,您将收到此错误。

解决方案:同步时钟(或让系统管理员这样做)。

或者

原因:如果未获得有效的 Kerberos 凭据,则可能会发生这种情况。特别是,如果您希望底层机制获取凭据但您忘记通过将javax.security.auth.useSubjectCredsOnly系统属性值设置为 false 来指示这一点(例如,通过执行命令中的 -Djavax.security.auth.useSubjectCredsOnly=false),则会发生这种情况。

解决方案:javax.security.auth.useSubjectCredsOnly如果您希望底层机制获取凭证,而不是您的应用程序或包装程序(例如某些教程使用的登录实用程序)使用 JAAS 执行身份验证,请务必将系统属性值设置为 false。

于 2013-04-15T08:15:19.283 回答
1

好的,解决了。

我有

可代理=真

在我的 krb5 文件中。

删除它,它的工作原理!

于 2013-04-15T09:43:58.427 回答
0

对于未创建为 Forwardable 的 Kerberos 票证,我遇到了同样的问题(完全相同的 Java 错误堆栈)。

Kerbros 票据更新/监控过程是用 Perl 编写的,并使用 Authen::Krb5::Easy Perl 模块,忽略 /etc/krb5.conf “forwardable = true”设置。

于 2015-11-09T03:08:07.960 回答