0

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

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

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

谢谢。

4

2 回答 2

1

当前使用 CosmosDB 数据平面的托管标识仅适用于SQL API

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

在此处输入图像描述

于 2021-11-18T12:42:58.793 回答
0

我会做以下事情:

  1. 确保您使用的是最新版本的Microsoft.Azure.Cosmos软件包
  2. 确保您使用的是 Azure.Identity (MSAL),而不是 Microsoft.Azure.Services.AppAuthentication(ADAL,已弃用)
  3. 确保您已为您的应用启用托管标识
  4. 确保您已在 Cosmos 数据库中为该托管标识的对象/应用程序 ID 创建角色分配(只读或读/写)
  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. 交互式凭证(弹出浏览器窗口)
于 2021-11-18T12:41:13.480 回答