在我的设计中,我希望使用DocumentDB作为多租户SAAS应用程序的后端。由于每个租户的数据可能大于10 to,所以我希望使用每个租户模型的集合。要求是如何确保应用程序中的数据隔离。租户1不应该能够在代码和azure门户上看到租户2的数据。如何设置相同集合的权限?
发布于 2017-04-25 06:01:29
我想使用每个租户模型的集合。
您可以尝试使用为每个租户创建DocumentDB用户,并将权限与用户关联来控制用户对集合/文档的访问。
string documentCollectionlink = UriFactory.CreateDocumentCollectionUri("{database id}", "{collection id}").ToString();
string databaseLink = UriFactory.CreateDatabaseUri("{database id}").ToString();
Permission docPermission = new Permission
{
PermissionMode = PermissionMode.All,
ResourceLink = documentCollectionlink,
Id = "tenant1perm"
};
await client.CreateUserAsync(databaseLink, new User { Id = "tuser" });
docPermission = await client.CreatePermissionAsync(UriFactory.CreateUserUri("{database id}", "tuser"), docPermission);然后,您可以读取DocumentDB用户的权限,并获得基于租户的访问令牌,并使用令牌创建一个新的DocumentClient实例来操作资源。
var qclient = new DocumentClient(new Uri(EndpointUri), token);https://stackoverflow.com/questions/43597690
复制相似问题