Un po 'di storia in primo luogo: dove lavoro gestiamo circa 40 applicazioni .NET di varie dimensioni. Queste app condividono molti segreti (credenziali dell'account, stringhe di connessione, ecc.) Nei file di configurazione. Noi criptiamo tutti i nostri file di configurazione durante la compilazione. Tuttavia, il nostro approccio presenta ancora degli svantaggi:
- Ogni volta che una credenziale cambia (come ad esempio una modifica della password), dobbiamo aggiornarla in oltre 40 località.
- Gli sviluppatori hanno accesso a tutte le credenziali.
Quello che mi piacerebbe fare è avere un sistema simile a come Azure ti permette di specificare le impostazioni dell'app e le sostituzioni delle stringhe di connessione durante la compilazione / distribuzione:
NonutilizziamoAzure(questoèunambienteinterno,intranet)maabbiamoTFScheeseguetuttelenostrebuild.Stocercandoconsiglisucomepossocentralizzareeproteggerelagestionedellecredenziali(idealmentebloccatasoloainostriaddettiallasicurezza)elegareilnostrosistemadibuildinquestonuovosistemainmodochelaconfigurazionevengagestitaattraversolabuild.
Un'ulterioredomandachehoècomequestoapproccioinfluenzilosviluppolocaleeildebugging-attualmente,quandostiamosviluppandolocalmente,usiamotipicamenterisorse"di sviluppo" (un database di sviluppo). Se finisco per rimuovere queste informazioni di configurazione dall'ambiente locale, in che modo i nostri sviluppatori saranno ancora in grado di eseguire app localmente (cioè, avrò bisogno di iniziare a fornire una configurazione locale che crea risorse locali, come un database SQL server).