Какое решение рекомендуется для хранения пользовательских секретов в ядре ASP.NET в производственной среде, отличной от Azure? - PullRequest
0 голосов
/ 24 мая 2018

Я работаю над проектом ядра .net, который должен прочитать некоторые пользовательские секреты.Я прочитал следующие две статьи.

Мне интересно, есть ли подобное решение для производственной среды, отличной от Azure, например, которое будет работать в AWS.

1 Ответ

0 голосов
/ 24 мая 2018

.NET Core позволяет хранить ваши секреты в разных местах системы конфигурации.

В документации перечислено много различных поставщиков конфигурации :

  • Форматы файлов (INI, JSON и XML).
  • Командастроковые аргументы.
  • Переменные среды.
  • Объекты .NET в памяти.
  • Незашифрованное хранилище Secret Manager.
  • Зашифрованное хранилище пользователей, напримеркак Azure Key Vault.
  • Пользовательские поставщики (установлены или созданы).

Удобно управлять секретом пользователя с помощью Microsoft.Extensions.SecretManager.Tools в командной строке, а затем использоватьMicrosoft.Extensions.Configuration.UserSecrets для получения секретов из конфигурации вашего приложения.

Однако вы должны зашифровать хранимую информацию, хранящуюся самостоятельно, где бы вы ни хранили ее, например.the appsettings.production.json.

Для этого вы можете использовать поставщика нестандартной конфигурации для шифрования и дешифрования своих секретов.Ваш пользовательский поставщик должен наследовать от класса ConfigurationProvider, как показано здесь .

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

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

См. Также: Зашифрованная конфигурация в ASP.NET Core

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...