标准答案

  1. API Key 适合可信服务端之间调用或开发者平台接入,可标识调用方、绑定范围和配额,但不应直接暴露在浏览器或移动端包中。
  2. OAuth 授权码流程适合第三方代表最终用户访问资源,用户在授权服务器完成登录和同意,客户端获得受限令牌而不是用户密码。
  3. 服务账号用于定时任务、CI/CD、服务间调用和云工作负载,应使用工作负载身份、短期凭据或证书,而不是长期共享个人账号。
  4. 三种方式都应有作用域、过期、撤销、轮换、环境隔离和使用审计;高风险操作还可以叠加 mTLS、IP 范围或设备策略。
  5. 选择时要先区分“代表用户”“代表应用”还是“代表服务”,不要用一种长期令牌覆盖全部场景。

题目解析

认证方式决定责任主体和授权模型。把用户密码或永久管理员 Key 交给第三方,会让撤销、审计和最小权限都难以落地。

API Key 本身通常是 bearer 凭据,泄露后任何持有者都可使用,因此需要安全存储、传输和异常使用检测。

常见误区

  • 把 API Key 放在前端代码、公开仓库或可下载客户端中。
  • 用个人管理员账号作为长期服务集成身份。
  • 让 OAuth 客户端直接收集用户密码。

作者信息