Что означают настройки в приложении-клиенте AWS Cognito User Pool - PullRequest
0 голосов
/ 17 января 2019

Я искал повсюду, учебники, веб, все прыгают, не объясняя (я понимаю почему) флажки в настройках клиента приложения:

  1. Включить API входа для аутентификации на сервере
  2. Разрешить только пользовательскую аутентификацию
  3. Включить поток имени пользователя-пароля (не SRP) для аутентификации на основе приложения

Ссылка узнать больше мне не помогает, много информации и не так легко понять, понять. Может кто-нибудь объяснить эти настройки. Спасибо

1 Ответ

0 голосов
/ 18 января 2019

Вот моя попытка объяснить эти варианты. Перед этим я хотел бы кратко упомянуть о Oauth2 , который является протоколом, на котором основан AWS Cognito.

В контексте AWS Cognito сам Cognito является сервером аутентификации (OAuth) , а также сервером ресурсов (поскольку мы создаем пользователей в пуле пользователей Cognito), и ваше приложение будет быть клиентом (который отправляет запрос аутентификации). Клиент должен сначала зарегистрироваться на сервере OAuth - это делается в разделе «Клиенты приложений» в Cognito.

Рекомендуемый поток OAuth2: Код авторизации. Поток предоставления . В этом потоке

i) Клиент отправляет имя пользователя / пароль на OAuth-сервер.

ii) Сервер OAuth проверяет и перезванивает клиенту с код авторизации .

iii) Клиент снова отправляет этот код обратно на сервер OAuth

iv) OAuth-сервер отправляет клиенту токены .

Пожалуйста, прочитайте приведенную выше статью для более подробного объяснения OAuth2.

Теперь объясним параметры в настройках Cognito App Client:

1. Включить API входа для серверной аутентификации

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

Есть такие API Cognito, как AdminInitiateAuth, Admin- *, которые делают это. Однако эти API требуют учетных данных администратора AWS. Следовательно, обычно эти вызовы выполняются внутренним сервером клиентского приложения. Внешний интерфейс может передать имя пользователя / пароль бэкэнду, а внутренний сервер может обмениваться данными с AWS Cognito и авторизовать пользователя.

2. Разрешить только пользовательскую аутентификацию

Здесь вы не используете поток предоставления кода авторизации, предоставленный OAuth. Вместо этого вы можете определить свои собственные шаги и проблемы. Ваше клиентское приложение может задать секретный вопрос и т. Д. Перед аутентификацией и выдачей токенов.

3. Включить поток имени пользователя и пароля (не SRP) для аутентификации на основе приложений

Это наименее безопасный поток. Это пропускает часть возврата кода авторизации и напрямую возвращает токены обратно клиенту.

Надеюсь, это объясняет.

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