2.9 KiB
2.9 KiB
Token 运行态最小实现规格(TOK-001)
- 版本:v1.0
- 日期:2026-03-27
- 状态:开发实施基线
- 对应任务:
TOK-001
1. 目标
在不依赖真实 staging 参数的前提下,定义可落地的 token 运行态最小能力集,为后续 TOK-002~TOK-007 提供统一实施输入。
2. 最小能力范围(MVP)
- 平台签发:短期访问 token(owner/viewer/admin)。
- 入站校验:仅平台凭证有效,拒绝 query key 外部入站。
- 生命周期:签发、续期、吊销、过期。
- 边界审计:签发/校验失败/吊销/越权事件全量入审计。
- 指标可观测:可计算 M-013~M-016 与 M-021。
3. 角色与权限
| 角色 | 能力 | 约束 |
|---|---|---|
| owner | 管理供应侧账号、套餐、结算 | 不可读取上游凭证明文 |
| viewer | 只读查询 | 不可执行写操作 |
| admin | 风控与审计管理 | 仅平台内部可用 |
4. Token 数据模型(最小字段)
| 字段 | 类型 | 说明 |
|---|---|---|
| token_id | string | 平台内部唯一标识 |
| subject_id | string | 用户/服务主体ID |
| role | string | owner/viewer/admin |
| issued_at | datetime | 签发时间 |
| expires_at | datetime | 过期时间 |
| status | string | active/revoked/expired |
| scope | string[] | 授权范围 |
| request_id | string | 请求追踪ID |
| revoked_reason | string | 吊销原因(可空) |
5. 生命周期状态机
active -> revoked -> expired
规则:
revoked不可恢复为active,需重新签发。expires_at到期自动进入expired。- 续期只能对
activetoken 生效。
6. 核心接口(草案)
POST /api/v1/platform/tokens/issuePOST /api/v1/platform/tokens/{tokenId}/refreshPOST /api/v1/platform/tokens/{tokenId}/revokePOST /api/v1/platform/tokens/introspectGET /api/v1/platform/tokens/audit-events
返回要求:
- 不回传任何上游供应方凭证。
- 错误码需区分:无效、过期、越权、吊销。
- 审计查询接口仅返回审计字段,不返回 access token 或任何上游凭证明文。
7. 安全约束
- token 存储需采用哈希或加密指纹,禁止明文落库。
- 校验路径必须记录
request_id与调用来源。 - 外部 query key 入站请求必须拒绝并记录事件。
- 任一泄露事件触发 P0。
8. 审计事件最小集
token.issue.success/failtoken.introspect.success/failtoken.refresh.success/failtoken.revoke.success/failtoken.authz.denied
审计字段:
event_idrequest_idoperator_idsubject_idtoken_idresult_codecreated_at
9. 验收标准(TOK-001 关闭条件)
- 本规格被
ARCH + SEC + PLAT确认并引用到执行任务单。 - 后续 TOK-002~TOK-004 的实现字段与本规格一致。
- 不得新增“直接向终端用户分发上游 token”的路径。