HMAC仅适用于私有API

时间:2017-02-22 07:01:53

标签: kong

我们有两种类型的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"

1 个答案:

答案 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"