octop已内置开箱即用的jwt多用户隔离能力,通过动态派生用户密钥、强制校验sub/azp字段及可选租户级密钥隔离(tenant_scoped模式)实现安全隔离,无需手动签发或验证。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Octop 本身已内置 JWT 多用户隔离能力,无需手动实现签发或验证逻辑——它的隔离是开箱即用的,关键在于正确启用和配置相关模块。
确认多用户模式已启用
Octop 默认以单用户模式启动。要启用多用户隔离,必须在启动前完成以下两步:
- 确保配置文件(如 config.yaml 或环境变量)中设置 multi_user: true;
- 管理员首次运行时需执行 octop init --multi-user 初始化多用户数据库与权限表,否则后续用户注册会失败。
JWT 隔离的核心机制在哪儿生效
Octop 不依赖单一密钥签名所有 Token,而是为每个用户动态派生独立密钥片段,并将 user_id 和 workspace_id 直接写入 JWT payload 的 sub 和 azp 字段。服务端验证时强制校验这些字段与当前请求上下文是否匹配,天然阻断跨用户 Token 冒用。
你不需要改算法、不需手写中间件——只要用户通过 Octop 自带的登录接口(/v1/auth/login)获取 Token,后续所有 API 请求携带该 Token,系统就会自动完成:
- 识别所属用户与工作区;
- 限制其只能访问自己沙箱内的文件、记忆、Agent 配置;
- 拒绝任何试图篡改
sub或伪造azp的请求(签名验证失败直接 401)。
安全增强:可选开启租户级密钥隔离
若部署在企业/团队场景且对密钥粒度有更高要求(例如不同部门视为逻辑租户),可启用进阶隔离:
- 在 config.yaml 中配置 jwt.key_mode: tenant_scoped;
- 为每个租户(如 department-a、hr-team)预置独立密钥,存于 PostgreSQL 的
tenant_keys表或本地加密文件; - 此时 Token header 中会带
"kid": "department-a-2026",验证时自动查对应密钥,实现密钥泄露不影响其他租户。
验证是否生效的快速方法
启动后,用两个不同用户(如 alice@demo 和 bob@demo)分别登录,拿到各自的 access_token:
- 用 alice 的 token 请求
GET /v1/me/workspace→ 返回 alice 的工作区 ID; - 再用 alice 的 token 请求 bob 的专属路径(如
GET /v1/users/bob@demo)→ 返回 403; - 尝试修改 token payload 中的
sub为 bob 的 ID 并重签名 → 验证失败,返回 401。
满足以上三点,说明 JWT 多用户隔离已正常工作。











