‘Editor’ members got ‘403 forbidden’ accessing ‘/console/api/workspaces/current/default-model’

这是在 Dify v1.17.0 自托管环境中,拥有 Editor(编辑)角色的用户打开 Chatflow、Workflow 或 Agent 应用时,前端无条件请求默认模型接口,而后端因新增的权限装饰器返回 403 导致的回归问题。优先排查 Dify 版本是否为 1.17.0,若是,可等待修复版本发

快速结论:这是在 Dify v1.17.0 自托管环境中,拥有 Editor(编辑)角色的用户打开 Chatflow、Workflow 或 Agent 应用时,前端无条件请求默认模型接口,而后端因新增的权限装饰器返回 403 导致的回归问题。优先排查 Dify 版本是否为 1.17.0,若是,可等待修复版本发布或手动应用补丁。

适用环境:Dify v1.17.0,Self Hosted(Docker 部署)。该问题在 v1.16.x 中不存在。

最快修复方案:暂无确认的一步修复方案。官方已在 PR #41349 中移除相关权限装饰器以恢复 v1.16.x 行为,该修复将在 v1.17.0 之后的版本中发布。如需立即修复,可手动应用 PR #41349 的 diff,或临时将受影响的 Editor 账号提升为 Admin/Owner。

注意事项:临时提升账号角色会扩大权限,仅建议作为临时绕过方案;手动应用补丁需要谨慎操作,并建议在测试环境验证。

问题场景

用户在使用自托管部署的 Dify v1.17.0 时,任何具有 Editor(编辑)角色的成员打开 Chatflow、Workflow 或 Agent(含 Legacy)应用,前端会持续向 /console/api/workspaces/current/default-model 发送后台请求,并收到 403 响应。该问题为 v1.17.0 的回归,v1.16.x 中无此异常。

报错原文

GET /console/api/workspaces/current/default-model?model_type=xxx

Response 403:
{
    "code": "forbidden",
    "message": "You don't have the permission to access the requested resource. It is either read-protected or not readable by the server.",
    "status": 403
}

原因分析

这是由 PR #41100 引入的回归问题。该 PR 在 api/controllers/console/workspace/models.py 中为 DefaultModelApi.getModelProviderModelApi.get 添加了 @is_admin_or_owner_required@rbac_permission_required 权限装饰器。然而,这些接口原本对所有已认证的工作区成员开放,且前端代码无论用户角色如何都会无条件调用这些接口,导致 Editor 角色成员触发 403 错误风暴。

环境排查

  • 确认 Dify 版本是否为 1.17.0(在 v1.16.x 中无此问题,属于版本回归)。
  • 确认部署方式是否为 Self Hosted (Docker)
  • 检查触发问题的账号角色是否为 Editor(Admin/Owner 不受影响)。
  • 排查网络请求中是否出现大量对 /console/api/workspaces/current/default-model 的 403 响应。

解决步骤

  1. 升级 Dify 版本:官方已在 PR #41349 中修复此问题,移除了 DefaultModelApi.getModelProviderModelApi.getpostdelete 上的权限装饰器,恢复 v1.16.x 行为。等待并升级到包含此修复的后续版本。
  2. 手动应用补丁(应急方案):如果无法立即升级,可参考 PR #41349 的 diff,在 api/controllers/console/workspace/models.py 中移除对应接口上的权限装饰器,然后重启 Dify 服务。
  3. 临时角色调整(备选方案):可将受影响的 Editor 账号临时提升为 Admin 或 Owner,以绕过权限检查。注意此操作会扩大权限范围,仅建议作为临时手段。

验证方法

使用 Editor 角色账号登录,打开任意 Chatflow、Workflow 或 Agent 应用,观察浏览器开发者工具中的网络请求:确认 /console/api/workspaces/current/default-model 接口不再返回 403,而是正常返回数据(HTTP 200)。同时确认页面不再出现重复的 403 错误请求。

参考来源

langgenius/dify #41386

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 20641

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注