6.3. 会话和令牌超时
红帽构建的 Keycloak 包括通过 Realm 设置 菜单中的 Sessions 和 Tokens 选项卡控制会话、cookie 和令牌超时。
sessions 标签页
Configuration | 描述 |
---|---|
SSO 会话空闲 | 此设置仅用于 OIDC 客户端。如果用户不活跃的时间超过这个超时时间,则用户会话会无效。当客户端请求身份验证或发送刷新令牌请求时,这个超时值会重置。红帽构建的 Keycloak 在会话无效前为空闲超时添加时间窗口。请参见本节后续部分中的 备注。 |
SSO 会话 Max | 用户会话过期前的最长时间。 |
SSO 会话空闲的 Remember Me | 此设置与标准 SSO 会话空闲配置类似,但特定于启用了 Remember Me 的登录。用户可以在登录时点 Remember Me 时指定较长的会话闲置超时。此设置是一个可选配置,如果其值不大于零,它会使用与 SSO Session Idle 配置相同的空闲超时。 |
SSO 会话 Max Remember Me | 此设置类似于标准的 SSO 会话 Max,但特定于 Remember Me 登录。用户可以在登录时点 Remember Me 时指定较长的会话。此设置是一个可选配置,如果其值不大于零,它会使用与 SSO Session Max 配置相同的会话生命周期。 |
客户端会话空闲 | 为客户端会话闲置超时。如果用户不活跃的时间超过这个超时时间,客户端会话会无效,刷新令牌请求会恢复闲置超时。此设置不会影响常规 SSO 用户会话,而这是唯一的。请注意,SSO 用户会话是零个或多个客户端会话的父对象,为每个不同的客户端创建一个客户端会话。这个值应该指定一个比 SSO Session Idle 较短的空闲超时。用户可以在 高级设置 客户端选项卡中为单个客户端覆盖它。此设置是可选配置,当设为零时,在 SSO Session Idle 配置中使用相同的空闲超时。 |
客户端会话最大 | 客户端会话和刷新令牌过期和无效前的最长时间。与上一个选项一样,此设置永远不会影响 SSO 用户会话,并且应指定比 SSO Session Max 更短的值。用户可以在 高级设置 客户端选项卡中为单个客户端覆盖它。此设置是可选配置,当设为零时,在 SSO 会话 Max 配置中使用相同的 max 超时。
|
离线会话空闲 | 此设置用于 离线访问。在红帽构建的 Keycloak 撤销其离线令牌前,会话保留的时间长度。红帽构建的 Keycloak 在会话无效前为空闲超时添加时间窗口。请参见本节后续部分中的 备注。
|
离线会话最大有限 | 此设置用于 离线访问。如果此标志 已启用,离线会话 Max 可以控制离线令牌保持活动状态的最长时间,无论用户活动如何。如果标志为 Disabled,则离线会话永远不会由生命周期过期,仅空闲。激活此选项后,可以配置 离线会话 Max (域级别上的全局选项)和 Client Offline Session Max (高级设置 选项卡中的 特定客户端级别选项)。
|
离线会话 Max | 此设置用于 离线访问,这是红帽构建的 Keycloak 撤销对应的离线令牌前的最长时间。这个选项控制离线令牌保持活跃的最大时间,无论用户活动是什么。 |
登录超时 | 登录必须经过的总时间。如果身份验证的时间比这个时间更长,用户必须再次启动身份验证过程。 |
登录操作超时 | 在身份验证过程中,用户可以在一个页面中花费最大时间。 |
令牌标签页
Configuration | 描述 |
---|---|
默认签名算法 | 用于为域分配令牌的默认算法。
|
撤销刷新令牌 | 启用 后,红帽构建的 Keycloak 会撤销刷新令牌,并发出客户端必须使用的另一个令牌。此操作适用于执行刷新令牌流的 OIDC 客户端。 |
访问令牌生命周期 | 当红帽构建的 Keycloak 创建 OIDC 访问令牌时,这个值会控制令牌的生命周期。 |
访问令牌 Lifespan 用于 Implicit 流 | 使用 Implicit 流时,红帽构建的 Keycloak 不提供刷新令牌。对于由 Implicit Flow 创建的访问令牌存在单独的超时。 |
客户端登录超时 | 客户端必须在 OIDC 中完成授权代码流前的最长时间。 |
User-Initiated Action Lifespan | 用户操作权限过期前的最大时间。保持这个值更短,因为用户通常会快速对自创建的操作做出反应。 |
默认 Admin-Initiated Action Lifespan | 管理员将操作权限发送给用户前的最大时间。保持这个值长,以便管理员向离线用户发送电子邮件。管理员可以在发布令牌前覆盖默认超时。 |
电子邮件验证 | 指定电子邮件验证的独立超时。 |
IdP 帐户电子邮件验证 | 指定 IdP 帐户电子邮件验证的独立超时。 |
忘记密码 | 为忘记密码指定独立超时。 |
执行操作 | 指定执行操作的独立超时。 |
只有在持久性用户会话没有激活时,才会应用以下逻辑:
对于闲置超时,存在两分钟的会话处于活跃状态的时间窗口。例如,当您将超时设置为 30 分钟时,会话过期前将有 32 分钟。
对于一些场景,集群和跨数据中心环境需要在过期前在一个集群节点上刷新令牌,而其他集群节点错误地认为会话过期,因为它们还没有从刷新节点收到有关成功刷新的消息。