空闲超时后,由 Keycloak 客户端应用程序保护重定向到登录页面。应用程序位于应用程序网关后面

Posted

技术标签:

【中文标题】空闲超时后,由 Keycloak 客户端应用程序保护重定向到登录页面。应用程序位于应用程序网关后面【英文标题】:Redirect secured by Keycloak client side apps to login page after idle timeout. Apps are behind app gateway 【发布时间】:2019-12-20 05:36:56 【问题描述】:

空闲超时后如何实现客户端服务的注销?

服务由 Keycloak + 应用程序网关保护。

网关是 node.js 应用程序,它使用 Keycloak node.js adapter 保护服务的 url,因此浏览器访问 url 时需要进行身份验证。 (重定向到登录网址)

服务通过检查访问令牌网关中存在的角色在成功验证后接收并附加到请求来执行本地授权。

Keycloak 也在网关后面。

我考虑在 Keycloak 代码中添加custom event listener,它会通过一些消息总线通知所有对会话超时事件感兴趣的服务。

提前致谢。

【问题讨论】:

【参考方案1】:

Keycloak 通知所有参与终止会话的客户端(通过超时或显式注销请求)。唯一的先决条件是为客户端设置了“管理 URL”(请参阅​​ Keycloak 管理控制台 - 客户端设置)。 由于您使用的是 Keycloak node.js 适配器,它应该能够处理来自 Keycloak 的注销请求。 请参阅Keycloak Server Administration Guide(查找“管理员 URL”)。

【讨论】:

没错。为了测试描述的反向通道请求,您可以在管理 UI 的客户端页面上使用“撤销”选项卡。在此选项卡上,您可以将撤销请求推送到客户端后端,因此您可以跟踪此请求以确保一切正常。其他方法是从管理 UI 执行会话注销。

以上是关于空闲超时后,由 Keycloak 客户端应用程序保护重定向到登录页面。应用程序位于应用程序网关后面的主要内容,如果未能解决你的问题,请参考以下文章

如何将keycloak迁移到mysql数据库并修复300异常后的超时

Wildfly 数据源中的空闲超时后未关闭数据库连接

httpd简介

LVS连接持久时间

如何在 reactor-netty 中配置池连接空闲超时

移至 Glassfish-2.x 集群会导致连接在 1 小时后超时