Keycloak 15.0.2 无法为单个客户端设置高于领域配置的Token有效期
Keycloak 15.0.2 客户端Token有效期配置规则说明
核心结论
你遇到的现象是Keycloak的原生安全设计,并非Bug,15.0.2版本不支持将单客户端的时间类配置上调至超过领域(Realm)的对应配置值。
设计逻辑
Realm层面配置的所有时间类参数(包括Access Token Lifespan、SSO Session Max、Client Session Max等)均为全局安全上限,优先级高于客户端独立配置:
- 客户端配置时长 低于 Realm配置时长时,客户端配置生效
- 客户端配置时长 大于等于 Realm配置时长时,自动取Realm的上限值作为实际生效值
配置项旁的提示「If not set, it uses the standard SSO Session Max value.」仅说明客户端未配置时的默认 fallback 逻辑,并不代表客户端配置可以突破Realm的上限约束。
实现特殊客户端延长有效期的方案
如果需要实现「普通客户端沿用1天安全基线,特定机密客户端使用7天有效期」的需求,可按以下步骤调整:
- 先将Realm层面的
Access Token Lifespan、SSO Session Max、Client Session Max统一调整为所需的最大值7天 - 对所有不需要延长有效期的客户端(包括public类型客户端),单独在其「Advanced Settings」下将对应时间参数设置为1天
调整后即可符合预期:普通客户端有效期为1天,指定的机密客户端有效期可达到7天。
内容的提问来源于stack exchange,提问作者Lovis
相关产品推荐
相关产品推荐

