在我看来,几乎所有CosmosDB samples都依赖用户名和密码(也称为“主密钥”)来连接到数据库。
但是,当无法信任客户端使用主密钥时,建议使用resource tokens安全地连接到CosmosDB。
问题是:是否可以使用Mongoose通过资源令牌连接到Azure CosmosDB?
答案 0 :(得分:-1)
是否可以使用Mongoose通过以下方式连接到Azure CosmosDB 资源令牌?
当然可以。基于official document,您可以通过Mid-Tier服务生成资源令牌。资源令牌的生成和管理由本地Cosmos DB客户端库处理;但是,如果使用REST,则必须构造请求/身份验证标头。
因此,您需要创建User和Permission才能在Mid-Tier Service中生成资源令牌。请参考我的示例Java代码:
import com.microsoft.azure.documentdb.*;
public class CreatePermission {
private static final String END_POINT = "https://***.documents.azure.com:443/";
private static final String MASTER_KEY = "***";
public static void main(String[] args) throws Exception, DocumentClientException {
DocumentClient documentClient = new DocumentClient(END_POINT,
MASTER_KEY, ConnectionPolicy.GetDefault(),
ConsistencyLevel.Session);
User user = new User();
user.setId("testuser");
user = documentClient.createUser("dbs/db", user, null).getResource();
Permission permission = new Permission();
permission.setResourceLink("dbs/db/colls/coll");
permission.setId("pertest");
permission.setPermissionMode(PermissionMode.All);
permission = documentClient.createPermission(user.getSelfLink(), permission, null).getResource();
System.out.println(permission.getToken());
}
}
或者您可以通过REST API来完成此工作。然后在猫鼬客户端将master key
替换为resource token
。
希望它对您有帮助。