1

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

1 回答 1

0

我找到了答案并将其发布到kong github问题。https://github.com/Mashape/kong/issues/2120#issuecomment-281890169

(1) 创建2个不同request_path的API(没有request_host)

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"
于 2017-02-25T09:09:36.167 回答