Как вызвать пользовательский пул Cognito для аутентификации со страницы Javascript для шлюза Lambda API

#amazon-web-services #amazon-cognito #aws-sam-cli #amazon-connect #amazon-javascript-sdk

#amazon-веб-сервисы #amazon-cognito #aws-sam-cli #amazon-connect #amazon-javascript-sdk

Вопрос:

У меня настроена панель управления Amazon Connect, где агент может принимать вызов. Я разработал настраиваемый HTML-экран, где агент может вводить данные клиента и сохранять в базе данных. Для сохранения я вызываю функцию lambda с помощью шлюза API. Я вызываю URL шлюза со страницы HTML. Теперь я хочу защитить URL этого шлюза API с помощью пользовательского пула Cognito, в который я интегрировал Active Directory. Я нашел несколько решений, но они отправляют пароль в метод authenticateUser. Таким образом, он предоставит пароль на странице HTML. Есть ли какой-либо способ, которым я могу избежать этого?

Спасибо, Gans

Ответ №1:

Я не вижу никакой проблемы в ‘раскрытии’ пароля на странице HTML. Используя cognito JS SDK, аутентифицирующий пользователь напрямую предоставит ключ доступа. Затем вы можете использовать ключ для аутентификации ваших запросов к шлюзу API.

Ответ №2:

Вам необходимо использовать единый поставщик удостоверений, который интегрирован как с Amazon Connect, так и с Cognito через SAML. Это единственный способ аутентифицировать пользователя один раз и использовать идентификатор / токен как для авторизации в CCP Connect, так и в шлюзе API (через Cognito authorizer). В этом случае вам нужно будет запустить новый экземпляр Amazon Connect с интеграцией SAML, а затем настроить пул удостоверений, а не пользовательский пул, в Cognito, поскольку это позволит вам интегрироваться с поставщиком удостоверений на основе SAML.

Если вы хотите использовать пользовательский пул в Cognito, то вам нужно будет запустить дополнительное диалоговое окно имени пользователя / пароля при загрузке вашего приложения, чтобы получить учетные данные Cognito после аутентификации пользователя в Amazon Connect.