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