В Cognito есть способ авторизации с точки зрения конкретного пользователя - PullRequest
1 голос
/ 07 мая 2019

Чтобы подключить пользователей к нашей платформе, мы бы хотели, чтобы команда маркетологов могла использовать приложение так, как если бы они были пользователями.Чтобы все можно было настроить заранее, когда придет время для нашей демонстрационной / входящей сессии.

Поддерживает ли Cognito вход в систему с одной учетной записью и получение доступа к другой?Мы стараемся не использовать нашу собственную аутентификацию перед Dynamo и просто использовать то, что приходит из Cognito.

Ответы [ 2 ]

1 голос
/ 07 мая 2019

К сожалению, в Cognito такой функции нет.

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

0 голосов
/ 08 мая 2019

Я только что реализовал нечто очень похожее на этой неделе. Cognito действительно не поддерживает это, нет. Но если вы уже привержены Cognito, вы можете обмануть его, если вы получаете доступ к Cognito с внутреннего сервера. По сути, вы создаете пользовательский поток аутентификации.

Если аккаунт еще не существует:

  • Запустите AdminCreateAccount. Укажите временный пароль.

  • Запустите AdminInitiateAuth. Войдите с временным паролем. Установите новый пароль.

  • У вас есть токены пользователя (т. Е. Вы вошли в систему как они)

Если учетная запись уже существует:

  • Создать Пользовательский поток аутентификации . Вам в основном нужно три отдельных лямбды. Каждая лямбда вызывается соответствующими триггерами Cognito (DefineAuthChallenge, CreateAuthChallenge, VerifyAuthChallenge). Технически вы можете обойтись только первым, если будете просто выбирать токены возврата при каждом вызове DefineAuthChallenge).

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

Это довольно сокращенная версия, которую я знаю. Как я говорю, возможно, но неприятно.

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

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