azure - 如何修复 "Microsoft.Azure.KeyVault.Models.KeyVaultErrorException: ' 操作返回无效状态代码 'NotFound' '"

标签 azure asp.net-core azure-keyvault .net-5 asp.net5

我正在尝试从 ASP.net 5 Web API 应用程序中的 Azure Key Vault 获取值。但面临这个问题。

enter image description here

我已将此代码添加到 Program.cs 文件中

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            })
        .ConfigureAppConfiguration((context, config) =>
        {
            var builtConfig = config.Build();
            var vaultName = builtConfig["keyvault"];

            var keyVaultClient = new KeyVaultClient(
                async (authoriy, resource, scope) =>
                {
                    var credential = new DefaultAzureCredential(false);
                    var token = credential.GetToken(
                            new TokenRequestContext(
                                new[] {"https://vault.azure.net/.default" }
                                )
                        );
                    return token.Token;
                });
            config.AddAzureKeyVault(
                vaultName,
                keyVaultClient,
                new DefaultKeyVaultSecretManager());
        });

在 appsettings.json 文件中,我给出了如下所示的 key 保管库 URL。

"Keyvault": "https://<<vaultName>>.vault.azure.net/.default"

我已经创建了名称为“StorageConnectionString”的 Secret,我在 Azure Key-vault 的类中使用它。

public BlobContainerProvider(IConfiguration configuration) 
    {
        
        string connectionString = configuration.GetValue<string>("StorageConnectionString");

        blobServiceClient = new BlobServiceClient(connectionString);
    }

提前致谢。

最佳答案

我发现了这个问题,它实际上是在appsettings.json

我已经提到过

"Keyvault": "https://<<vaultName>>.vault.azure.net/.default"

而 URL 中不应放置“.default”。

因此,通常,如果我们放置了不可用的 key 保管库 URL,则会引发此类错误。

@Gaurav Mantri,感谢您在评论中指出这一点。

关于azure - 如何修复 "Microsoft.Azure.KeyVault.Models.KeyVaultErrorException: ' 操作返回无效状态代码 'NotFound' '",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67609338/

相关文章:

c# - ASP.Net Core 2配置占用大量内存。如何以不同的方式获取配置信息?

asp.net-core - 将 DI 用于连接字符串时的脚手架

python - 在 Python 中访问 Azure Key Vault 时出现意外的关键字参数 'tenant_id'

从外面看 azure 的 table 存储

azure - Azure 存储库变更日志在哪里?

asp.net-web-api - 如何在 Identity 3 的 IUserTokenProvider 实现中生成 token ?

azure - 如何在 Azure Key Vault 中添加键值?

azure - 如何验证azure容器注册表https ://registry. azurecr.io/v2/

asp.net-mvc - 如何在不使用 Azure 服务的情况下使用 Power Bi Microsoft

javascript - 获取 POST ReactJs 到 Controller .Net Core