我正在测试最近发布的DocumentDb,找不到任何说明如何执行用户数据隔离的最佳实践的文档。
我想大致的设计是:
我正在创建AngularJs应用程序,目前使用的是Azure Sql数据库和Azure Mobile服务。
移动服务通过使用数据脚本javascript函数处理用户身份验证和服务器端用户数据隔离:
例如:
function insert(item, user, request) {
item.userId = user.userId;
request.execute();
}对于使用AngularJS将用户数据与DocumentDB隔离的技术有什么建议吗?
发布于 2014-09-04 17:58:19
在我看来,您的方法是合理的--假设您的粗略设计中提到的逻辑发生在后端服务中。
通常,我对DocumentDB的处理方式与处理任何其他数据存储的方法相似。客户端(AngularJS)调用后端服务,而不是直接调用数据存储。在将任何工作委托给您的数据存储之前,后端将验证客户端的请求(即断言用户经过身份验证并可能接触特定的数据)。
如果希望从客户端直接访问数据库,您可以查看DocumentDB的用户和权限。为了为您的应用程序实现多租户,您可以在DocumentDB中创建与实际用户或应用程序租户相对应的用户。然后,您可以为给定用户创建与对各种集合、文档、附件等的访问控制相对应的权限。在客户端上,您可以使用用户的资源键而不是DocumetnDB的管理员密钥连接到数据库。
查看有关DocumentDB用户/权限的博客文章:architect/archive/2014/12/09/permissions-in-azure-documentdb.aspx
https://stackoverflow.com/questions/25662942
复制相似问题