2014-09-04 4 views
0

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

я себе грубый дизайн будет:

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

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

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

например

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

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

+0

Так монетка просто выпавших о том, как это должно быть реализовано. Azure Mobile Services использует Express для обеспечения как встроенного API для Sql, так и функциональности Custom Api. Таким образом, очевидным путем будет создание пользовательского api с помощью js, который использует Express для доступа к DocumentDB под учетными данными аутентифицированного пользователя Azure. Когда у меня есть какой-то источник, который работает, я отвечу на свой вопрос и отправлю сюда. – j3r3m7

ответ

1

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

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

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

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

+0

Привет, спасибо за ответ. Да, это недостающий бэкэнд-сервис, который я ищу. С помощью мобильных сервисов вы получаете их бесплатно для crud на таблицах Sql. Возможно, на данный момент было бы целесообразно создавать пользовательские конечные точки api в Mobile Service, а затем конвертировать их позже, если Microsoft предоставит встроенные операции. – j3r3m7

+1

Знаешь ... Я бы хотел, чтобы поддержка DocumentDB была добавлена ​​в Azure Mobile Services! Вы можете проголосовать за поддержку DocumentDB на форуме обратной связи Azure Mobile Services: http://feedback.azure.com/forums/216254-mobile-services/suggestions/6399284-add-support-for-documentdb –

Смежные вопросы