SSL 客户端证书登录认证 怎么做『退出』登录的操作?

2021-03-24 01:35:52 +08:00
 dzdh

Nginx 客户端 p12 证书登录

查了一些资料。貌似都没有方法能主动『退出』只能等关闭浏览器或者服务端清理会话(但是 nginx 的 tls 会话又没有清理的接口)

window.crypto.logout 貌似已经被移除了 在 chrome 和 safari 上是不好使。

1043 次点击
所在节点    问与答
8 条回复
codehz
2021-03-24 02:03:11 +08:00
是不是可以直接撤销证书。。。每次认证颁发新证书,退出时就直接撤销
jim9606
2021-03-24 02:23:55 +08:00
SSL 客户端认证用一个独立的域名,web 应用的域名不进行客户端证书登录认证。需要认证的 web 应用跳转至这个域名进行认证,认证完成后通过回调 URL 传递 token,web 应用再将其写入 cookies,后续流程使用 cookies 认证。注销登录就将 cookies 过期即可。
nvkou
2021-03-24 02:49:51 +08:00
二楼正解。
证书换令牌,一个鉴权一个会话管理。
hxndg
2021-03-24 10:16:04 +08:00
@codehz
撤销证书可太狠了,为了解决问题,引入了一个更大的问题。

@jim9606
方法可行,如果服务器是可控的可以吊销 cookie/one time identity.
不过不知道 lz 是不是想要一个证书做所有的事情,他把不同层做的事情混到了一起。
dzdh
2021-03-24 17:40:21 +08:00
@jim9606 这样『退出』解决了。emmmm 但是切换用户身份呢。(标题没写清楚
dzdh
2021-03-24 17:44:10 +08:00
@jim9606

域名的确是个好法子。

( ssl-auth.login.domain.com <-> login.domain.com ) <-> Business 1-N

这个可行
jim9606
2021-03-24 22:11:10 +08:00
@dzdh 切换用户=删除旧 token+重新发起认证

不过好像第二次登录时浏览器有可能自动选择上次使用的客户端证书,具体逻辑你自己测试一下。
dzdh
2021-03-25 00:54:43 +08:00
@jim9606

是的。不仅是自动选择上次使用的证书。而且如果选择证书时点了『取消』也不会再提示让选择证书的对话框。

以上两种情况只能重启浏览器解决。所以才有的这个问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/764451

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX