V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
dzdh
V2EX  ›  问与答

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

  •  
  •   dzdh · 2021-03-24 01:35:52 +08:00 · 1035 次点击
    这是一个创建于 1100 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Nginx 客户端 p12 证书登录

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

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

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

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

    域名的确是个好法子。

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

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

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

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

    以上两种情况只能重启浏览器解决。所以才有的这个问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3330 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:29 · PVG 21:29 · LAX 06:29 · JFK 09:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.