Добавляем ACL для нашего API в kong

Posted in Новости on 6 апреля, 2017 by admin

ACL — это плагин разграничения доступа пользователей к API. Ему необходим для работы один из плагинов авторизации ( BASIC или KEY например ).

1. Создаем ACL для нашего API к которому будут иметь доступ две группы

curl -X POST http://localhost:8001/apis/myapi/plugins --data "name=acl" --data "config.whitelist=group1, group2"

2. Добавляем пользователя ( consumer ) в группу

curl -X POST http://localhost:8001/consumers/user1/acls --data "group=group1"

3. Используем авторизацию как обычно

Tags: , , ,

Добавляем key auth для нашего API в kong

Posted in Новости on 16 марта, 2017 by admin

Тут мы создали свой API. Обращения к нему мы можем закрыть авторизацией BASIC , KEY , OAUTH , HMAC. В этой статье рассматриваем KEY AUTH.

1. Добавляем к созданному API плагин KEY AUTH

curl -X POST http://localhost:8001/apis/myapi/plugins --data "name=key-auth" --data "config.hide_credentials=true"

2. Проверяем, что плагин есть в списке плагинов к нашему API:

curl http://localhost:8001/apis/myapi/plugins

3. Создаем пользователя kong ( Consumer ) :

curl -d "username=user1" http://localhost:8001/consumers/

4. Создаем для пользователя kong ключ ( в ответе на команду будет key: ) :

curl -X POST http://localhost:8001/consumers/user1/key-auth -d ''

5. Передаем дополнительный хидер в запросе API :

curl -i --url http://localhost:8000/ --header 'Host: tresnet.ru' --header "apikey: ad56e164e959478bbbfc8f3a4e8c0e23"

Tags: , , ,

Добавляем basic auth для нашего API в kong

Posted in Новости on 16 марта, 2017 by admin

Тут мы создали свой API. Обращения к нему мы можем закрыть авторизацией BASIC , KEY , OAUTH , HMAC. В этой статье рассматриваем BASIC

1. Добавляем к созданному API плагин авторизации BASIC

curl -X POST http://localhost:8001/apis/myapi/plugins --data "name=basic-auth" --data "config.hide_credentials=true"

OUTPUT :

{"api_id":"772ba6dc-5d2e-4bbb-b600-03fe5f754094","id":"07f17354-c639-4d1d-a7d4-a70ab40b3ddb","created_at":1489654500000,"enabled":true,"name":"basic-auth","config":{"hide_credentials":true}}

2. Проверяем, что плагин есть в списке плагинов к нашему API:

curl http://localhost:8001/apis/myapi/plugins

3. Создаем пользователя kong ( Consumer ) :

curl -d "username=user1" http://localhost:8001/consumers/

4. Создаем для пользователя kong пару логин/пароль для basic auth :

curl -X POST http://localhost:8001/consumers/user1/basic-auth --data "username=testme" --data "password=testmetest"

5. Генерируем base64 строку для передачи авторизации через хидер :

perl -MMIME::Base64 -e 'print encode_base64("testme:testmetest")'

6. Передаем дополнительный хидер в запросе API :

curl -X POST http://localhost:8001/apis/ --data "name=myapi" --data 'upstream_url=http://tresnet.ru/' --data 'request_host=tresnet.ru' --header "Authorization: Basic dGVzdG1lOnRlc3RtZXRlc3Q="

7. Без авторизации получаем отлуп :

HTTP/1.1 401 Unauthorized
Date: Thu, 16 Mar 2017 09:04:55 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
WWW-Authenticate: Basic realm="kong"
Server: kong/0.9.6

{"message":"Unauthorized"}

Tags: , , ,