Мне было поручено реализовать пользовательский поток Вход / Регистрация в реагирующем собственном приложении. В этом приложении нет ничего особенного. Обычные экраны входа, регистрации (с проверкой SMS) и сброса пароля достаточно. Поэтому я пошел искать поставщиков удостоверений. Auth0 и AWS Cognito были наиболее подходящими находками. Мои менеджеры посчитали Auth0 слишком дорогим, поэтому мы отказались от него. Что оставило меня с опцией Cognito.
Согласно документам , можно полностью заменить стандартный пользовательский интерфейс (что нравится команде UI / UX), но при этом использовать базовую инфраструктуру. Одна вещь, которая очень волнует нашу команду, это безопасность. Согласно this и this запросы на авторизацию должны выполняться только через внешних агентов (браузеры мобильных пользователей). Поэтому я покопался в исходном коде aws-ampify и обнаружил, что в конечном итоге то, что он делает (и исправьте меня, если я ошибаюсь здесь, пожалуйста), является простым запросом API к конечным точкам аутентификации AWS, передающим моиClientId и другие атрибуты.
Меня это немного беспокоит безопасность взаимодействия с AWS. Поскольку конечные точки AWS безопасны, я знаю, что атака с помощью mitm отбрасывается.
Но что удерживает злоумышленника от декомпиляции моего мобильного приложения, получения доступа к ClientId и отправки прямых запросов в AWS? Действительно ли AWS Amplify небезопасен или я что-то здесь упускаю?