2016-07-04 6 views
2

Я играл в .netcore и пытается использовать пользовательский секретный магазин, некоторые подробности здесь: https://docs.asp.net/en/latest/security/app-secrets.htmlРабочий процесс для секретов пользователей в .netcore?

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

Сам магазин (по крайней мере по умолчанию) сохраняет свой конфигурационный файл json в пределах users/appdata (на окнах). Эта функция полезна, если вы загружаете проект в github, чтобы скрыть ваши ключи API, строки подключения и т. Д. Это здорово, когда это только я, на одной машине, работающей над проектом. Но как это работает при работе в командной среде или на нескольких машинах? Единственное, о чем я могу думать, это найти файл конфигурации, проверить его на частное репо и убедиться, что он заменит его в правильной директории при возникновении изменений.

Есть ли другой способ управлять этим, о котором я не знаю?

+0

Возможно, оцените политику своих компаний? Если ваш рабочий компьютер подключен через домен, то профили будут синхронизироваться в любом случае на компьютерах, поскольку они хранятся в папке AppData \ Remote \ Microsoft \ UserSecrets – Tseng

+0

Привет, спасибо, но я меньше обеспокоен тем, что я подключен к домену. Я больше беспокоюсь о том, что я работаю на разных машинах в своем доме (информация о профилях microsoft, распространенная в приложениях?) И разных разработчиков в организации. Каковы мои варианты в этих сценариях? – Kritner

+0

Вы также можете использовать переменные окружения вместо секретов, оба варианта доступны для сценариев и довольно просты в использовании. –

ответ

4

Как вы уже знаете, инструмент Secret Manager предоставляет другой способ избежать проверки конфиденциальных данных в исходном управлении путем добавления этого уровня управления.

Итак, где же хранить конфиденциальную конфигурацию? Очевидно, что местоположение должно быть отделено от вашего исходного кода и, что более важно, безопасным. Он может быть в отдельном частном репозитории, защищенном файловом архиве, системе управления документами и т. Д.

Вместо того, чтобы находить и передавать точный файл конфигурации, я бы предложил сохранить сценарий (например, файл .bat), который вы запускали на каждой машине, чтобы установить свои секреты. Например:

dotnet user-secrets set MySecret1 ValueOfMySecret1 --project c:\work\WebApp1 
dotnet user-secrets set MySecret2 ValueOfMySecret2 --project c:\work\WebApp1 

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

Кроме того, для этих настроек подумайте, должны ли они быть одинаковыми для всех разработчиков в вашей команде. Для локального развития я обычно хотел бы иметь контроль над установкой, использованием и именем ресурсов по-другому, чем другие в моей команде. Конечно, это зависит от вашей ситуации и предпочтений, и я вижу причины поделиться ими.

+0

спасибо, я не мог заставить '--project ...' работать, но я просто бросил CD [dir] в качестве первого оператора в пакетном файле. – Kritner

+0

имеет смысл. я предполагаю, что этот путь будет специфичным для пользователя, так что просто сделать каталог изменений в скрипте так же хорош. рад, что это помогло. –

Смежные вопросы