繁体   English   中英

使用 Azure KeyVault 和 Visual Studio 管理用户机密不适用于 ASP .Net Core

[英]Managing User Secrets with Azure KeyVault and Visual Studio not working for ASP .Net Core

基于此处此处的步骤

在连接的服务中添加新的 KeyVault 时出现以下错误。 我正在使用 VS 15.8.1 社区版。 ASP.NET 核心 2.1

“无法检索 Key Vault 信息。此页面上的超链接可能无法按预期工作,UI 可能有陈旧信息或没有信息。请检查活动日志以获取更多信息。C:\\Users\\kumar\\AppData\\Roaming\\Microsoft\\VisualStudio \\15.0_536ef4bf\\ActivityLog.xml"

Key Vault 错误消息

我并没有在 appsetting.json 中将其设置为 azure 密钥保管库。

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "ApplicationInsights": {
    "InstrumentationKey": "dummyaapinsightkey-cxds3-4001-953f-sf323sdfw32d"
  }
}

我不确定这个错误。 看起来像一些连接问题。

但是,我建议您不要使用KeyVault作为连接服务,而是使用KeyVault可配置模型(无需连接服务)来检索机密

通过使用连接服务,在部署到生产环境时很难更改 KeyVault 的配置

写了一篇文章,您可以在其中使用 AzureKeyVault 来检索您的机密,而无需使用连接的服务

安装下面的 NuGet 包

Install-Package Microsoft.Extensions.Configuration.AzureKeyVault -Version 2.1.1

你只需要像下面这样更改 Program.cs

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
             WebHost.CreateDefaultBuilder(args)
                 .ConfigureAppConfiguration((context, config) =>
                 {
                     var builtConfig = config.Build();

                     config.AddAzureKeyVault(
                         $"https://{builtConfig["Vault"]}.vault.azure.net/",
                         builtConfig["ClientId"],
                         builtConfig["ClientSecret"]);
                 })
                 .UseStartup<Startup>();
    }

appsetting.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "Vault": "myKeyVault",
  "ClientId": "xxxxx-xxx-xxx-xxx-xxxx",
  "ClientSecret": "xxxxxxx="
}

更新:

现在使用托管身份,您甚至无需使用 ClientId 和 Client Secrets 即可轻松集成 Keyvault

阅读更多关于: https : //docs.microsoft.com/en-us/samples/azure-samples/app-service-msi-keyvault-dotnet/keyvault-msi-appservice-sample/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM