从 SSO kerberos 注销

Log out from SSO kerberos

我的 OSX 应用程序需要基于 Kerberos 协议进行身份验证。 对于登录,我使用 WebView(和 WKWebView for MAC OSX > 10.9)通过加载授权 URL 请求。

登录按预期工作,但它一直保持登录状态,直到我从我的计算机注销或终止我的应用程序。 这意味着下次我加载授权 URL 请求时,我会自动登录,而不会被提升以插入我的用户名和密码。

在加载授权之前 URL 我从 [NSHTTPCookieStorage sharedHTTPCookieStorage] 中删除了 cookie。

如何退出?

您需要销毁网络浏览器 运行 所在机器上的 kerberos 票证。

/usr/bin/kdestroy 

OS X 曾经有一个用于管理工单的图形界面,但我认为那早已不复存在了。您应该只为测试而这样做。 Kerberos 票证在 OS X 中的许多应用程序之间共享,如果您的应用程序吹走了票证,您的用户会用干草叉追赶您...

我的解决方案是通过以下方式关闭我的应用程序:

[NSApp terminate:self];

更好的解决方案是重新启动应用程序,但现在这对我来说已经足够了。