用途:为集成 KYC 验证 API 的第三方后端(B2B 客户端)提供 API Key 认证。移动端与 Web 客户端使用 JWT,外部后端使用 API Key,二者互补。
主要能力:
- 生成 API Key:使用 secrets.token_urlsafe(32),至少 256 位熵。
- 存储:在 PostgreSQL 中保存 key 的 SHA-256 哈希,表结构为 api_keys(key_hash, client_id, scopes, created_at, expires_at)。
- 传输:客户端通过请求头 X-API-Key: <key> 发送密钥。
- 校验:Nginx 对 Redis 中活跃 key 缓存进行校验,使用 redis.sismember('active_api_keys', sha256(key))。
- 限流:除按 IP 限流外,还需按 API Key 限流。
- 轮换:签发新 key,设置新旧并存的宽限期,随后吊销旧 key。
- 审计:记录所有基于 API Key 的访问。
使用方式:在 api_gateway_agent 中启用,用于认证 B2B 客户请求。按 key 实现 scopes:verify、status、admin。
限制与注意事项:
- 绝不记录完整 API Key,仅保留最后 4 个字符用于识别。
- 过期 key 自动吊销,客户端需主动续期。
- 资料未提供具体部署步骤、依赖版本或完整代码示例。