首页/AI/AI 应用速查/API 鉴权头速查(Bearer / x-api-key / api-key)

API 鉴权头速查(Bearer / x-api-key / api-key)

三家主流鉴权风格:OpenAI 与兼容生态用 Authorization: Bearer;Anthropic 用 x-api-key(另需版本头);Azure OpenAI 用 api-key。头名写错是最常见的 401 原因。

AI 应用速查AI更新于 2026-10-13

API 鉴权头速查

各家接口的鉴权方式不统一:OpenAI 及其兼容生态用 Authorization 请求头携带 Bearer 令牌,Anthropic 用 x-api-key 并额外要求接口版本头,Google 用 x-goog-api-key 或云平台的 IAM 凭证,自建网关则常见自定义头。写客户端封装时把这些差异收敛到一处,业务代码只拿一个统一的调用入口。

基本信息

通用原则密钥只放服务端,出现在请求头里而不是 URL 参数
常见头名Authorization、x-api-key、x-goog-api-key
附加头接口版本头、内容类型头,缺一即可能被拒
网关做法内部自定义头加内网隔离,对外只暴露一个入口
排查顺序先看头名与拼写,再看密钥有效期与额度,最后查区域与权限

常见服务鉴权对照

服务鉴权方式注意点
OpenAI 与兼容生态Authorization: Bearer 加密钥兼容端点大多沿用这一形式
Anthropicx-api-key 加接口版本头版本头缺失会直接报错
Googlex-goog-api-key,或云平台 IAM 凭证不要把密钥拼进 URL 查询参数
自建网关自定义头加内网白名单网关统一持有上游密钥,业务侧不接触

典型使用场景

  • 多模型接入:在封装层按提供方自动选择鉴权方式
  • 统一网关:业务只带内部令牌,网关再换成真实上游密钥
  • 临时排障:用命令行快速验证密钥与头是否正确
  • 密钥轮换:新旧密钥并行一段时间后再下线旧密钥
  • 权限分层:只读用途与写入用途使用不同密钥

三种鉴权写法

三种鉴权写法
curl -s $BASE/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" -d '{...}'   # 兼容生态
curl -s https://api.anthropic.com/v1/messages -H "x-api-key: $ANTHROPIC_API_KEY" -H "anthropic-version: 2023-06-01" -H "Content-Type: application/json" -d '{...}'
curl -s "https://generativelanguage.googleapis.com/v1beta/models/$MODEL:generateContent" -H "x-goog-api-key: $GEMINI_API_KEY" -H "Content-Type: application/json" -d '{...}'
# 所有密钥都应从环境变量或密钥管理服务读取,不要写进代码与镜像

常见鉴权事故

事故原因规避
密钥对全网可见前端直连模型接口并携带密钥前端只调自有后端,密钥留在服务端
密钥进日志把完整请求头打进访问日志日志侧对鉴权头做脱敏
密钥进 URL用查询参数传密钥一律改为请求头传递
单密钥混用测试与生产共用一个密钥按环境与用途拆分,各自设额度
401 与 403 的差别值得留意:前者通常是密钥无效或格式错误,后者多为权限、区域或配额限制,排查方向完全不同。
已经出现在仓库历史、镜像层或聊天记录里的密钥要直接作废重发,仅轮换文件里的那一处并不安全。

易错点

  • 头名或格式写错:多数接口直接返回鉴权失败,容易被误判为密钥失效
  • 把密钥拼在 URL 参数里:URL 会进入浏览器历史、代理与监控日志
  • 测试与生产共用同一密钥:测试刷量消耗生产额度,泄露后影响面成倍扩大
  • 只轮换代码里的密钥而不作废旧密钥:旧密钥仍可继续调用

数据来源与参考

  • OpenAI / Anthropic / Microsoft Learn 鉴权文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌