anipulação de senhas na configuração de produção para implantação automatiza
Vi perguntas relacionadas aqui, mas elas não parecem responder exatamente o que eu precis
Usamos os scripts do Powershell para implantar nossos aplicativos e as informações como senhas nos arquivos de configuração para a maioria dos ambientes (UATs etc.) estão em texto simples. Não é um grande problema, mas quando se trata de PREPROD e PROD, é um grande problema. Portanto, tivemos alguns marcadores na configuração, como "{{prompt-senha}}", que fornecerão uma caixa de diálogo de login Get-Credential
) e a pessoa que está realizando a implantação pode inserir a credencial e a implantação continu
Mas isso realmente não ajuda na implantação automatizada (ou seja, implantação com um clique através de ferramentas como o TeamCity)
Devo optar pela criptografia assimétrica http: //msdn.microsoft.com/en-us/library/as0w18af.asp) onde a senha é criptografada usando uma chave pública, inserida na configuração, e a chave privada é armazenada (como descrito aquihttp: //msdn.microsoft.com/en-us/library/tswxhw92.asp) no "agente" (como em uma VM de onde o TeamCity acionará a implantação e que possui acesso restrito) executando a implantação automatizada e ela pode descriptografar a senha? Não é realmente forte em criptografia e outras coisas, mas isso soa como o caminho a percorrer? Alguma outra sugestão? Como as pessoas lidam com essa implantação automatizada?
Atualizar
Ok, eu fui em frente e implementou. Eu escrevi um aplicativo de console em C # que usa as bibliotecas de criptografia. O aplicativo gera as chaves:
RSACryptoServiceProvider rsa = GetRsa(containerName);
File.WriteAllText("keys.kez",rsa.ToXmlString(true));
Eu também saio da chave pública:
File.WriteAllText("public.pke", rsa.ToXmlString(false));
Dê a chave pública a qualquer pessoa que precise criptografar a senha e solicite que ela digite a senha na configuração. Coloque o arquivo keys.kez em qualquer agente que precise executar a implantaçã