Как использовать AWS Cognito для неаутентифицированных пользователей? - PullRequest
2 голосов
/ 03 апреля 2019

Я хотел бы использовать AWS Cognito (пулы пользователей и пулы идентификации) для управления доступом к моему веб-приложению.

Это веб-приложение является генератором отчетов. Он генерирует отчеты из собранных данных датчиков.

Возможный объем запрашиваемых данных зависит от пользователя. Некоторые пользователи должны иметь доступ только к определенным идентификаторам датчиков или датчикам из указанной области или диапазона дат.

Однако я хотел бы сделать некоторые отчеты общедоступными, например. данные с датчиков из Нью-Йорка должны быть доступны каждому без необходимости регистрироваться / регистрироваться.

Что касается аутентифицированных пользователей, я думаю, что я мог бы просто добавить пользовательский атрибут в Cognito User Pool с идентификаторами датчиков, к которым указанный пользователь должен иметь доступ. Затем, после регистрации и входа в Cognito, пользователь может отправить запрос в мое приложение, а я проверим JWT и получу из полезной нагрузки информацию о том, какие датчики могут запрашивать пользователь.

К сожалению, я не уверен, как обращаться с неаутентифицированными пользователями. Я вижу это так:

  1. Пользователь переходит на страницу с определенным общедоступным отчетом. Например. https://example.com/reports/new-york/
  2. Frontend (React.js) каким-то образом получает подписанный JWT с пользовательским атрибутом custom:city = New York.
  3. Frontend отправляет запрос в мое приложение, мое приложение проверяет JWT и разрешает данные пользователю, если запрос содержит запрос только для датчиков Нью-Йорка.

Может быть, мне следует создать пользователя с известным именем пользователя и паролем и жестко закодировать его во внешнем интерфейсе?

Это правильный способ использования Cognito? Должен ли я реализовать это каким-либо другим способом?

1 Ответ

2 голосов
/ 04 апреля 2019

Да, существует простой способ реализовать неаутентифицированный доступ с использованием пула идентификации cognito. Вы не будете использовать пул пользователей для этого. Перейдите в пул удостоверений в консоли aws и нажмите «Изменить пул удостоверений». Теперь прокрутите вниз до неаутентифицированных личностей и включите его. unauthenticated identities

Для этого пула удостоверений автоматически созданы 2 разные роли. Один за роль автора, а другой - за роль неавтора. Дайте разрешения соответственно. Теперь вы можете совершать неаутентифицированные вызовы, используя cognito sdk, и если вы не предоставите учетные данные, вам будут предоставлены учетные данные для роли без аутентификации.

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