vdi-cloud/docs/cloud-admin-sessions-20261111.md

4.5 KiB
Raw Blame History

管理员在线登录管理(2026-11-11)

已部署 http://127.0.0.1:5182/settings →「管理员账号」→ 对应账号的「在线登录」。仅超级管理员可查看与撤销。

行为

  • 显示尚未退出、撤销或到期的登录凭据,支持分页和手动刷新。显示来源地址、登录时间、到期时间和浏览器/客户端,并标记当前登录。有效凭据不代表浏览器当前仍在使用。
  • 「撤销登录」确认后只撤销所选登录,其他登录与密码保留;该凭据后续管理 API 请求返回 401。当前登录按钮禁用,服务端也返回 409,需使用正常退出入口。
  • 新登录记录请求来源及最多 500 字符的 User-Agent;来源经过现有可信代理配置解析。代理/NAT 可能使地址显示为网关,User-Agent 可由客户端填写,均只作排查信息,不作为身份凭据。
  • 升级前会话继续有效,来源与登录时间明确显示未知;不推算或伪造旧元数据。到期会话不列入有效列表。
  • 查询或撤销失败显示错误并清除旧列表;取消确认不提交,切换账号不会被旧请求覆盖。

接口与数据

GET /api/v1/administrators/{id}/sessions:每页默认 20 条、最多 100 条,按到期时间及内部标识降序排列。

DELETE /api/v1/administrators/{id}/sessions/{sessionKey}:成功 204;不存在、已撤销、已到期或账号不匹配返回 404;本人当前登录返回 409;未登录 401,非超级管理员 403。并发撤销仅一次成功,成功撤销与 revoke_administrator_session 审计同事务提交。

公开的 key 为带独立用途前缀的 HMAC-SHA256 管理句柄。列表、路径和审计不暴露 JWT、内部会话标识或密码。句柄自身不能登录。事务内复查操作者当前会话及最新权限;等待期间被撤销的操作者不能继续撤销其他登录。原账号角色、启停和改密撤销全部登录的行为保持兼容。

新增 admin_session_details 附表,外键关联 admin_sessions 且删除级联。既有 admin_sessions 三列保持不变;旧 API 的插入仍兼容。登录与附表写入同一事务。附表无历史回填,现有管理员、密码和设备身份不重置。

验收

  • 独立测试 PostgreSQL 的 Go 全量测试和 vet 通过,覆盖单独撤销、保留其他登录、三角色权限、当前登录保护、旧登录兼容、过期排除、来源清理与不可信代理、凭据不泄露、并发一次成功、等待锁期间操作者被撤销。
  • 前端 lint/typecheck、3 项单元测试和生产构建通过;新增 4 项登录管理及原有 4 项管理员浏览器回归通过,包含确认/取消、错误处理、分页、旧响应保护、深浅主题和 390px。
  • 真实临时账号建立两条登录,准确选取并撤销其中一条,旧凭据返回 401,另一条仍可读取本人资料;停用账号撤销剩余登录,审计记录仅含管理句柄。临时账号及会话已定向清理,审计保留。
  • 真实深浅主题、1440/390px 界面通过,无脚本异常、失败 API 或浏览器业务写请求。既有账号密码指纹、用户授权、设备身份、告警规则及 VM 配置/电源与本轮部署前基线一致,盒子在线。未执行 VM、磁盘、GPU 或终端控制。

证据:真实 API 核验、真实浏览器核验。首次验收脚本误把按时间倒序的第一条当作首次登录,已改为根据指定凭据的管理句柄精确选择后重验通过,应用实现无需变更。

部署与回退

备份 .local/live/backups/before-admin-sessions-20261111-150936.dump,原镜像标签 before-admin-sessions-20261111-150936。独立打包基线二进制与部署前 SHA-256 相同:78f454b057fd2de9510fa966ada07654692c609181faa62dc72c96391f0d95ec;保留已部署 GPU 代码和配置。

回退前核对后续是否另有部署,恢复原 API/console 镜像标签,并用 .local/admin-sessions-review/compose.release.yml、原环境文件及 --project-directory deploy 执行 up -d --no-build --no-deps api console。附表可保留,不删除业务卷或恢复整个数据库覆盖其他工作。旧 API 登录不写附表,再次升级时这些登录也会显示来源未知。

此项仅管理控制台登录,桌面串流会话仍由「远程会话」管理。专用 VM、Windows 副本、存储准备及真实快照还原继续暂缓。