【问题标题】:How to connect to Azure CosmosDB using resource token via Mongoose library?如何通过 Mongoose 库使用资源令牌连接到 Azure CosmosDB?
【发布时间】:2019-06-06 06:05:06
【问题描述】:

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

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

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

【问题讨论】:

  • 资源令牌用于限制主密钥令牌通常为您提供的访问范围。这并不是一种推荐的方式,而是一种不同的用例。
  • 好点。我刚刚更新了问题以澄清这一点。

标签: azure mongoose azure-cosmosdb


【解决方案1】:

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

当然可以。基于official document,您可以通过中间层服务生成资源令牌。资源令牌生成和管理由本机 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 来完成这项工作。然后在 Mongoose 客户端中将 master key 替换为 resource token

【讨论】:

  • 我认为你没有抓住重点。我知道如何生成资源令牌,但是在使用 Mongoose 库连接到 CosmosDB 时似乎无法使用该令牌。根据我的经验,您不能简单地用资源令牌替换主密钥。
  • @begie 好的。我将测试 mongoose lib 以使用 Resource Token 连接到 cosmos db。
  • 有人尝试使用资源令牌测试通过 mongodb 客户端连接的选项吗?
猜你喜欢
  • 2019-05-07
  • 2018-10-28
  • 1970-01-01
  • 2022-09-25
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 2020-08-03
  • 2020-11-24
相关资源
最近更新 更多