1

Ниже приводится пример моего использования -Аутентификация приложения для AWS API Gateway с Cognito

Я разрабатываю приложение для Android. Я пытаюсь использовать aws-api gateway и лямбда-функцию на задней панели. , но даже до входа в систему я хочу защитить HTTP-запросы и аутентифицировать свое приложение. Для этого я планирую использовать cognito с API Gateway. поэтому сначала мой вызов перейдет к cognito, который будет аутентифицировать приложение (а не пользователь), а затем мой вызов перейдет к любой функции Lamda. Я хочу включить все это в SDK шлюза api.

Ques 1 - это даже можно сделать так (см меня в какой-то документации или код)

Ques 2 - Это рекомендуется. или есть лучший способ сделать это?

ответ

1

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

+0

sry Я снова беспокою вас, но как проверить подлинность моего приложения еще до того, как я войду? –

+0

Вы входите в систему против Cognito, вам нужно подключить Cognito к поставщику удостоверений (например, google/facebook/twitter). Вы не будете атаковать свой API или лямбда до аутентификации, все это обрабатывается Cognito. –

+0

извините, если я не дал себе понять, что я хочу сделать, это сначала аутентифицировать приложение (во время загрузки приложения), а затем использовать cognito для аутентификации пользователя. Я хочу обернуть cognito внутри шлюза api. поэтому я запутался в том, как это сделать. взяв из вашего комментария «Вы входите в систему против Cognito», но сначала я должен аутентифицировать приложение. Извините, если это звучит немой –

3

Я знаю, что это может быть слишком поздно. Но для людей, у которых есть эта проблема, двумя способами вы можете защитить свои конечные точки API в зависимости от вашего сценария.

Если у вас нет пользовательского каталога (системы входа/регистрации), вы можете использовать Cognito User Pool для защиты своего Apis. Шаги

  1. в AWS Cognito консоли создайте Cognito пользователя Pool
  2. в консоли API шлюза, создать Cognito пользователя Pool Authorizer
  3. в коде JS, аутентификации пользователя с Cognito пользователь пула, который вернет вам токен пользователя, тогда вы можете использовать токен в заголовке авторизации при вызове Ajax на api.

Вот этот процесс step-by-step tutorial. Я бы рекомендовал начать с главы «Создать пул пользователей Cognito».

http://serverless-stack.com/chapters/create-a-cognito-user-pool.html

Второй сценарий быть, если у вас уже есть каталог пользователя или с Facebook/Twitter или любым другим социальным логином. Вам нужно будет создать пул идентификаторов Cognito. Вы можете найти это answer полезным.

Чтобы использовать федеративный идентификатор, вы устанавливаете метод API Gateway для использования авторизации «AWS_IAM». Вы используете Cognito для создания роли, а свяжите его с пулом идентификации Cognito.Затем вы используете службу Identity and Access Management (IAM), чтобы предоставить эту лицензию для вызова метода API-шлюза.

Смежные вопросы