Авторизация AWS cognito

#amazon-web-services #authorization #amazon-cognito

Вопрос:

У меня есть заявление (node.js), которые нуждаются в аутентификации и авторизации. Моему приложению необходим доступ к базе данных postgres, а также требуется наследование (роли и т.д.)

Одним из вариантов реализации этого является использование сервиса aws cognito (приложение будет размещаться на aws должным образом — не уверен в этом).

итак, вопросы таковы

  1. Является ли служба cognito поддержкой авторизации для node.js с базой данных, которая не является сервисами на aws? (Я читал, что «пул удостоверений» предназначен для сервисов aws, таких как MariaDB)
  2. Если мое приложение будет на heroku (а не на aws), я также смогу использовать сервисы cognito (для авторизации)?
  3. Является ли наследование ролей/пользователей cognito поддержкой ?

Tnx

Ответ №1:

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

Однако, если вы планируете хранить учетные данные базы данных, я предлагаю вам использовать AWS secrets manager для хранения учетных данных базы данных и предоставить пользователю cognito доступ к этому секрету. В этом случае вам нужно будет использовать как пул пользователей, так и пул удостоверений.

  1. Не напрямую, но вы можете использовать его для доступа к менеджеру секретов, в котором хранятся учетные данные вашей БД.
  2. Да, вы можете использовать cognito в любом месте. Однако он будет подключаться к AWS, чтобы предоставить вам токены. И эти токены распознаются только на AWS. Вот почему вам нужно использовать их для доступа к другим секретам, которые можно использовать для доступа к любым другим службам, которые вы хотите.
  3. Cognito поддерживает группы. Я не уверен, что это то, что вы подразумеваете под наследованием. У вас могут быть роли на основе маркеров в группах.