dzdh
V2EX  ›  问与答

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

  •  
  •   dzdh · Mar 24, 2021 · 1543 views
    This topic created in 1896 days ago, the information mentioned may be changed or developed.

    Nginx 客户端 p12 证书登录

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

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

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

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

    域名的确是个好法子。

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

    这个可行
    jim9606
        7
    jim9606  
       Mar 24, 2021
    @dzdh 切换用户=删除旧 token+重新发起认证

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

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

    以上两种情况只能重启浏览器解决。所以才有的这个问题
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5612 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 08:38 · PVG 16:38 · LAX 01:38 · JFK 04:38
    ♥ Do have faith in what you're doing.