【问题标题】:Api-version must be specified when using azure keyvault SecretClient .net sdk使用 azure keyvault SecretClient .net sdk 时必须指定 Api-version
【发布时间】:2021-09-08 16:26:16
【问题描述】:

我正在尝试使用托管标识在 azure keyvault 中设置机密。我现在面临两个问题。希望有人可以帮助我。

代码:

 var client = new SecretClient(new Uri("keyvaulturl"),
              new DefaultAzureCredential(new DefaultAzureCredentialOptions()
              { ExcludeManagedIdentityCredential = true }));

            await client.SetSecretAsync(new KeyVaultSecret(keyName, 
                               serializer.SerializeObject(someobject)));

问题一:

DefaultAzureCrendetialOption 不适用于托管标识,但是当我将 ExcludeManagedIdentityCredential 设置为 true 时,它​​能够回退到下一个身份验证提供程序(必须是 azure cli)。我不确定为什么会发生这种情况,因为在相同代码运行前几天,我能够使用相同的代码设置和检索 keyvault 机密。(当然不使用任何 DefaultAzureCredentialOptions 参数)。

请注意,此问题仅发生在我的本地环境中,并且托管身份在部署在 azure 中时可以正常工作。

问题 2:

当为本地开发设置 ExcludeManagedIdentityCredential 为 true 时,我开始看到另一个问题,它给我的错误是缺少 api-version。我不明白为什么在使用 azure .net sdk 时需要在哪里指定 api 版本。

错误:

服务请求失败。 状态:400(错误请求)

内容: {"error":{"code":"BadParameter","message":"api-version 必须指定"}}

【问题讨论】:

  • 报错说它需要请求中的api-version查询参数。这是在 API 构建 REST 请求时完成的。你在本地复制这个吗?您使用的是官方的 Microsoft Key Vault 库还是其他东西?

标签: azure azure-keyvault azure-managed-identity defaultazurecredential


【解决方案1】:

问题一:

托管身份不能用于在设计上对本地运行的应用程序进行身份验证。尝试阅读document 中的重要提示。

托管身份不能用于本地运行的身份验证 应用程序。您的应用程序必须部署到 Azure 支持托管身份的服务。

问题 2:

请将 Azure Key Vault 机密客户端库的版本更改为最新版本。

dotnet add package Azure.Security.KeyVault.Secrets

我在本地尝试了 DefaultAzureCredentialenvironment variables

string keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME");

var kvUri = "https://" + keyVaultName + ".vault.azure.net";

var client = new SecretClient(new Uri(kvUri), new DefaultAzureCredential());
KeyVaultSecret secret = new KeyVaultSecret("testdefault", "123456");
KeyVaultSecret result = await client.SetSecretAsync(secret);

Console.WriteLine(result.Name);

【讨论】:

    猜你喜欢
    • 2022-11-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2018-11-19
    • 2020-10-27
    • 2013-08-03
    • 1970-01-01
    相关资源
    最近更新 更多