会话管理
编辑会话管理
编辑当您登录时,Kibana 会创建一个会话,用于验证后续对 Kibana 的请求。一个会话由两个组件组成:一个存储在您浏览器中的加密 cookie,以及 Elasticsearch 中一个专用的隐藏索引中的加密文档。默认情况下,该索引的名称为 .kibana_security_session_1
,其中前缀源自主要的 .kibana
索引。如果缺少任何一个组件,则会话将不再有效。
当您的会话过期或您注销时,Kibana 将使您的 cookie 失效并从索引中删除会话信息。Kibana 还会定期使任何未明确失效的过期会话失效并删除它们。
要以编程方式管理用户会话,Kibana 公开了 会话管理 API。有关详细信息,请查看 会话和 cookie 安全设置。
会话空闲超时
编辑您可以使用 xpack.security.session.idleTimeout
在一段时间不活动后使会话过期。强烈建议同时使用此项和 xpack.security.session.lifespan
。默认情况下,会话在不活动 3 天后过期。要为滑动会话过期定义另一个值,请在 kibana.yml
配置文件中设置该属性。空闲超时时间格式为 <count>[ms|s|m|h|d|w|M|Y]
的持续时间(例如,20m、24h、7d、1w)。例如,将空闲超时设置为在不活动 30 分钟后使会话过期
xpack.security.session.idleTimeout: "3d"
会话生命周期
编辑您可以使用 xpack.security.session.lifespan
配置最大会话持续时间或“生命周期” — 也称为“绝对超时”。强烈建议同时使用此项和 xpack.security.session.idleTimeout
。默认情况下,最大会话生命周期为 30 天。要定义另一个生命周期,请在 kibana.yml
配置文件中设置该属性。生命周期的格式为 <count>[ms|s|m|h|d|w|M|Y]
的持续时间(例如,20m、24h、7d、1w)。例如,将生命周期设置为在 7 天后使会话过期
xpack.security.session.lifespan: "7d"
会话清理间隔
编辑如果您禁用会话空闲超时和生命周期,则除非您明确注销,否则 Kibana 不会自动从索引中删除会话信息。这可能会导致会话索引无限增长。只要配置了空闲超时或生命周期,即使您没有明确注销,Kibana 会话也会被清理。
您可以配置 Kibana 尝试从会话索引中删除过期和无效会话的间隔。默认情况下,此值为 1 小时,且不能小于 10 秒。要定义另一个间隔,请在 kibana.yml
配置文件中设置 xpack.security.session.cleanupInterval
属性。间隔的格式为 <count>[ms|s|m|h|d|w|M|Y]
的持续时间(例如,20m、24h、7d、1w)。例如,计划每天执行一次会话索引清理
xpack.security.session.cleanupInterval: "1d"
最大并发会话数
编辑默认情况下,每个用户在 Kibana 中可以拥有的最大并发会话数没有限制。要添加限制,请使用 xpack.security.session.сoncurrentSessions.maxSessions
配置选项。如果设置了此选项,则该选项的值应为介于 1
和 1000
之间的整数。当超过限制时,最旧的会话将自动失效。
由于会话信息刷新的速率,在强制执行并发会话限制时可能会有几秒钟的延迟。对于同时创建多个会话的常见用例,需要考虑这一点。
xpack.security.session.concurrentSessions: maxSessions: 3