Шлюз AWS API с базовой аутентификацией

Архитектура: публикация SNS в AWS API Gateway с прокси-сервером для лямбда-функции. Существует лямбда-авторизатор с настройкой модуля REQUEST для авторизации запросов API.

Он отлично работает как из SNS, так и из Postman, когда нет авторизации. Я вижу сообщения, опубликованные в журналах cloudwatch.

Проблема: невозможно проверить, как SNS будет публиковать сообщение в API, когда включена аутентификация, т. е. путем передачи имени пользователя и пароля в API. Почтальон выдает ошибку AuthorizerConfigurationException, когда передается URL-адрес https://имя пользователя:пароль@apiurl.com.

  1. Создана новая лямбда-функция и связанный лямбда-авторизатор со шлюзом API. -> Запрос с заголовком авторизации.
  2. Изменен ответ шлюза, чтобы включить заголовок WWW-Authenticate и значение «Basic».
  3. E2E отлично работает, когда я передаю заголовок авторизации и имя пользователя base64: закодированный пароль. Поскольку я хочу имитировать SNS для API -> я не могу использовать заголовок авторизации.

Вопросы:

  1. Каков вариант использования токена и авторизатора запросов?
  2. Какие изменения я должен внести в API, чтобы он принимал ИМЯ ПОЛЬЗОВАТЕЛЯ и ПАРОЛЬ в URL-адресе? Ошибка, которую я получаю в POSTMAN в AuthorizerConfigurationException.

person srg    schedule 05.01.2021    source источник
comment
Может быть, этот ответ (и комментарии под ним) поможет вам исправить AuthorizerConfigurationException ? Итак, вкратце: убедитесь, что шлюз API может вызывать вашу функцию авторизации и что ваша функция авторизации не выдает никаких ошибок.   -  person s.hesse    schedule 05.01.2021
comment
Кроме того, Token Authorizer используется, если ваша функция авторизации может полагаться на один HTTP-заголовок для аутентификации запроса. Если нет, например. если ему нужен доступ к параметрам запроса, другим заголовкам HTTP или подобным вещам, вместо этого следует выбрать Авторизатор запросов.   -  person s.hesse    schedule 05.01.2021