背景
前端 BFF 已增加单进程 token bucket 和并发闸门,但多副本部署下各实例状态独立,不能作为完整安全边界。AuthService/Login 仍需要在后端或可信网关实现共享限流和授权码防重放。
需求
- 飞书 OAuth authorization code 只能成功交换一次;重复使用应返回稳定的认证错误。
- 在共享存储或可信 ingress 上实现多副本一致的速率限制,至少限制全局突发和可信客户端来源的持续请求速率。
- 并发交换同一 code 时只能有一个成功。
- 限流响应使用可识别的 Connect 错误码,并返回可供 BFF 转换为
Retry-After 的重试时间。
- 不使用可伪造且未经网关清洗的
X-Forwarded-For 作为唯一安全依据。
- 日志、指标和错误响应不得记录 authorization code、access token 或原始会话 Cookie。
可观测性
- 记录成功、失败、重放拒绝、限流拒绝和上游飞书超时的计数与延迟指标。
- 日志仅使用脱敏请求标识,能够排查问题但不能恢复凭据。
验收标准
- 多副本并发压测下仍满足全局限制。
- 覆盖同 code 串行重放、并发重放、突发流量、限流恢复和共享存储异常测试。
- 正常登录不受影响,限流与认证错误可以被前端区分。
背景
前端 BFF 已增加单进程 token bucket 和并发闸门,但多副本部署下各实例状态独立,不能作为完整安全边界。
AuthService/Login仍需要在后端或可信网关实现共享限流和授权码防重放。需求
Retry-After的重试时间。X-Forwarded-For作为唯一安全依据。可观测性
验收标准