2017-04-24 2 views
1

In meinem Entwurf möchte ich DocumentDB als Back-End für meine SAAS-Anwendung für mehrere Mandanten verwenden. Da die Daten pro Mandanten> 10 GB sein können, möchte ich eine Sammlung pro Mandantenmodell verwenden. Die Anforderung ist, wie kann ich die Datenisolierung in meiner Anwendung sicherstellen. Mieter 1 sollte die Daten von Mieter 2 nicht im Code und auf dem Azure-Portal sehen können. Wie kann ich Berechtigungen für Sammlungen für die gleichen festlegen?DocumentDB Permissions on Collections

Antwort

1

Ich möchte

eine Sammlung pro Mieter Modell benutzen zu können Sie auf create DocumentDB users for each tenant and associate the permissions with the user könnten versuchen, den Benutzerzugriff auf Sammlung/Dokumente zu steuern.

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); 

und dann können Sie die Berechtigungen für DocumentDB Benutzer lesen und Zugriffstoken auf den Mieter erhalten basiert und eine neue Instanz des DocumentClient mit dem Token die Ressource arbeiten erstellen.

var qclient = new DocumentClient(new Uri(EndpointUri), token); 
+0

Danke, das hat wirklich geholfen. Kann ich auch eine Gruppe von Benutzern oder eine rollenbasierte Berechtigung für Sammlungen haben? – MiniKh

+0

Soweit ich weiß, gibt es in Azure DocumentDB keine ** Gruppen ** und ** Rollen **. Wie ich in meiner Antwort erwähnt habe, können Sie zur Implementierung von ** Mandantenfähigkeit ** in Ihrer Anwendung Benutzer in DocumentDB erstellen, die Ihren tatsächlichen Benutzern oder den Mandanten Ihrer Anwendung entsprechen. Bitte überprüfen Sie [diesen Link] (https://docs.microsoft.com/en-us/azure/documentdb/documentdb-resources#users), um mehr über den DocumentDB-Benutzer zu erfahren. –

+0

Irgendwelche Updates? Wenn die Antwort Ihnen hilft, das Problem zu lösen, markieren Sie es bitte als Antwort, damit andere schnell die Antwort finden und ähnliche Probleme lösen können. –