我正在测试最近发布的DocumentDb,但找不到任何指示如何执行用户数据隔离的最佳实践的文档。
我想粗略的设计是:
我正在创建一个AngularJs应用程序,目前使用Azure Sql数据库与Azure移动服务相结合。
移动服务通过使用数据脚本javascript函数来处理用户身份验证以及服务器端用户数据隔离:
e.g。
function insert(item, user, request) {
item.userId = user.userId;
request.execute();
}
有关使用DocumentDB从AngularJS安全用户数据隔离技术的建议吗?
答案 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