如何在 keycloak 中设置用户或组特定的会话空闲超时

问题描述 投票:0回答:1

我有一个 Java 项目,我正在使用 keycloak 进行登录/身份验证。

我定义了一个组级别属性,我们在其中为该组中的用户设置会话空闲超时。

我希望该组中的用户从 UI 注销或在上述分钟后结束用户会话。 例如,如果组级别属性值为 5 分钟,领域级别会话空闲超时值为 30 分钟,则用户应在 5 分钟而不是 30 分钟后注销。

我希望所有用户的相应组级别属性覆盖领域 sso 会话空闲超时。

无法找到方法,因为我们无法修改我的项目的 keycloak 代码。

我是Keycloak版本20.0.1

尝试操作会话的lastAccessTime,但它不起作用,因为要在领域级别设置之前结束会话,我们需要设置一个过去的时间,以便keycloak默认在领域sso空闲时间后结束会话。

keycloak single-sign-on access-token keycloak-services keycloak-rest-api
1个回答
0
投票

也许你可以像这样在前端实现它:

  1. 在前端应用程序中获取组级超时属性(例如,从 ID Token 或后端 API)。

  2. 监控前端应用程序中的使用活动以确定空闲时间(例如监听鼠标移动、点击和键盘事件)。

  3. 当空闲时间超过组级超时时,将浏览器重定向到 Keycloak 注销端点 (

    /realms/{realm-name}/protocol/openid-connect/logout
    )。

© www.soinside.com 2019 - 2024. All rights reserved.