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

Тут мы создали свой 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: , , ,

Leave a Reply