API 鉴权说明
Cube Sandbox 的 API 鉴权机制同时面向两类调用方:
- 应用 / SDK 调用方:通常走
Authorization: Bearer - Dashboard / 管理调用方:通常走
X-API-Key
两种方式都可以被转发给鉴权回调服务,由回调方做最终放行决策。
工作原理
当启用了鉴权回调后,请求会按下面的逻辑处理:
- 服务端优先读取
Authorization: Bearer - 如果没有 Bearer,再读取
X-API-Key - 将凭证和原始请求路径透传给鉴权回调服务
- 回调返回
200时放行,其他状态码返回未授权
这意味着:
- 鉴权决策不在 Cube Sandbox 内部硬编码
- Bearer 与 API Key 都只是“凭证载体”
- 真正的权限模型由你的鉴权服务决定
Bearer 与 X-API-Key 的使用场景
Authorization: Bearer
更适合:
- E2B SDK
- 应用代码直接请求兼容 API
- 已有认证体系统一使用 Bearer Token 的场景
X-API-Key
更适合:
- Web Dashboard
- 内部管理工具
- 轻量运维脚本
Web Dashboard 的本地 Key 模式
Web Dashboard 的前端会从浏览器本地读取已保存的 API Key,并在请求 /cubeapi/v1/* 时自动带上 X-API-Key。
这意味着:
- Dashboard 是否能正常操作,不只取决于 UI 是否能打开
- 还取决于当前本地保存的 Key 是否有效
- 当 Dashboard 操作失败时,应同时检查连通性、鉴权是否开启、以及当前 Key 是否正确
建议配合阅读:
E2B SDK 的 Bearer 模式
E2B SDK 会把 E2B_API_KEY 作为 Bearer Token 自动附加到请求头中。这也是为什么很多应用接入只需要设置:
E2B_API_URLE2B_API_KEY
如果你使用的是 Cube Sandbox 的兼容入口,而不是 Dashboard 管理面,这通常是更自然的方式。
继续阅读:
常见错误与状态码
| 场景 | 常见表现 |
|---|---|
| 未携带凭证 | 401 Unauthorized |
| 回调显式拒绝 | 401 Unauthorized |
| 回调服务不可达 | 500 Internal Server Error |
| Dashboard 打得开但操作失败 | 常见于本地 Key 无效、鉴权开启但未配置正确 |
安全建议
- 不要把生产环境 API Key 直接写死在公开前端代码中
- 尽量让回调服务根据路径区分管理 API 与业务 API 的权限范围
- 对高风险接口增加更细粒度的授权策略和审计能力
- 将 Dashboard 使用的管理 Key 与应用使用的 SDK Key 分开管理