角色 (Roles)
Open WebUI 定义了三个主要的系统角色 (System Roles),它们决定了用户账户的基本访问级别。这些角色与 用户组 (Groups) 和 权限 (Permissions) 是截然不同的。
| 角色名称 | 关键字 | 描述 |
|---|---|---|
| Admin | admin | 超级用户。对系统拥有完全控制权。 |
| User | user | 普通用户。受 RBAC 权限系统约束。 |
| Pending | pending | 受限用户。在获得批准前无法进行任何访问。 |
角色详情
管理员 (admin)
管理员角色专为系统维护人员设计。
- 完全访问:默认拥有访问所有资源和设置的权限。
- 管理权限:可以管理用户、用户组和全局配置。
- 绕过限制:默认情况下绕过绝大多数权限检查。
管理员限制与最佳实践
尽管管理员通常拥有不受限的访问权限,但出于安全和隐私考虑,某 些系统配置可能会限制他们的能力:
- 隐私控制:配置类似于
ENABLE_ADMIN_CHAT_ACCESS=False的环境变量可以阻止管理员查看用户的聊天记录。 - 可能适用的特定功能例外:某些功能可能在标准的管理员绕过行为之外执行额外的检查。特别是对于 API Key,只要启用了
ENABLE_API_KEYS,管理员便可以随时生成 Key。 - 访问控制例外:如果禁用了
BYPASS_ADMIN_ACCESS_CONTROL,管理员可能需要获得显式授权才能访问私有模型/知识库/便签等资源。
为了建立健壮的安全态势,我们建议您将管理员也纳入到您的权限方案中(通过用户组),而不是仅仅依赖该角色隐式的绕过机制。这可以确保即使启用了绕过限制,管理员依然能够获得一致的访问权限。
普通用户 (user)
这是团队成员的默认功能角色。
- 受权限约束:不拥有隐式的访问权限。所有能力都必须通过全局默认权限或用户组身份进行授予。
- 累加式权利:正如在 权限 (Permissions) 部分所解释的,他们的实际权利是他们获得的所有授权的总和。
挂起用户 (pending)
新 注册用户(如果进行了相应配置)或被停用用户的默认状态。
- 零访问:无法执行任何操作,也无法看到任何内容。
- 需要审批:必须由现有的管理员将其晋升为
user或admin。
备注
管理员角色实际上在所有方面的权限检查结果均为 check_permission() == True。细粒度的权限(如禁用“网页搜索”)通常不适用于管理员。
角色分配
初始设置
- 首个用户:在一台全新安装的系统上创建的第一个账户会被自动分配为 Admin 角色。
- 无头模式管理员创建