将托管身份与 Cosmos Db 结合使用 Table Api

Using Managed Identity with Cosmos Db Table Api

我正在尝试使用托管身份连接到 cosmos db table api。根据文档 here, cosmos db supports Managed Identity. I couldn't find any documentation that says anything specific about table api. I am using .Net standark SDK 但它似乎不支持托管身份。

是否可以将托管身份与 Cosmos Db 一起使用 table api?

如果是,我应该如何使用 CosmosDb 的托管身份 table api?

谢谢。

我会做以下事情:

  1. 确保您使用的是最新版本的 Microsoft.Azure.Cosmos 程序包
  2. 确保您使用的是 Azure.Identity (MSAL) 而不是 Microsoft.Azure.Services.AppAuthentication(ADAL,已弃用)
  3. 确保您已为您的应用启用托管身份
  4. 确保您已在 Cosmos 数据库中为该托管身份的 object/application ID 创建角色分配(只读或 read/write)
  5. 得到一个 CosmosClient 类似的东西 var cosmosClient = new CosmosClient('yourCosmosClientDBUrl', new DefaultAzureCredential());

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

  1. 环境变量
  2. 注入环境的托管身份
  3. 共享令牌缓存凭据
  4. Visual Studio 凭据
  5. Visual Studio代码凭证
  6. AZ CLI 凭证
  7. Powershell Az 凭证
  8. 交互式凭据(弹出浏览器window)

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

是否可以将托管身份与 Cosmos Db 一起使用 table api?