我正在使用KerberosServiceAuthenticationProvider
带有 spring security 的 kerberos/spnego() 身份验证来对执行单点登录的 Active Directory 服务中的用户进行身份验证。
我能够对用户进行身份验证并访问应用程序。我想实现注销功能,而不关闭浏览器。
有没有办法使 Kerberos 票证过期?
我正在使用KerberosServiceAuthenticationProvider
带有 spring security 的 kerberos/spnego() 身份验证来对执行单点登录的 Active Directory 服务中的用户进行身份验证。
我能够对用户进行身份验证并访问应用程序。我想实现注销功能,而不关闭浏览器。
有没有办法使 Kerberos 票证过期?
服务票证驻留在客户端的票证缓存中......我怀疑这可以清除服务器端代码或在浏览器中运行的代码。
“SPNEGO”实际上是一种“自动登录”...
这不是必需的,因为客户端提供的票证会自动过期。在您与客户端建立上下文后,该票将一文不值。每个合理的客户端都会通过重放检测来启动上下文,即服务器将检测到票证被重新发送并发出异常信号。此外,不要担心客户端上的票证缓存,这不关你的事。
一般来说,答案是否定的。从您可以在浏览器中执行的任何代码来看,答案是不。
单点登录的全部意义在于您登录一次,并且凭证在 kerberos 凭证超时或被销毁(即注销)之前一直有效。
您可以使用 cookie 玩各种游戏来尝试实现退出此应用程序,但它们并不能真正有效地工作并且给应用程序增加了很多复杂性。
如果您真的需要从这个应用程序中注销,那么您不应该使用 SPNEGO。