Keycloak SSO 会话空闲时间和 Spring 会话超时有什么关系?

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

我参考以下教程结合Keycloak OAuth2和Spring Boot + Spring Gateway + Spring Security + Spring Session将http会话保存在Redis中:

我想控制登录用户的空闲超时。登录用户如果在这段空闲时间内进行任何操作,将一直保持登录状态。

我发现有 2 个设置可以配置:

    Keycloak UI 上的
  • Keycloak SSO Session Idle Time
  • Spring Session Timeout
    在Spring引导中
    application.yml

enter image description here

enter image description here

用户通过 Spring Gateway 登录我的网站后,我检查了 Redis 中的 TTL,总是看到它始终与

Spring Session Timeout
相同,这似乎
Keycloak SSO Session Idle Time
不起作用。 enter image description here

这样用户在访问暴露的 Spring Gateway 端点时,将在 30 分钟空闲时间后重定向到 Keycloak,然后自动重新登录 Keycloak,最后重定向回 Spring Gateway。虽然用户可以在 30 分钟空闲时间后继续访问我的网站,但他们仍然需要先重定向到 Keycloak 才能完成重新登录过程。

据我了解,上面提到的30分钟只与

Spring Session Timeout
有关,对吗?
Keycloak SSO Session Idle Time
在这里没有影响。如果有任何错误请纠正我。

spring-security keycloak single-sign-on spring-session spring-oauth2
1个回答
0
投票

每个用户在您的系统中都有两个不同的会话:一个在 Keycloak 上,另一个在您的 BFF 上。

此会话彼此独立。

您在 Keycloak 中配置的 SSO 会话超时仅影响 Keycloak 会话,而不影响 BFF 会话。它会对用户重定向到 Keycloak 时发生的情况产生影响(因为 BFF 会话未授权或刷新令牌已过期)

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