DocumentDb用户数据隔离

时间:2014-09-04 10:19:37

标签: angularjs azure azure-mobile-services azure-cosmosdb

我正在测试最近发布的DocumentDb,但找不到任何指示如何执行用户数据隔离的最佳实践的文档。

我想粗略的设计是:

  • 对用户进行身份验证并创建新的/获取现有用户ID
  • 在文档插入时将用户ID注入文档
  • 读取文档/文档集合查询文档用户id =当前用户ID

我正在创建一个AngularJs应用程序,目前使用Azure Sql数据库与Azure移动服务相结合。

移动服务通过使用数据脚本javascript函数来处理用户身份验证以及服务器端用户数据隔离:

e.g。

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

有关使用DocumentDB从AngularJS安全用户数据隔离技术的建议吗?

1 个答案:

答案 0 :(得分:1)

您的方法听起来很合理 - 假设粗略设计中提到的逻辑发生在您的后端服务中。

通常,我会像处理任何其他数据存储一样对待DocumentDB。您的客户端(AngularJS)会调用您的后端服务,而不是直接调用您的数据存储区。在将任何工作委托给您的数据存储区之前,您的后端会验证客户端的请求(即断言用户已经过身份验证并可能触摸特定的数据)。

如果需要从客户端直接访问数据库 - 您可以查看DocumentDB的用户和权限。为了实现应用程序的多租户,您可以在DocumentDB中创建与您的实际用户或应用程序租户相对应的用户。然后,您可以为给定用户创建与各种集合,文档,附件等的访问控制相对应的权限。在客户端上,您可以使用用户的资源键而不是DocumetnDB来连接数据库。管理员密钥。

查看有关DocumentDB用户/权限的博文:http://blogs.msdn.com/b/cloud_solution_architect/archive/2014/12/09/permissions-in-azure-documentdb.aspx

相关问题