管理会话
Keycloak 会维护用户会话,以跟踪跨应用程序的已认证用户。本指南介绍如何查看、配置和管理用户会话。
目录
查看活动会话Realm 会话按用户查看会话按客户端查看会话终止会话注销单个用户注销 Realm 中的所有用户撤销策略会话超时配置SSO 会话超时客户端会话超时Token 超时离线会话配置离线会话授予离线访问权限Remember Me启用 Remember Me查看活动会话
Realm 会话
- 在 Admin Console 中,转到 Sessions。
- 概览会显示活动会话总数,以及按 client 划分的明细。
按用户查看会话
- 转到 Users 并选择一个用户。
- 单击 Sessions 选项卡。
- 查看该用户的所有活动会话,包括:
- 会话开始时间
- 上次访问时间
- IP 地址
- 会话内访问过的 Clients
按客户端查看会话
- 转到 Clients 并选择一个 client。
- 单击 Sessions 选项卡。
- 查看该 client 的所有活动会话。
终止会话
注销单个用户
- 转到 Users > 选择用户 > Sessions 选项卡。
- 在特定会话上单击 Sign out,或者单击 Sign out all sessions 以终止该用户的所有会话。
注销 Realm 中的所有用户
- 转到 Sessions。
- 单击 Sign out all active sessions。
Impact
注销所有会话会强制 Realm 中的每个用户在下次请求时重新认证。仅在安全事件或计划内维护期间使用此操作。
撤销策略
撤销策略会使指定时间之前签发的所有 token 失效:
- 转到 Sessions > Revocation。
- 单击 Set to now,或指定自定义的 Not Before 日期/时间。
- 单击 Push。
- 在指定时间之前签发的所有 token 都将被视为无效。
会话超时配置
在 Realm Settings > Sessions 选项卡中配置会话超时。
SSO 会话超时
客户端会话超时
Token 超时
离线会话
离线会话 允许应用程序维护长期存在的 refresh token,其有效期可超出正常的 SSO 会话生命周期。这用于需要代表用户执行后台操作的应用程序。
配置离线会话
- 转到 Realm Settings > Sessions 选项卡。
- 配置:
授予离线访问权限
要让 client 请求离线 token:
- 在 authorization request 中包含
offline_accessscope。 - 该 client 必须已分配
offline_accessscope(作为默认或可选 scope 均可)。 - 用户必须具有
offline_accessrole(默认包含在offline_accessscope 中)。
Remember Me
Remember Me 功能允许用户在登录页面勾选 "Remember Me" 复选框,从而延长会话持续时间。
启用 Remember Me
- 转到 Realm Settings > Login 选项卡。
- 启用 Remember me。
- 在 Sessions 选项卡中配置 "Remember Me" 会话超时(SSO Session Idle Remember Me、SSO Session Max Remember Me)。