我们有两种类型的API端点;公立和私立。是否有可能仅在私有端点上使用HMAC?
e.g.
GET https://api.example.com/items ... This is public API. No need HMAC.
POST https://api.example.com/users/john/friends ... This is private API. It needs HMAC. We want to confirm that John send this request by checking HMAC signature.
以下是hmac-auth插件的安装。它似乎没有公共和私人的区别。
curl -i -X POST \
--url http://localhost:8001/apis/api.example.com/plugins/ \
--data "name=hmac-auth"
答案 0 :(得分:0)
我找到答案并将其发布到kong github问题。 https://github.com/Mashape/kong/issues/2120#issuecomment-281890169
(1)使用不同的request_path(不带request_host)创建2个API
curl -i -X POST \
--url http://localhost:8001/apis/ \
--data 'name=example-items-api' \
--data 'upstream_url=http://api.example.com/' \
--data 'request_path=/items'
curl -i -X POST \
--url http://localhost:8001/apis/ \
--data 'name=example-users-api' \
--data 'upstream_url=http://api.example.com/' \
--data 'request_path=/users'
(2)为'example-users-api'API
应用HMAC插件curl -i -X POST \
--url http://localhost:8001/apis/example-users-api/plugins/ \
--data "name=hmac-auth"