会话管理编辑

当您登录时,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](例如,20m24h7d1w)。例如,将空闲超时设置为在 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](例如,20m24h7d1w)。例如,将生存期设置为在 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](例如,20m24h7d1w)。例如,将会话索引清理计划为每天执行一次

xpack.security.session.cleanupInterval: "1d"

最大并发会话数编辑

默认情况下,每个用户在 Kibana 中可以拥有的最大并发会话数没有限制。要添加限制,请使用 xpack.security.session.сoncurrentSessions.maxSessions 配置选项。如果设置,此选项的值应为 11000 之间的整数。当超过限制时,最旧的会话将自动失效。

由于会话信息刷新的速度,可能存在几秒钟的时间,在此期间不会强制执行并发会话限制。在同时创建多个会话很常见的用例中,这一点需要考虑。

xpack.security.session.concurrentSessions:
  maxSessions: 3