Я работаю над реализацией AWS API Gateway с серверной частью Lambda. Я использую интеграцию API-шлюза с пользовательскими пулами Cognito (довольно новые) вместо создания настраиваемого авторизатора с использованием Lambda (что было рекомендовано до его интеграции).
Я создал доказательство концепции (javascript), которое аутентифицирует пользователя с помощью Cognito, а затем выполняет вызов API-шлюза с этими учетными данными. Итак, в основном, завершающий вызов API-шлюза происходит с токеном JWT, который я получил от Cognito (result.idToken.jwtToken) в заголовке авторизации. Все это работает, и я могу подтвердить, что только с этим токеном вы можете получить доступ к API.
Все работает нормально, но теперь я хочу получить доступ к идентификатору Cognito в моей Lambda; например, идентификатор или имя или адрес электронной почты. Я читал, как сопоставить все параметры, но на самом деле я просто использую стандартный шаблон «Метод сквозной передачи запроса» в запросе на интеграцию. Я регистрирую все параметры в лямбде, и все параметры «когнито» пусты.
Я просмотрел много похожих вопросов, и все они предлагают включить флажок «Вызов с учетными данными вызывающего абонента» в запросе на интеграцию. В этом есть смысл.
Однако этот флажок можно установить только в том случае, если вы используете AWS_IAM в качестве авторизации, и нет, если вы выбрали свой пользовательский пул когнито. Поэтому его просто невозможно выбрать, и он фактически отключен.
Кто-нибудь знает, что делать в этом случае? Это все еще продолжается, или есть причина, по которой вы не можете включить это и получить учетные данные когнитивного анализа в своей лямбде?
Большое спасибо.