跳转到内容

角色权限控制

Web.Casa 实现了基于角色的访问控制(RBAC),定义了两个预设角色。权限在 API 层强制执行,后端会拒绝所有未授权请求,与前端显示无关。

角色访问级别说明
管理员(Admin)完全控制创建、修改、删除所有资源;管理用户和系统设置
查看者(Viewer)只读查看仪表盘、配置、监控指标和日志

管理员拥有对所有功能的完全访问权限:

  • 主机管理 — 创建、编辑、删除反向代理主机和 DNS 提供商
  • 证书管理 — 签发、续期和管理 SSL/TLS 证书
  • 用户管理 — 创建、编辑和删除用户账户
  • 系统设置 — 配置面板设置、Caddy 和环境变量
  • 所有插件 — Docker、数据库、备份、监控、文件管理器、终端、防火墙、部署、AI、应用商店、MCP
  • 审计日志 — 查看完整的操作记录

查看者拥有只读访问权限:

  • 查看主机配置和状态
  • 查看系统监控指标
  • 浏览容器和数据库状态
  • 查看审计日志

查看者不能:

  • 创建、修改或删除任何资源
  • 管理用户账户
  • 访问网页终端或防火墙
  • 更改系统设置

每个 API 请求都通过双层机制进行权限检查:

  1. 后端强制执行 — 认证中间件从 JWT 令牌中提取用户角色,每个 API 路由指定了最低所需角色。不满足要求的请求将收到 403 Forbidden 响应。
  2. 前端辅助执行 — 界面根据当前用户角色动态隐藏或禁用按钮、表单和菜单项。此层仅为便利层,后端才是权限的最终裁决者。
  • 初始设置时创建的第一个用户始终为管理员
  • 管理员可以创建新用户并分配任一角色
  • 管理员可以编辑或删除其他用户
  • 不能删除自己的账户 — 此规则防止意外锁定
  • 密码最少 8 个字符
  • 所有用户管理操作均记录在审计日志中

插件与 RBAC 系统集成。仅限管理员使用的插件(终端、防火墙、文件管理器)会自动要求管理员角色。角色分配和权限变更均记录在审计日志中。