AWS: API Gateway Authorizer, использующий токен доступа, полученный от ALB - PullRequest
1 голос
/ 15 апреля 2019

У меня есть проект, который должен использовать Lambda функции, которые запускаются API Gateway с защищенным авторизатором. Я установил метод ресурса, чтобы требовать заголовок авторизации, который token id указан в ответе Cognito на аутентификацию.,В основном все защищенные маршруты в приложении обрабатываются ALB, который всегда проверяет, защищен ли запрошенный маршрут, и если это так, то перенаправляет на sign-in Cognito в случае отсутствия сеанса, после успешной аутентификации, Балансировщик нагрузки будетперенаправить запрос в приложение с дополнительными заголовками:

  • x-amzn-oidc-data
  • x-amzn-oidc-accesstoken

Оба в некотором смысле говорят JWT с заявками пользователей из аутентификации.Обычно для конечной точки API Gateway, защищенной авторизатором cognito, требуется token id, который легко получить с помощью implicit flow в аутентификации cognito, но ALB использует поток authorization code, который дает только код сеанса.И данные из x-amzn-oidc-data и token id выглядят одинаково, но когда я пытаюсь получить доступ к конечной точке, используя данные из ALB, я получаю только unauthorized.

Идеальный поток выглядит следующим образом: ALB identity with Lambda

Я знаю, что мог бы избежать всего этого процесса, просто внедрив функцию Lambda непосредственно в ALB в качестве триггера, но мой проект только ищет автоматические развертывания и CloudFormation все ещене поддерживает Lambda реализации для ELB.

TL: DR

Простой вопрос: как я могу предоставить доступ в API Gateway с использованием токенас разрешения ALB?

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