gpt4 book ai didi

azure - ASPNET核心: Accessing App Settings in Azure that Were in Secrets

转载 作者:行者123 更新时间:2023-12-01 01:57:06 24 4
gpt4 key购买 nike

我有一个 ASPNET Core 站点,该站点在我的开发计算机上运行时,利用新的本地 secret 管理器来存储一些初始用户的密码。我通过 IConfigurationRoot.GetSection("username") 访问 secret 存储。

以下是如何在 Startup.cs 中构建 IConfigurationRoot:

    var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);

if (env.IsDevelopment())
{
// For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
builder.AddUserSecrets();
}

builder.AddEnvironmentVariables();
Configuration = builder.Build();

最后一行是 IConfigurationRoot 属性。

这在开发中效果很好。不幸的是,当我将该网站发布到 Azure 时,没有找到密码。 Azure 不支持 secret 存储,但你可以设置环境变量。根据我读到的内容,我认为如果您使用相同的 key ,当配置代码尝试解析配置信息的请求时,就会找到它们。不幸的是,这不起作用,所以我显然错过了一些东西。

以下是我在 Azure 中配置 key 的方法:

env vars

这些 key 与我用来成功访问开发计算机上的 secret 存储的 key 相同。

那么我做错了什么?

最佳答案

据我所知,Secret Manager 工具可以帮助您保密源代码。就像这个tutorial提到:

The Secret Manager tool does not encrypt the stored secrets and should not be treated as a trusted store. It is for development purposes only. The keys and values are stored in a JSON configuration file in the user profile directory.

同时,我们可以发现 secret 存储在用户配置文件目录中的 JSON 文件中。对于 Windows,它将存储在如下路径中:

%APPDATA%\microsoft\UserSecrets\<userSecretsId>\secrets.json

Unfortunately, when I published the site to Azure, the passwords aren't being found.

我关注了这个tutorial通过用户 secret 将我的敏感数据存储在 ASP.NET Core 项目中,发现它在我这边可以很好地工作。将应用程序发布到 Azure 时,您可以利用 Azure 应用服务应用程序设置来覆盖在开发中使用 Secret Manager 工具存储的敏感值。这是一个示例供您理解。

假设存储敏感值的secrets.json文件的结构如下:

{
"AppKeys": {
"mark": "ABCDEF",
"connel": "abcdef"
}
}

然后您可以在 Azure Web 应用程序中配置应用程序设置,如下所示:

为了更好地理解这个想法,您可以关注User Secrets – Storing sensitive data in ASP.NET Core projectsWorking with Azure App Services Application Settings and Connection Strings in ASP.NET Core .

关于azure - ASPNET核心: Accessing App Settings in Azure that Were in Secrets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39628138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com