2017-02-22 5 views
0

У нас есть два типа конечных точек API; общественных и частных. Возможно ли использовать HMAC только на частной конечной точке?HMAC только для частного API

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

Я нашел ответ и отправил его в проблему kong github. https://github.com/Mashape/kong/issues/2120#issuecomment-281890169

(1) Создание 2 API, с различным request_path (без 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) Применить HMAC плагин для 'примера-пользователи-апите' API

curl -i -X POST \ 
    --url http://localhost:8001/apis/example-users-api/plugins/ \ 
    --data "name=hmac-auth"