权限 (Permissions)
Open WebUI 中“工作空间”下的权限部分允许管理员为用户配置访问控制和功能可用性。这个强大的系统可以对用户在应用程序中可以访问和修改的内容进行细粒度控制。
管理员主要可以通过以下三种方式管理权限:
- 全局默认权限:通过管理员面板为所有用户账户设置基准权限。
- 组权限:创建具有特定权限覆盖的组(例如,一个具有图像生成访问权限的“高级用户”组)。
- 基于角色的访问:
待审核 (Pending)角色没有访问权限,管理员 (Admin)具有完整访问权限,普通用户 (User)受权限系统约束。
Open WebUI 中的权限是累加式的。
- 用户的有效权限是全局默认设置与其所属所有组权限的组合。
- True 优先于 False:如果任何来源(全局默认设 置或任何一个组)授予了某项权限,该用户将拥有该权限。
- 没有“拒绝”能力:您不能通过特定组来“收回”由另一个组或全局默认设置授予的权限。要限制某项功能,必须在全局默认设置中禁用它,并且在用户所属的所有组中都禁用它。
由于权限是累加式的,建议的安全策略是从限制开始:
- 最小化全局默认权限:配置默认权限(管理员 > 设置 > 用户),仅包含绝对每个用户都应该拥有的权限。
- 通过组授予:创建特定组(例如“创作者”、“高级用户”)来显式授予图像生成或文件上传等高级功能。
这种方法确保了新用户不会意外获得敏感功能的访问权限,同时允许您通过简单地将用户添加到相关组来轻松提升其权限。
权限类别
权限分为四个主要类别:工作空间 (Workspace)、分享 (Sharing)、聊天 (Chat) 和 功能 (Features)。
1. 工作空间权限
控制对“工作空间”部分的访问,用户可以在此处创建和管理资源。 某些权限依赖于其他权限(例如,如果您无法访问模型工作空间,则无法导入模型)。
| 权限 | 描述 |
|---|---|
| 模型访问 (Models Access) | (父级) 访问模型工作空间以创建或编辑自定义模型。 |
| 模型导入 (Models Import) | (需要模型访问权限) 能够从 JSON/文件导入模型。 |
| 模型导出 (Models Export) | (需要模型访问权限) 能够将模型导出到文件。 |
| 知识访问 (Knowledge Access) | 访问知识库工作空间以管理知识库。 |
| 提示词访问 (Prompts Access) | (父级) 访问提示词工作空间以管理自定义系统提示词。 |
| 提示词导入 (Prompts Import) | (需要提示词访问权限) 能够导入提示词 。 |
| 提示词导出 (Prompts Export) | (需要提示词访问权限) 能够导出提示词。 |
| 工具访问 (Tools Access) | (父级) 访问工具工作空间以管理函数/工具。 |
| 工具导入 (Tools Import) | (需要工具访问权限) 能够导入工具。 |
| 工具导出 (Tools Export) | (需要工具访问权限) 能够导出工具。 |
2. 分享权限
控制用户可以与社区分享或公开的内容。
| 权限 | 描述 |
|---|---|
| 分享模型 | (父级) 能够分享模型(使其他人可以访问)。 |
| 公开模型 | (需要分享模型权限) 能够使模型公开可见。 |
| 分享知识库 | (父级) 能够分享知识库。 |
| 公开知识库 | (需要分享知识库权限) 能够使知识库公开。 |
| 分享提示词 | (父级) 能够分享提示词。 |
| 公开提示词 | (需要分享提示词权限) 能够使提示词公开。 |
| 分享工具 | (父级) 能够分享工具。 |
| 公开工具 | (需要分享工具权限) 能够使工具公开。 |
| 分享笔记 | (父级) 能够分享笔记。 |
| 公开笔记 | (需要分享笔记权限) 能够使笔记公开。 |
3. 聊天权限
控制用户在聊天界面中可用的功能。
| 权限 | 描述 |
|---|---|
| 聊天控件 | (父级) 访问高级聊天设置。Valves、系统提示词和参数所需。 |
| 模型 Valves | (需要聊天控件权限) 访问特定模型的配置“Valves”。 |
| 系统提示词 | (需要聊天控件权限) 能够编辑对话的系统提示词。 |
| 参数 | (需要聊天控件权限) 能够调整 LLM 参数(例如 temperature、top_k)。 |
| 文件上传 | 能够向聊天上传文件。 |
| 删除聊天 | 能够删除整个聊天对话。 |
| 删除消息 | 能够删除单个消息。 |
| 编辑消息 | 能够编辑消息。 |
| 继续响应 | 能够对截断的响应使用“继续”功能。 |
| 重新生成响应 | 能够重新生成 AI 响应。 |
| 评价响应 | 能够对响应进行点赞/点踩。 |
| 分享聊天 | 能够为聊天生成分享链接。 |
| 导出聊天 | 能够导出聊天记录。 |
| 语音转文本 (STT) | 能够使用语音输入。 |
| 文本转语音 (TTS) | 能够使用语音输出。 |
| 语音通话 | 能够使用实时语音通话功能。 |
| 多个模型 | 能够选择多个模型进行同步响应。 |
| 临时聊天 | (父级) 能够切换“临时聊天”(无痕模式/关闭历史记录)。注意: 出于隐私考虑,在此模式下禁用了后端文档解析。 |
| 强制临时聊天 | (需要临时聊天权限) 限制用户始终使用临时聊天(禁用历史记录)。 |
4. 功能权限
控制对广泛平台能力的访问。
| 权限 | 描述 |
|---|---|
| API 密钥 | 能够从用户设置中生成个人访问令牌 (API Keys)。 |
| 笔记 (Notes) | 访问“笔记”功能。 |
| 频道 (Channels) | 访问“频道”功能。 |
| 文件夹 (Folders) | 能够使用文件夹组织聊天。 |
| 网页搜索 | 能够使用网页搜索集成。 |
| 图像生成 | 能够使用图像生成工具。 |
| 代码解释器 | 能够使用 Python 代码解释器。 |
| 直接工具服务器 | 能够连接到设置中的自定义工具服务器。 |
API 密钥权限 (features.api_keys) 被视为具有更高安全性,其工作方式与其他功能不同:
-
需要全局开关: 该功能必须在管理员设置 > 常规 > 启用 API 密钥中全局启用。如果关闭此开关,任何人(甚至是拥有权限的组)都无法生成密钥。
-
需要权限检查: 除了全局开关外,用户还必须具有
features.api_keys权限。 -
管理员也不例外: 与管理员可以绕过的大多数其他权限不同,管理员也需要此权限才能生成 API 密钥。管理员在这一关键安全功能上受到与普通用户相同的检查。
推荐的“最小权限”配置:
- 步骤 1:在全局默认权限中禁用
API 密钥(这样新用户默认不会获得它)。 - 步骤 2:创建一个启用了
API 密钥的特定组(例如🔐 API 用户)。 - 步骤 3:手动将特定用户(包括您自己/管理员)添加到此组以授予访问权限。
管理权限
管理员可以通过管理员面板 > 设置 > 用户 > 权限来调整这些权限。
- 默认权限:更改此处的设置将立即应用于所有用户,除非他们通过组获得了该权限。
- 组权限:前往管理员面板 > 组,选择一个组,然后编辑其权限。组权限会覆盖默认设置(例如,如果默认禁用了“图像生成”,可以通过“创意用户”组将其启用)。
环境变量
虽然推荐使用 UI 管理权限,但也可以通过环境变量设置初始默认值。这些变量通常以前缀 USER_PERMISSIONS_ 开头。
ENABLE_IMAGE_GENERATION=TrueENABLE_WEB_SEARCH=TrueUSER_PERMISSIONS_CHAT_FILE_UPLOAD=True
有关有效变量的完整列表,请参阅环境配置指南。