JumpServer 用户会话 (Session) 过期时间的设置方法


飞致云 发布于 2026-03-31 / 0 阅读 / 0 评论 /

本文档旨在讲解 JumpServer 中控制用户会话(Session)过期行为的核心参数,并结合常见安全参数,说明其适用场景并提供配置建议,以帮助您构建既安全又用户友好的认证系统。

一、核心配置参数详解

调整配置

vi /opt/jumpserver/config/config.txt  #编辑该参数文件,修改如下参数,如果没有,则手动添加
SESSION_COOKIE_AGE=86400  #  具体时间可根据需求调整,这个单位是s,默认是一天
SESSION_EXPIRE_AT_BROWSER_CLOSE=false # 该参数为true时,关闭浏览器时, Session立即过期


用户会话的有效期主要由以下两个参数协同控制:

  1. SESSION_COOKIE_AGE

    • 含义: 用户会话的最大空闲有效期,单位为秒。此计时器在用户每次与服务器交互(发送请求)时都会重置。

    • 工作机制: 从用户最后一次操作开始倒计时。如果超过设定时长用户没有任何操作,则其 Session 会自动过期,需要重新登录。

  2. SESSION_EXPIRE_AT_BROWSER_CLOSE

    • 含义: 控制会话是否为浏览器会话级

    • 类型: 布尔值 (Boolean),可选 True 或 False

    • 工作机制

      • False (默认):Session 有效期由 SESSION_COOKIE_AGE 控制。即使用户关闭浏览器再重新打开,只要未超时,仍保持登录状态。

      • True:Session Cookie 将被标记为“浏览器会话 Cookie”。当用户完全关闭浏览器应用程序(而非仅关闭标签页)时,Session 立即过期,需要重新登录。注意:此设置会覆盖 SESSION_COOKIE_AGE。只要浏览器不关闭,会话会一直通过用户活动保持,但关闭浏览器则强制过期。

二、配合使用场景分析

以下结合不同的配置组合,说明其适用的典型业务场景:

组合 1: 高安全性要求场景

配置

    • SESSION_COOKIE_AGE = 1800 (例如 30 分钟)

    • SESSION_EXPIRE_AT_BROWSER_CLOSE = True

  • 行为: 用户会话将在 两种情况下过期

    1. 用户持续操作但空闲时间超过 30 分钟。

    2. 用户主动关闭整个浏览器。

  • 场景: 此配置提供了双重保险,非常适合处理敏感数据或操作的系统。它确保了即使用户忘记注销,在短时间空闲或关闭浏览器后,会话也会自动终止,极大降低了账户在他人设备上被误用的风险。

组合 2: 用户体验优先场景

  • 配置

    • SESSION_COOKIE_AGE = 1209600 (2周,或更长)

    • SESSION_EXPIRE_AT_BROWSER_CLOSE = False

  • 行为: 用户会话仅在空闲时间超过 2 周后过期。关闭浏览器再打开无需重新登录(“记住我”效果)。

  • 场景: 为普通用户提供极大的便利,减少重复登录的烦恼,提升用户体验和粘性。适用于不涉及敏感信息的公众网站。

组合 3: 平衡安全与便利的场景 

  • 配置

    • SESSION_COOKIE_AGE = 43200 (例如 12 小时)

    • SESSION_EXPIRE_AT_BROWSER_CLOSE = False

  • 行为: 用户在一个工作日内保持登录状态,但长时间不操作(如过夜)后需要重新登录。关闭浏览器不会导致登录状态丢失。

  • 场景: 兼顾了安全性和办公效率。用户不需要在一天内反复登录,但又避免了会话无限期保持的风险。是许多内部系统的折中方案。


总结

  • SESSION_EXPIRE_AT_BROWSER_CLOSE = True 是重要的安全特性,建议启用。

  • SESSION_COOKIE_AGE 的值应根据您业务对“空闲”的定义来设定(如 1小时、8小时、1天)。

用户可以根据自己应用的具体安全等级要求和用户使用习惯,在上述建议的基础上进行微调。

注: 需要重启服务使配置生效

jmsctl restart





是否对你有帮助?