繁体   English   中英

在非Azure生产环境中,ASP.NET核心中的用户机密存储的推荐解决方案是什么?

[英]What is the recommended solution for user secrets storage in ASP.NET core in non-Azure production environment?

我正在开发一个.net核心项目,它需要读取一些用户机密。 我读了以下两篇文章。

我想知道是否有非Azure生产环境的类似解决方案,例如可以在AWS中使用的解决方案。

.NET Core允许您将秘密存储在配置系统的各个位置。

文档中列出了许多不同的配置提供程序:

  • 文件格式(INI,JSON和XML)。
  • 命令行参数。
  • 环境变量。
  • 内存中的.NET对象。
  • 未加密的秘密管理器存储。
  • 加密的用户存储,例如Azure Key Vault。
  • 自定义提供程序(已安装或创建)。

在命令行上使用Microsoft.Extensions.SecretManager.Tools管理用户密钥很方便,然后使用Microsoft.Extensions.Configuration.UserSecrets从应用程序的配置中获取机密。

但是,您应该自己加密存储的信息,无论您在何处存储它,例如。 appsettings.production.json。

为此,您可以使用自定义配置提供程序来加密和解密您的机密。 您的自定义供应商应该从ConfigurationProvider类继承如图所示这里

public class CustomConfigProvider : ConfigurationProvider
{
    public CustomConfigProvider() { }

    public override void Load()
    {
        Data = MyEncryptUtils.DecryptConfiguration();
    }
}

另请参阅: ASP.NET Core中的加密配置

暂无
暂无

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

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