【问题标题】:How to have Keycloak logout unset session?如何让 Keycloak 注销未设置会话?
【发布时间】:2019-08-03 11:27:26
【问题描述】:

我有一个配置,我使用 Keycloak 作为身份代理,并使用自定义身份提供者(使用 Spring Security OAuth)来提供用户信息。

我观察到,当我尝试注销(使用前通道流)时,包括KEYCLOAK_IDENTITY 在内的 Keycloak cookie 仍然存在。我希望看到 Set-Cookie 标头将过期时间设置为过去的某个日期。

这意味着如果我随后转到受保护的端点/页面,我可以在不重新登录的情况下访问该资源。Keycloak 从KEYCLOAK_IDENTITY cookie 中读取 IdToken 值并使用它来重新验证用户.

如何配置 Keycloak 以完全注销用户?

【问题讨论】:

    标签: session cookies logout keycloak


    【解决方案1】:

    解决方案埋在Keycloak源码中:

    • 如果我在身份提供程序配置中指定了一个注销 url,Keycloak 将不会取消设置它自己的 cookie。参考:OIDCIdentityProvider.keycloakInitiatedBrowserLogout()。此方法需要返回 null 才能使 Keycloak 取消设置其 cookie。

    【讨论】:

    • 那么,修复的究竟是什么?我也有同样的问题。
    猜你喜欢
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 2017-07-06
    • 2017-02-10
    • 1970-01-01
    • 2014-01-19
    相关资源
    最近更新 更多