Использовать пары ключей API для пользователей для шлюза API - PullRequest
0 голосов
/ 19 февраля 2019

У меня работает веб-приложение со всеми его API-интерфейсами AWS API Gateway .В настоящее время он аутентифицирован с использованием токена Cognito .

Теперь я хочу, чтобы пользователи могли настраивать пары ключей API (идентификатор и секрет), чтобы у них был альтернативный способ аутентификации и доступа к своей учетной записи программно, аналогично этому (https://support.binance.com/hc/en-us/articles/360002502072-How-to-create-API).

Мне известны некоторые решения (неоптимальное IMO, исправьте меня, если я ошибаюсь):

  1. Можно использовать ключи API от шлюза API, но согласно документации этоне предназначен для аутентификации.
  2. Мы могли бы использовать для него учетные данные IAM, но я не уверен, рекомендуется ли назначать учетные данные IAM пользователям (а не внутренним разработчикам).

Каков наилучший способ для достижения чего-то подобного (https://support.binance.com/hc/en-us/articles/360002502072-How-to-create-API) с API-шлюзом?

1 Ответ

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

Я бы предложил реализовать Lambda-авторизатор на основе запросов [1].Рассматривая ваш пример, вы, похоже, ожидаете применения некоторых настраиваемых политик безопасности (например, проверка на основе IP-адреса, включение определенных API).

  • Ваш пул пользователей Cognito по-прежнему будет использоваться для аутентификации на основе имени пользователя и пароля в вашем веб-приложении.
  • Моя идея состоит в том, чтобы хранить пользовательские ключи API и пользовательскую политику безопасности в отдельном хранилище данных (например, DynamoDB).
  • Затем пользователи могут использовать эти ключи API при вызове API.
  • API-шлюз запускает Lambda-авторизатор, а Lambda-авторизатор отвечает за проверку ключей API во входящем запросе и генерацию политики IAM на основе вашей пользовательской политики безопасности.

[1] См. Раздел «Создание лямбда-функции лямбда-авторизатора типа REQUEST» в https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html

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