将托管标识与 Cosmos Db Table Api 一起使用

Posted

技术标签:

【中文标题】将托管标识与 Cosmos Db Table Api 一起使用【英文标题】:Using Managed Identity with Cosmos Db Table Api 【发布时间】:2021-12-29 07:52:02 【问题描述】:

我正在尝试使用托管标识连接到 cosmos db 表 api。根据文档here,cosmos db 支持托管身份。我找不到任何说明有关 table api 的任何特定内容的文档。我正在使用.Net standark SDK,但它似乎不支持托管身份。

是否可以将托管标识与 Cosmos Db 表 api 一起使用?

如果是,我应该怎么做才能使用 CosmosDb 表 api 的托管标识?

谢谢。

【问题讨论】:

【参考方案1】:

当前使用 CosmosDB 数据平面托管的身份仅适用于 SQL API。

是否可以将托管标识与 Cosmos Db 表 api 一起使用?

【讨论】:

【参考方案2】:

我会做以下事情:

    确保您使用的是最新版本的 Microsoft.Azure.Cosmos 软件包 确保您使用的是 Azure.Identity (MSAL),而不是 Microsoft.Azure.Services.AppAuthentication(ADAL,已弃用) 确保您已为您的应用启用托管标识 确保您已在 Cosmos 数据库中为该托管标识的对象/应用程序 ID 创建角色分配(只读或读/写) 获取CosmosClient 与类似的内容 var cosmosClient = new CosmosClient('yourCosmosClientDBUrl', new DefaultAzureCredential());

DefaultAzureCredential 是 Azure.Identity 获取服务访问令牌的方式 - 它尝试按以下顺序查找身份验证信息:

    环境变量 注入环境的托管身份 共享令牌缓存凭据 Visual Studio 凭据 Visual Studio 代码凭据 AZ CLI 凭据 Powershell Az 凭据 交互式凭据(弹出浏览器窗口)

【讨论】:

感谢您的回复。这适用于 SQL api,但不适用于 Table API。

以上是关于将托管标识与 Cosmos Db Table Api 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

将Cosmos DB模拟器(MongoDB API)迁移到Azure时发生致命错误

最终用户的 Cosmos DB 简单 ID 字段

如何使用 Cassandra API 将 Python 的 cosmos_client 连接到 Cosmos DB 实例?

我可以将 Alteryx 连接到 Cosmos DB

如何将 Cosmos DB 添加到 .Net 6 Web API?

Cosmos DB 补丁子对象