#amazon-web-services #amazon-cognito
#amazon-web-services #amazon-cognito
Вопрос:
Это вопрос о блокировке поставщика и AWS cognito. Можно ли экспортировать пользовательские данные и зашифрованные / хэшированные пароли из cognito, если мы когда-нибудь уйдем с AWS?
Может / использует ли cognito стандартное хеширование или настраиваемое хеширование паролей пользователей или разрешает экспорт таких вещей, как токены?
Ответ №1:
На данный момент Cognito не позволяет экспортировать пользователей из пула пользователей. Однако мы слышали этот запрос от других клиентов и определили его приоритетность для будущих выпусков.
Что касается паролей, Cognito использует протокол безопасного удаленного пароля для фактической аутентификации, поэтому метаданные, которые могут появиться, могут быть не особенно полезными, если они вообще были включены.
Комментарии:
1. Как насчет переноса пула в другую учетную запись AWS?
2. Тот же ответ, в настоящее время не поддерживается, но это запрос, который мы слышали несколько раз.
3. отсутствует действительно важная функция
4. @JeffBailey — Это все еще верно? Вашему ответу около 2 лет.
Ответ №2:
Учитывая, что Amazon до сих пор не обновил свой ответ, вот обходной путь (чтобы дополнить принятый ответ):
Попробуйте npmjs.com/package/cognito-backup-restore .
примечание. Я не тестировал этот пакет.
Затем:
- Создайте свою систему аутентификации для замены
- При входе в систему протестируйте аутентификацию в вашей новой системе
- Попробуйте пройти аутентификацию с помощью Cognito
- Если Cognito завершится успешно, импортируйте данные пользователя в вашу новую систему
- Требуется обновление пароля в вашей новой системе
Комментарии:
1. Как вы упомянули, для этого метода требуется сброс пароля для каждого пользователя, поскольку, как указано в комментарии в библиотеке NPM, «Обратите внимание: в cognito невозможно получить пароли пользователей, поэтому вам может потребоваться попросить их использовать ForgotPassword для восстановления своей учетной записи». Так что неочень удобный пользовательский интерфейс, который может привести к потере нескольких ваших пользователей.
Ответ №3:
Эта эталонная архитектура может быть полезна: https://aws.amazon.com/solutions/implementations/cognito-user-profiles-export-reference-architecture/
Он использует ListUsers
API для экспорта профилей пользователей в таблицу DynamoDB. Он предназначен для запуска по расписанию (ежедневно / еженедельно / и т. Д.), Чтобы поддерживать таблицу DynamoDB в актуальном состоянии с профилями в пуле пользователей. Источник находится на GitHub, поэтому можно изменить решение для экспорта в CSV.
Если профили импортируются в новый пул пользователей, пользователю все равно потребуется сбросить пароли. Другие ограничения, перечисленные в руководстве по развертыванию.
Комментарии:
1. Спасибо, что поделились этим — похоже, многие ресурсы говорят, что вы не можете вывести пользователей из Cognito, но, похоже, вы можете.
Ответ №4:
Cognito фактически имеет возможность импортировать пользователей с использованием файлов CSV, однако функции экспорта недоступны (если вы не перечисляете пользователей и не записываете в CSV)
Комментарии:
1. Даже перечисление пользователей и создание CSV-файла все равно потребует от всех пользователей сброса паролей
2. Импорт csv был для нас чрезвычайно сложным, поэтому в итоге мы открыли EC2 и использовали CLI для импорта. Это позволило устанавливать произвольные пароли.