Простая конечная точка API с Авторизатор пула пользователей Cognito при использовании кнопки Тест авторизатора (или использования postman/Insomnia) с действительным токеном дает сбой (скриншот ниже):
Я знаю, что токен действителен, так как я могу выполнить успешный вызов конечной точки пула пользователей Cognito user-info, используя тот же токен, и получить желаемый ответ.
Также удаление авторизатора (установив его на None) также вернет желаемый ответ.
Я пробовал как с Bearer ..., так и без, я также пытался изменить источник токена Authorization на method.request.header.Authorization, как я нашел в какой-то старый вопрос, но сразу после сохранения он меняет его обратно на Authorization, а method.response.header.Authorization, похоже, не работает либо.
API был развернут через стек CloudFormation.
Вы должны ответить на свой вопрос, чтобы другие, столкнувшиеся с той же проблемой, могли найти решение.
@NinadGaikwad, извините, я должен был упомянуть, я пишу документацию, в которой объясняется, как решить проблему, и свяжу ее здесь, когда она будет готова (+ TLDR!).





Я пишу полное руководство по этому вопросу, так как документации не хватает и найти нужную информацию для такой простой задачи непросто. но это может занять несколько дней, поэтому до тех пор я опубликую здесь краткий ответ, и как только (надеюсь) я закончу руководство, я обновлю этот ответ:
Моя проблема заключалась в том, что я использовал access_token, но мне пришлось использовать identity_token! Другая проблема заключается в том, что ни один из доступных инструментов OAuth2 (таких как модули аутентификации Postman и Insomnia) не возвращает и не использует identity_token, они даже не показывают токен! и хотя он есть в спецификациях OAuth2, никто его не использует (кроме Cognito!),...
Итак, я внес некоторые изменения в исходный код Insomnia модуля OAuth2 и использовал правильный токен, после чего он заработал!
Я собираюсь сделать пиар для Insomnia, и если он будет реализован, эта функция может стать доступной в следующих выпусках, в противном случае я сделаю свой упакованный двоичный файл доступным, чтобы Peep мог его использовать, поскольку в противном случае получить токены от AWS будет кошмаром. !
identity_token находится не в спецификации OAuth2, а в спецификации OpenID Connect (OIDC), поэтому, если эти провайдеры не являются провайдерами OIDC, они не будут возвращать id_token.
@LLL OIDC построен на основе OAuth2, по большей части они очень похожи. Чтобы решить вышеуказанную проблему для всех, кто может использовать Insomnia для выполнения запросов к конечным точкам, защищенным OIDC, я делаю PR для модуля OAuth2 в проект Insomnia (надеюсь, на этой неделе), чтобы пользователь мог выбрать, какой токен использовать.
Спасибо за этот ответ, я боролся с той же проблемой
#Неважно! нашел решение! и #ГОСТЬ причина: ПЛОХАЯ ДОКУМЕНТАЦИЯ! ? АВС! Какими бы замечательными ни были ваши API, если ваши документы — отстой, это пустая трата времени! как будто весь мой день потрачен впустую, чтобы понять это!