Знание клиентского контекста в AWS API Gateway с помощью API Key - PullRequest
0 голосов
/ 14 февраля 2019

Я настраиваю API-шлюз для своей лямбда-функции и использую прокси-интеграцию.Я также создаю планы использования и ключи API для этого API и делюсь ключами API k1 & k2 с двумя клиентами c1 и c2.

Когда клиент звонит с ключом k2, есть ли способ узнать из моей лямбда-функции, что запрос сделан c2?

У меня есть обработчик Java, реализующий RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent>

но, к сожалению, я не нахожу контекст клиента в APIGatewayProxyRequestEvent

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Вы не получите контекст клиента в случае wth API keys.Ключи API могут совместно использоваться несколькими usage plans для разных API.Таким образом, они не могут быть привязаны ни к одному API развертыванию.Если вы хотите сделать это, вы будете управлять им самостоятельно (например, ограничить 1 API для одного клиента, сопоставление ключа API для клиента).

Я думаю, что одна из причин, по которой AWS этого не предоставляет, заключается в том, что API keysпредназначены исключительно для usage plans.Любой вид аутентификации / авторизации (где важна идентификация пользователя) должен выполняться с использованием других методов, таких как IAM, Cognito user pools или custom authorizer.См. this .

Чтобы включить методы API в план использования, необходимо настроить отдельные методы API для запроса ключа API.Для аутентификации и авторизации пользователей не используйте ключи API.Используйте роль IAM, авторизатор Lambda или пул пользователей Amazon Cognito.

0 голосов
/ 14 февраля 2019

Я бы добавил ключ API в заголовок HTTP в запросе метода и запросе интеграции, чтобы Lambda получила предоставленный ключ API, а затем функция в Lambda выбирала код для запуска или печатала номер пользователя в соответствии с прочитанным ключом API..

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...