2

我正在使用KerberosServiceAuthenticationProvider带有 spring security 的 kerberos/spnego() 身份验证来对执行单点登录的 Active Directory 服务中的用户进行身份验证。

我能够对用户进行身份验证并访问应用程序。我想实现注销功能,而不关闭浏览器。

有没有办法使 Kerberos 票证过期?

4

3 回答 3

2

服务票证驻留在客户端的票证缓存中......我怀疑这可以清除服务器端代码或在浏览器中运行的代码。

“SPNEGO”实际上是一种“自动登录”...

于 2014-06-13T15:07:33.800 回答
1

这不是必需的,因为客户端提供的票证会自动过期。在您与客户端建立上下文后,该票将一文不值。每个合理的客户端都会通过重放检测来启动上下文,即服务器将检测到票证被重新发送并发出异常信号。此外,不要担心客户端上的票证缓存,这不关你的事。

于 2014-06-13T21:16:00.970 回答
0

一般来说,答案是否定的。从您可以在浏览器中执行的任何代码来看,答案是不。

单点登录的全部意义在于您登录一次,并且凭证在 kerberos 凭证超时或被销毁(即注销)之前一直有效。

您可以使用 cookie 玩各种游戏来尝试实现退出此应用程序,但它们并不能真正有效地工作并且给应用程序增加了很多复杂性。

如果您真的需要从这个应用程序中注销,那么您不应该使用 SPNEGO。

于 2014-06-13T17:47:52.907 回答