在本節中,您將學習到,如何配置使用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'