我正在尝试使用JAVA GSSAPI执行NTLM绑定。
我收到此错误:
javax.naming.AuthenticationException:GSSAPI [根异常是javax.security.sasl.SaslException:GSS启动失败[由GSS异常引起:未提供有效凭据(机制级别:故障单请求中的选项设置无效。(101))] ]
我认为(不确定)过去是否奏效。为了解决其他问题,我尝试了“kinit”。从那时起停止工作。我甚至删除了缓存文件(在Windows中找不到kclear),而且,我还有这个问题。
我该如何解决?
答案 0 :(得分:1)
它可以帮助你Troubleshooting:
原因: Kerberos要求KDC和客户端上的时间松散同步。 (默认值在5分钟之内。)如果不是这样,您将收到此错误。
解决方案:同步时钟(或让系统管理员这样做)。
或
原因:如果未获得有效的Kerberos凭据,则可能会发生这种情况。特别是,如果您希望底层机制获取凭据但是您忘记通过将javax.security.auth.useSubjectCredsOnly
系统属性值设置为false(例如,在执行时通过-Djavax.security.auth.useSubjectCredsOnly = false)来指示这种情况,则会发生这种情况。命令)。
解决方案:如果您希望底层机制获取凭据,而不是您的应用程序或包装程序(例如Login),请确保将javax.security.auth.useSubjectCredsOnly
系统属性值设置为false一些教程使用的实用程序)使用JAAS执行身份验证。
答案 1 :(得分:1)
好的,解决了。
我有
proxiable = true
在我的krb5文件中。
删除它并且它有效!
答案 2 :(得分:0)
对于未创建为Forwardable的Kerberos票证,我遇到了同样的问题(完全相同的Java错误堆栈)。
Kerlros票证续订/监控过程是用Perl编写的,并使用了Authen :: Krb5 :: Easy Perl模块,忽略了/etc/krb5.conf“forwardable = true”设置。