API7 网关 AI Agent Skill:basic-auth 插件
概览
basic-auth 插件使用 HTTP Basic Authentication(RFC 7617)对请求进行身份认证。消费者注册用户名和密码;客户端在 Authorization: Basic <base64> 请求头中发送凭证。API7 企业版会解码并根据消费者凭证进行校验;校验通过后,请求会携带消费者身份请求头转发。
适用场景
- 为 API 提供简单的用户名/密码身份认证
- 快速保护内部或开发环境 API
- 与原生支持 HTTP Basic Auth 的工具集成,例如浏览器、curl、Postman
插件配置参考(路由/服务)
| 字段 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
hide_credentials | boolean | 否 | false | 转发到上游前移除 Authorization 请求头 |
anonymous_consumer | string | 否 | — | 未通过身份认证的请求所使用的消费者用户名 |
realm | string | 否 | "basic" | 401 响应中 WWW-Authenticate 响应头的 realm |
消费者凭证参考
| 字段 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
username | string | 是 | 消费者的唯一用户名 |
password | string | 是 | 消费者密码,会在数据库中自动加密 |
分步操作:在路由上启用 basic-auth
将 <gateway-group-id> 替换为 a7 gateway-group list -o json 返回的 ID。
1. 创建消费者
a7 consumer create -g <gateway-group-id> -f - <<'EOF'
{
"username": "alice"
}
EOF
2. 添加 basic-auth 凭证
a7 credential create cred-alice-basic-auth -g <gateway-group-id> \
--consumer alice \
--plugins-json '{"basic-auth":{"username":"alice","password":"alice-password-123"}}'
3. 创建启用 basic-auth 的服务和路由
a7 service create -g <gateway-group-id> -f - <<'EOF'
{
"id": "basic-protected-service",
"name": "Basic protected service",
"upstream": {
"type": "roundrobin",
"nodes": [{"host": "backend", "port": 8080, "weight": 1}]
}
}
EOF
a7 route create -g <gateway-group-id> -f - <<'EOF'
{
"id": "basic-protected",
"paths": ["/api/*"],
"service_id": "basic-protected-service",
"plugins": {
"basic-auth": {}
}
}
EOF