Разделение пользовательских данных DocumentDb

Я тестирую недавно выпущенную DocumentDb и не могу найти никакой документации, указывающей наилучшую практику о том, как выполнить разделение пользовательских данных.

Я предполагаю, что грубый дизайн будет:

  • Аутентифицировать пользователя и создать новый / получить существующий идентификатор пользователя
  • При вставке документа введите идентификатор пользователя в документ
  • Запрос на чтение документа / коллекции документов, где идентификатор пользователя документа = идентификатор текущего пользователя

Я создаю приложение AngularJs и в настоящее время использую базу данных Azure Sql в сочетании с мобильными службами Azure.

Мобильные сервисы обрабатывают аутентификацию пользователя, а также сегрегацию пользовательских данных на стороне сервера с использованием функций JavaScript сценариев данных:

например

function insert(item, user, request) {
  item.userId = user.userId;
  request.execute();
}

Любые предложения о том, что будет техника для безопасного разделения пользовательских данных от AngularJS с использованием DocumentDB?

1 ответ

Ваш подход звучит разумно для меня - при условии, что логика, упомянутая в вашем грубом дизайне, имеет место в вашем бэкэнд-сервисе.

Как правило, я бы относился к DocumentDB так же, как к любому другому хранилищу данных. Ваш клиент (AngularJS) делает звонки в вашу бэкэнд-службу, а не звонит напрямую в ваше хранилище данных. Ваш сервер проверяет запрос клиента (т. Е. Утверждает, что пользователь прошел проверку подлинности и может касаться определенного фрагмента данных), прежде чем делегировать какую-либо работу вашему хранилищу данных.

Если требуется прямой доступ к базе данных с клиента - вы можете проверить пользователей и разрешения DocumentDB. Для реализации многопользовательского режима для вашего приложения вы можете создавать пользователей в DocumentDB, которые соответствуют вашим реальным пользователям или владельцам вашего приложения. Затем вы можете создать разрешения для данного пользователя, которые соответствуют управлению доступом к различным коллекциям, документам, вложениям и т. Д. На вашем клиенте вы можете подключаться к базе данных, используя ключ ресурса пользователя, а не ключи администратора вашего DocumetnDB.

Прочтите этот пост в блоге о пользователях / разрешениях DocumentDB: http://blogs.msdn.com/b/cloud_solution_architect/archive/2014/12/09/permissions-in-azure-documentdb.aspx

Другие вопросы по тегам