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

时间:2018-11-05 15:06:37

标签: azure mongoose azure-cosmosdb

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

但是,当无法信任客户端使用主密钥时,建议使用resource tokens安全地连接到CosmosDB。

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

1 个答案:

答案 0 :(得分:-1)

  

是否可以使用Mongoose通过以下方式连接到Azure CosmosDB   资源令牌?

当然可以。基于official document,您可以通过Mid-Tier服务生成资源令牌。资源令牌的生成和管理由本地Cosmos DB客户端库处理;但是,如果使用REST,则必须构造请求/身份验证标头。

因此,您需要创建UserPermission才能在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

希望它对您有帮助。