Безопасность в ASP.NET Core. Управление секретами пользователей

Когда мы разрабатываем какой-либо пет-проект в ASP.NET Core, то особо не задумываемся над тем как мы сохраняем конфиденциальные данные, которые могут нам требоваться при разработке — секретные ключи API, пароли доступа к БД и т.д. Обычно, всё это «богатство» записывается в конфигурацию приложения, например в appsettings.json и используется в разработке. Проблемы начинаются, когда мы отправляем исходный код приложения в какой-нибудь публичный репозиторий или просто выкладываем zip-архив с исходниками на какой-нибудь площадке. В этом случае все наши секреты могут легко перестать быть такими уж секретными. Или второй вариант — несколько разработчиков работают над проектом — у каждого свой набор секретных данных. Как сделать так, чтобы один разработчик не использовал секреты другого? Можно, конечно, обходится старыми способами — постоянно удалять из конфигурации секретные данные и потом передавать исходный код другим, а можно использовать возможности Visual Studio и использовать в проекте управление секретами пользователей.

Читать далее