消费者
本文介绍 API7 企业版中消费者(Consumer)的基本概念和使用场景,包括如何将消费者信息传递到上游、限制消费者访问,以及对消费者进行身份认证和授权。
概述
消费者代表向 API 网关发送请求并使用后端服务的用户、应用或主 机。消费者通常与身份认证系统配合使用。每个消费者必须配置至少一个身份认证凭证,或通过 Authz Keycloak、OpenID Connect 等插件与外部身份认证系统集成。
下图展示了包含一个路由和两个消费者的 API7 网关示例。其中,FetchBot 是数据抓取机器人,JohnDoe 是用户。路由和消费者均启用了 key-auth 插件,因此请求会使用 API Key(API 密钥)进行身份认证。访问内部服务时,FetchBot 使用 bot-key,JohnDoe 使用 john-key。

此配置确保只有完成身份认证的请求才能访问 /petstore 上的内部服务。
- 如果向 API7 网关发送的请求没有携带任何密钥或携带了错误的密钥,该请求将被拒绝。
- 如果请求携带
bot-key,则会通过身份认证并被识别为来自FetchBot。应用于FetchBot的 Limit Count 插件会生效,将 5 秒内的请求数限制为2。未达到限流阈值时,请求会转发到上游服务;否则,请求会被拒绝。 - 如果请求携带
john-key,则会通过身份认证并被识别为来自JohnDoe,随后转发到上游端点。
在此场景中,根据插件执行顺序,身份认证插件会在 Limit Count 限流插件之前执行。