开启ACL建权插件
1、在服务上启用插件
$ curl -X POST http://kong:8001/services/{service}/plugins \
--data "name=acl" \
--data "config.whitelist=group1, group2" \
--data "config.hide_groups_header=true"
2、在路由上启用插件
$ curl -X POST http://kong:8001/routes/{route_id}/plugins \
--data "name=acl" \
--data "config.whitelist=group1, group2" \
--data "config.hide_groups_header=true"
3、在API上启用插件
$ curl -X POST http://kong:8001/apis/{api}/plugins \
--data "name=acl" \
--data "config.whitelist=group1, group2" \
--data "config.hide_groups_header=true"
所有插件都可以使用 http://kong:8001/plugins/ 进行通用配置。这是与任何服务、路由或消费者都无关的插件,它是“公共的”,并且将在每个请求上运行。下面是acl参数列表:
形式参数 | 默认值 | 描述 |
---|---|---|
service_id |
服务ID | |
route_id |
路由ID | |
enabled |
true |
是否可用. |
api_id |
API ID | |
config.whitelist semi-optional
|
白名单,逗号分隔的任意组名的列表 | |
config.blacklist semi-optional
|
黑名单,逗号分隔的任意组名的列表 | |
config.hide_groups_header optional
|
false | 如果启用了标记(“true”),可以防止 请求将X-Consumer-Groups 头部发送到上游服务的请求。 |
使用ACL鉴权插件
1、关联消费者
$ curl -X POST http://kong:8001/consumers/{consumer}/acls \
--data "group=group1"
2、上游头部
如果验证通过,将会添加group到头部X-Consumer-Groups
,这样你就可以识别与消费者相关的组。
3、ACL列表查询
$ curl -X GET http://kong:8001/acls
4、检索与ACL相关联的使用者
curl -X GET http://kong:8001/acls/{id}/consumer
{
"created_at":1507936639000,
"username":"foo",
"id":"c0d92ba9-8306-482a-b60d-0cfdd2f0e880"
}