消费者和凭证
消费者代表 API 调用者的身份,例如开发者、合作伙伴应用或内部服务。定义消费者后,你可以在身份级别应用安全策略、限流和访问控制,而不只是在路由或服务级别应用。
消费者
消费者是 API7 网关中的全局实体,可以跨不同网关组使用。
主要字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
username | string | 是 | 消费者的唯一标识符。格式:^[a-zA-Z0-9_-]+$。最多 512 个字符。 |
desc | string | 否 | 消费者说明。 |
labels | object | 否 | 用于对消费者进行分组和筛选的键值对。 |
plugins | object | 否 | 专门应用于此消费者的插件,例如 rate-limiting、acl。 |
消费者凭证
消费者凭证是附加到消费者的身份认证 Token 或一组 凭证。单个消费者可以拥有多种不同类型的凭证,从而灵活使用不同的身份认证方式。
主要字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | 凭证的唯一名称。 |
plugins | object | 是 | 身份认证插件配置。每个凭证只能使用一个插件。 |
支持的凭证类型
API7 网关支持以下消费者凭证身份认证方式:
| 类型 | 说明 |
|---|---|
key-auth | 最简单的方式,通过请求头或查询参数传递 API 密钥。 |
basic-auth | 使用用户名和密码的标准 HTTP 基本身份认证。 |
hmac-auth | 使用密钥和 Secret 对请求签名,增强安全性。 |
jwt-auth | 使用 JSON Web Token 的 Token 身份认证。 |
身份认证流程
下图展示了网关如何处理凭证以识别消费者:
- 客户端发送包含凭证的请求,例如
apikey请求头。 - 网关执行在路由或服务上配置的相应身份认证插件。
- 插件验证凭证,并将其映射到特定消费者。
- 识别消费者后,网关应用在消费者级别配置的所有插件。
- 将请求代理到上游服务。
后续步骤
- 访问控制列表:限制特定消费者访问 API。
- OAuth/OIDC 身份认证:配置基于 Token 的身份认证。
- 插件:了解身份认证插件和其他插件类型。