使用 ACL 访问控制

最近更新时间:2023-12-07 18:10:22

我的收藏

操作场景

本文介绍如何在 Kong 云原生 API 网关上通过 Kong ACL 插件实现访问控制,它主要包括以下两种场景:
配置允许指定用户访问。
配置拒绝指定用户访问。

前置条件

1. 已购买 Kong 网关实例,操作文档
2. 配置了后端(Service)以及路由(Route)。
3. 配置了消费者(Consumer)并开启认证。

操作步骤

注意
本操作步骤以允许指定用户访问的配置为例,拒绝指定用户访问的配置与之类似。
1. 登录 TSE 控制台,进入需要配置限流插件的 Kong 网关实例详情页,在 Konga 控制台页面查看管理控制台登录方式。



2. 登录到 Konga 控制台,进入 Consumer 详情页,选择需要配置访问控制的用户(例如 Jason),单击 Groups Tab,为该用户分配 Group(如 access-group)。



3. 进入选择的 Route,单击 ADD PLUGIN,在插件市场的 Security 分组中选择 Acl 插件,单击 Add Plugin



4. 插件配置中填写需要配置允许访问的 Group 信息,单击 enter 键,并保存。
allow:填写允许访问的 Group,多个 Group 需要填写多个。
deny:填写拒绝访问的 Group,多个 Group 需要填写多个。
consumer:填写需要应用访问控制的 Consumer ID,如空缺,表示该 IP 访问控制应用于所有 consumer。
注意
allow 和 deny 两者至少配置一项。



5. 返回 route 页面,确定该 route 已经绑定的创建的插件。



6. 使用允许访问用户组内的用户(如 Jason)的凭证发起 API 请求,该请求被允许。
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 13
Content-Type: text/plain; charset=UTF-8
Date: Wed, 27 Apr 2022 06:46:38 GMT
Server: Cowboy
Vary: Origin
X-Kong-Proxy-Latency: 10
X-Kong-Upstream-Latency: 1775

{"ok"}
7. 使用不在该用户组的用户(如Tom)的凭证发起请求,该请求被拒绝。
HTTP/1.1 403 Forbidden
Connection: keep-alive
Content-Length: 49
Content-Type: application/json; charset=utf-8
Date: Wed, 27 Apr 2022 06:44:55 GMT
Server: kong/2.4.1
X-Kong-Response-Latency: 10

{
"message":"You cannot consume this service"
}

相关说明

更多相关说明请参见 Kong 插件