Является ли создание нового пользователя в Amazon Cognito и публичное предоставление его учетных данных хорошей практикой? - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть бэкэнд-приложение, которое предоставляет данные измерений с использованием REST API.

Теперь я создаю приложение внешнего интерфейса, которое может визуализировать и запрашивать эти данные в зависимости от таких параметров, как city, fromDateTime, tillDateTime, sponsorId и т. Д.

Я бы хотел назначить атрибуты конкретным пользователям, которые описывали бы, как должна выглядеть визуализация и что именно они могут запрашивать из моего REST API. Например, конкретный спонсор измерительных устройств может видеть данные только с приобретенных ими устройств.

Однако я бы хотел, чтобы они могли обнародовать свои данные. Как это сделать?

Я думал, что в такой ситуации я мог бы сделать нового пользователя с соответствующими атрибутами и сделать его учетные данные общедоступными. Затем создайте URL с чем-то вроде /user/{username}/data/ в пути. username может генерироваться случайным образом, а пароль может быть одинаковым для всех публичных пользователей и может быть жестко задан в приложении внешнего интерфейса.

Что вы думаете об этом подходе? Это хорошая идея? Это безопасно? Может быть, есть другой лучший способ сделать это?

1 Ответ

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

Похоже, что часть вашего приложения доступна только аутентифицированным пользователям, а часть - неаутентифицированным (публичным) пользователям.

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

РЕДАКТИРОВАТЬ: я бы не использовал Cognito для хранения данных приложения.Хотя ваши данные могут относиться к пользователю, они не похожи на данные аутентификации и авторизации.Что еще более важно, если вы часто обращаетесь к этим данным для приложений, Cognito не масштабируется так же, как DynamoDB.Если вы все еще находитесь на этапе проектирования, я думаю, что вам следует заняться размещением этих данных в базе данных вместо Cognito.

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