将托管标识与 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时发生致命错误
如何使用 Cassandra API 将 Python 的 cosmos_client 连接到 Cosmos DB 实例?