团队系统集成适用于接入方以一个团队账号接入 Meoo。接入方持有团队长期 AK/SK,为已有 Owner 或新建托管成员签发短期 Bearer Token,再使用短期 Token 创建项目和调用开放能力。系统集成统一推荐团队版;用户 API Key 只用于个人测试和临时调试。
不需要
团队 AK/SK 的用户侧自助创建入口暂不开放,未来随“集成版”套餐提供。现阶段请联系秒悟团队创建联调测试凭证,并提供用于绑定凭证的团队账号。秒悟管理员会在管理后台核对团队 ID 与 Owner 后创建,创建时配置:
团队成员管理请求必须包含:
Canonical Request:
签名计算:
规则:
调用成员列表接口,选择当前团队中
创建成员:
每个 active 虚拟成员占用一个团队席位,与普通团队成员共用套餐席位上限。冻结或删除成员释放席位,重新激活时再次校验并占用席位;席位不足时创建或激活返回
响应:
创建成员后签发 Token:
响应:
Owner Token 和虚拟成员 Token 都不返回 Refresh Token。
Owner 或虚拟成员 Token 与 OAuth Access Token、用户 API Key 使用相同的 Bearer 协议:
项目和后续资源归属于该成员及 AK/SK 绑定的团队。Owner Token 下资源归属于 Owner;虚拟成员 Token 下资源归属于对应托管成员。Token 不能通过请求参数切换成员、团队或工作空间。
1. 身份与凭证模型
| 对象 | 标识或凭证 | 生命周期 | 用途 |
|---|---|---|---|
| 团队 | tenant_id | 长期 | AK/SK 在服务端绑定团队,调用方不能通过参数切换团队 |
| 团队凭证 | access_key_id + secret_access_key | 长期,可过期/吊销 | 通过 HMAC 管理成员、签发成员 Token |
| 团队 Owner | member_id | 长期,随机且持久化 | 单大账号模式的业务身份;所有资源归属于 Owner |
| 托管成员 | member_id | 长期,随机且持久化 | 隔离模式的成员资源标识;接入方自行保存外部用户与 member_id 的映射 |
| 成员临时凭证 | access_token | 短期,不可刷新 | 以成员身份调用项目、Agent、Cloud、Release 等开放能力 |
openid。openid 用于 OAuth 应用内的用户映射。Owner 模式无需保存用户映射;虚拟成员模式由接入方自行维护映射,并使用 member_id 调用成员管理接口。
2. 接入流程
- 接入方提供团队账号,由秒悟团队在管理后台创建测试 AK/SK,配置管理 Scope、可委托业务 Scope 和 Token 最长有效期。
- 接入方仅在可信服务端保存 AK/SK。
- 不需要最终用户隔离时,从成员列表找到
role=owner的 Ownermember_id;需要隔离时,使用 AK/SK 创建托管成员并保存外部用户 ID →member_id映射。 - 需要调用 Meoo 能力时,使用 AK/SK 为选定的 Owner 或虚拟成员
member_id签发短期 Token。 - 使用
Authorization: Bearer <member_token>调用普通/open/v1业务 API。 - 成员冻结或删除、团队 AK/SK 吊销后,相关临时 Token 立即失效。
3. 创建团队 AK/SK
团队 AK/SK 的用户侧自助创建入口暂不开放,未来随“集成版”套餐提供。现阶段请联系秒悟团队创建联调测试凭证,并提供用于绑定凭证的团队账号。秒悟管理员会在管理后台核对团队 ID 与 Owner 后创建,创建时配置:
- 凭证名称和用途说明。
- 成员管理权限,例如创建、查询、冻结、删除成员和签发成员 Token。
- 允许委托给成员 Token 的业务 Scope,例如
project.read、project.write、agent.read、agent.run。 - 成员 Token 最长有效期。
secret_access_key 只在创建成功时展示一次。应立即写入 KMS 或 Secret Manager,不要写入数据库明文、日志、前端持久化存储或客户端应用。
凭证创建、列表、吊销属于 Meoo 内部控制面能力,不属于对外 OpenAPI 契约。接入方不应调用内部管理接口,也不应依赖其 URL 或请求结构;需要新建、轮换或吊销测试凭证时请联系秒悟团队。
4. HMAC 签名
团队成员管理请求必须包含:
- Header 名按小写参与签名,签名 Header 顺序固定为
host;x-meoo-content-sha256;x-meoo-nonce;x-meoo-timestamp。 - GET/HEAD 的原始 Body 为空字符串。
- JSON 请求按实际发送的 UTF-8 原始字节计算摘要;计算后不能重新格式化 Body。
- Query 对名称和值进行 RFC 3986 编码后排序。
- Timestamp 只允许短时间窗口内的请求。
- Nonce 必须每次重新生成;相同 AK 下重复 Nonce 会被拒绝。
5. 选择身份并签发 Token
5.1 Owner 大账号模式
调用成员列表接口,选择当前团队中 role=owner 且 status=active 的成员,使用其 member_id 签发短期 Token。Owner Token 创建的项目、生成任务和 Release 均归属于团队 Owner;接入方自行负责最终用户与业务对象隔离。
5.2 虚拟成员隔离模式
创建成员:
每个 active 虚拟成员占用一个团队席位,与普通团队成员共用套餐席位上限。冻结或删除成员释放席位,重新激活时再次校验并占用席位;席位不足时创建或激活返回 409 quota_exceeded,且不会产生半成品用户数据。
scopes 必须同时属于平台支持范围和团队凭证的 delegable_scopes;expires_in 最低 60 秒,并受凭证 token_ttl_max_seconds 上限约束。
6. 调用业务 API
Owner 或虚拟成员 Token 与 OAuth Access Token、用户 API Key 使用相同的 Bearer 协议:
7. 生命周期与安全建议
- AK/SK 只保存在可信服务端;前端只能获得短期成员 Token。
- 建议成员 Token 有效期为 5~15 分钟,并按需签发。
- Owner 模式不提供最终用户隔离,接入方必须自行校验业务对象访问权。
- 虚拟成员模式下,外部用户与
member_id的映射由接入方保存;不要依赖昵称、手机号等可变字段。 - 成员离职、封禁或解绑时调用冻结或删除接口;已有 Token 会立即失效。
- AK/SK 泄露时立即吊销并创建新凭证。
- 收到 401 时重新签发 Token;不要尝试刷新成员 Token。
- 对非幂等调用自行保存业务幂等状态;HMAC Nonce 只负责阻止同一签名被重放。

