2

完全错误: Microsoft.Extensions.Configuration.AzureAppConfiguration.KeyVaultReferenceException:SharedTokenCacheCredential 身份验证失败:AADSTS9002332:应用程序“cfa8b339-82a2-471a-a3c9-0fc0be7a4093”(Azure Key Vault)配置为仅供 Azure Active Directory 用户使用。请不要使用 /consumers 端点来处理此请求。跟踪 ID:a4b9a7c9-8eb4-48ff-8871-8a63d69b1400(Azure Key Vault)配置为仅供 Azure Active Directory 用户使用。请不要使用 /consumers 端点来处理此请求。


我正在浏览此 Microsoft Doc 页面上的示例: https ://docs.microsoft.com/en-us/azure/azure-app-configuration/use-key-vault-references-dotnet-core?tabs=powershell% 2Ccore3x

构建时没有错误,但是当我在 localhost 上启动站点时,出现上述错误。

这是 Program.cs 文件中的代码:

  public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)

                .UseSerilog()
                .ConfigureWebHostDefaults(webBuilder =>
            webBuilder.ConfigureAppConfiguration((hostingContext, config) =>
            {
                var settings = config.Build();

                config.AddAzureAppConfiguration(options =>
                {
                    options.Connect(settings["ConnectionStrings:AppConfig"])
                            .ConfigureKeyVault(kv =>
                            {
                                kv.SetCredential(new DefaultAzureCredential());
                            });
                });
            })
            .UseStartup<Startup>());
        // See: https://github.com/MicrosoftDocs/azure-docs/issues/71592

谁能告诉我接下来要尝试什么?

请参阅:https ://github.com/MicrosoftDocs/azure-docs/issues/71592

4

1 回答 1

-1

如果要访问 Azure Key Vault,请参考以下步骤

  1. 创建服务主体
az ad sp create-for-rbac -n "http://mySP" --sdk-auth

  1. 在 azure keyvault 中设置访问策略
az keyvault set-policy -n <your-unique-keyvault-name> --spn <clientId-of-your-service-principal> --secret-permissions delete get list set --key-permissions create decrypt delete encrypt get list unwrapKey wrapKey --secret-permissions backup delete get list purge recover restore set
  1. 代码
public static IHostBuilder CreateHostBuilder(string[] args) =>
             Host.CreateDefaultBuilder(args)
             .ConfigureWebHostDefaults(webBuilder =>
             webBuilder.ConfigureAppConfiguration((hostingContext, config) =>
             {
                 var settings = config.Build();

                 config.AddAzureAppConfiguration(options =>
                 {
                     options.Connect(settings["ConnectionStrings:AppConfig"])
                             .ConfigureKeyVault(kv =>
                             {
                                 var cert = new ClientSecretCredential("<tenant id>", "client id", "client secret");
                                 kv.SetCredential(cert);
                             });
                 });
             })
             .UseStartup<Startup>());

在此处输入图像描述

此外,如果您使用 VS 2019 运行该应用程序,则可以使用扩展名Azure Service Authentication. 但是您需要使用租户中的一个工作帐户登录并为密钥保管库中的帐户配置权限访问策略。更多详情,请参考这里

于 2021-03-05T05:02:13.297 回答