API7 网关 AI Agent Skill:key-auth 插件
概览
key-auth 插件使用 API Key(API 密钥)对请求进行身份认证。客户端会在请求头、查询参数或 Cookie 中携带 API Key。API7 企业版会根据该 API Key 查找消费者凭证;匹配成功后,会携带消费者身份请求头转发请求。身份认证失败时返回 401 Unauthorized。
适用场景
- 使用简单的 API Key 身份认证保护路由
- 识别调用 API 的消费者
- 与限流结合,实现分层访问(已通过身份认证的用户与匿名用户)
- 对上游隐藏凭证。
插件配置参考(路由/服务)
| 字段 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
header | string | 否 | "apikey" | 提取 API Key 的请求头名称 |
query | string | 否 | "apikey" | 查询参数名称(优先级低于请求头) |
hide_credentials | boolean | 否 | false | 转发到上游前从请求中移除 Key |
anonymous_consumer | string | 否 | — | 未通过身份认证的请求所使用的消费者用户名 |
realm | string | 否 | "key" | 401 响应中 WWW-Authenticate 响应头的 realm |
消费者凭证参考
| 字段 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
key | string | 是 | 消费者的唯一 API Key,会在数据库中自动加密。 |
Key 查找优先级
- 请求头(默认:
apikey):优先检查 - 查询参数(默认:
apikey):请求头不存在时检查 - 如果两者都不存在,则返回
401 Unauthorized和"Missing API key in request"
分步操作:在路由上启用 key-auth
1. 创建消费者
a7 consumer create -g default -f - <<'EOF'
{
"username": "alice"
}
EOF