如何通过Mongoose库使用资源令牌连接到Azure CosmosDB



在我看来,几乎所有的CosmosDB样本都依赖用户名和密码(也称为"主密钥"(来连接到数据库。

但是,当客户端不能被信任使用主密钥时,建议使用资源令牌安全连接到CosmosDB。

所以问题是:是否可以使用Mongoose使用资源令牌连接到Azure CosmosDB?

是否可以使用Mongoose连接到Azure CosmosDB资源令牌?

当然可以。根据官方文件,您可以通过中端服务生成资源令牌。资源令牌的生成和管理由本地Cosmos DB客户端库处理;但是,如果使用REST,则必须构造请求/身份验证标头。

因此,您需要创建User和Permission来在Mid-TierService中生成资源令牌。请参阅我的示例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来完成这项工作。然后在Mongoose客户端中用resource token替换master key

最新更新