在本节中,您将学习到,如何配置使用KONG的插件来管理您的API。KONG的核心原则之一就是通过插件来实现API的扩展。插件可以使您更为简单的扩展和管理您的API。
在以下的步骤中,您将通过配置key-auth插件为您的API添加一个认证的功能。在添加此插件之前,您的所有API都被将代理到上游头。添加并配置此插件后,只有具有正确API密钥的请求会被代理 - 所有其他请求将被KONG拒绝,从而保护您的上游服务免受未经授权的使用,从而实现权限认证功能。
1. 为您的API配置 key-auth 插件:
通过以下命令,为之前添加的API新增认证功能:
$ curl -i -X POST --url http://localhost:8001/apis/example-api/plugins/ --data 'name=key-auth'
NOTE:该插件还接受一个 config.key_names 参数,默认为[apikey]。它表示在一次请求中,应该包含API密钥[apikey]和参数列表,apikey可以放在header中,也可以直接当作一个请求参数来使用。
2. 确认插件已经正确的配置好了:
使用以下命令来验证:
$ curl -i -X GET --url http://localhost:8000/ --header 'Host: example.com'
由于请求中没有指定apikey,所以返回的结果应该是403 Forbidden:
HTTP/1.1 403 Forbidden ... { "message": "Your authentication credentials are invalid" }
正确的请求应该是这样的:
$ curl -i -X GET --url http://localhost:8000/ --header 'Host: example.com' --header 'apikey=xxx'