Можно ли перенести пользователей из моей базы данных mongodb в пул пользователей aws cognito? - PullRequest
0 голосов
/ 12 марта 2019

Для большей безопасности я бы хотел перевести всех пользователей моего веб-приложения на aws cognito.Можно ли перенести пользовательские данные из mongodb в cognito таким образом, чтобы все мои клиенты могли войти со своим старым паролем?Или требуется изменить пароль после миграции?

A rough user table is below:
name:
email:
hash_password:
salt:

hash_password и salt - это строки, которые, возможно, необходимо экспортировать в csv и затем загрузить в cognito.Но я не вижу таких опций в cognito.

У меня есть сотни пользователей, и я не хочу принудительно менять пароль для всех них.Я проверил документы aws, и они ничего не упоминают о миграции с mongodb.Пожалуйста, позвольте мне, если это возможно, и если это так, то как это может быть достигнуто?

Ответы [ 2 ]

1 голос
/ 12 марта 2019

Вы пробовали использовать лямбда-триггер UserMigration? Это позволяет вам переносить пользователей с их существующим паролем во время аутентификации.

Проверьте сообщение в блоге , а также документацию триггера с примером

1 голос
/ 12 марта 2019

Для этого есть несколько способов:

  1. Вы используете подготовленный файл .CSV и импортируете его в пул пользователей aws cognito.Процесс импорта устанавливает все пользовательские атрибуты, кроме пароля.Статус пользователя в Cognito будет RESET_REQUIRED.Cognito вынуждает сбрасывать пароль.

  2. В противном случае вы можете написать один скрипт, который добавит всех пользователей из mongodb в cognito, выполнив следующие шаги:

Используйте: AdminCreateUser

  1. Создайте новый профиль пользователя с помощью консоли управления AWS или путем вызова API AdminCreateUser.Укажите временный пароль (будет паролем вашего пользователя в mongodb) или разрешите Amazon Cognito автоматически его сгенерировать.

  2. Укажите, помечаются ли предоставленные адреса электронной почты и номера телефонов как проверенные для новых пользователей.Укажите пользовательские SMS и электронные приглашения для новых пользователей через Консоль управления AWS.

  3. Укажите, будут ли отправляться приглашения с помощью SMS, электронной почты или обоими способами.

  4. После успешного создания пользователя,

     1. authenticate user using same user credentials
            Use: SDK calls InitiateAuth(Username, USER_SRP_AUTH)

     2. After success of initateAuth, amazon Cognito returns the PASSWORD_VERIFIER challenge with Salt & Secret block.

     3. Use RespondToAuthChallenge(Username, <SRP variables>, PASSWORD_VERIFIER

     4. Amazon Cognito returns the NEW_PASSWORD_REQUIRED challenge along with the current and required attributes.

     5. The user is prompted and enters a new password and any missing values for required attributes.

     6. Call RespondToAuthChallenge(Username, <New password>, <User attributes>).

     7. After successful password change user can be able to login using same credentials added in mongodb.

Примечание: но есть проблема, если вы не можете расшифровать учетные данные пользователя из mongodb, то второе решение не будет работать.

           -  In that case, you can specify the temporary password(will  allow Amazon Cognito to automatically generate one.).

           - all user users will be forced to change their password only at first login.

Дополнительно:

Если вы хотите узнать, как написать CSV и импортировать его в Cognito, то проверьте эту ссылку, https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-using-import-tool-csv-header.html

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