Использовать Powershell с CruiseControl.Net для безопасного хранения паролей? - PullRequest
1 голос
/ 28 апреля 2011

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

Powershell имеет хорошую поддержку для этого с ConvertTo-SecureString и ConvertFrom-SecureStringКоманды, и что-то вроде этого будет обрабатывать шифрование:

"password-string" | ConvertTo-SecureString -AsPlainText -Force | Out-File pwd.dat

И это может обрабатывать дешифрование:

$user = "mydomain\myuser"
$pwd = Get-Content pwd.dat | ConvertFrom-SecureString
$cred = New-Object System.Management.Automation.PSCredential($user, $pwd)

CruiseControl.Net имеет задачу <powershell>, которую можно использовать для запускаскрипты powershell, но я не уверен, что это можно сделать, чтобы вернуть что-нибудь.Мне интересно, есть ли у кого-нибудь идеи о том, как внедрить безопасные пароли с CruiseControl.Net?Использование Powershell не обязательно, я просто полагаю, что это будет здорово.

1 Ответ

0 голосов
/ 03 мая 2011

По крайней мере, найден обходной путь: если вы пропустите параметры <user>, <password> и <domain>, CruiseControl будет использовать учетные данные для пользователя, запускающего службу.

Более общий вопрос о том, можно ли ловить добычу, еще предстоит проверить. Я предполагаю, что можно установить переменную окружения, используя [system]::SetEnvironmentVariable(name,value), но я не проверял это.

...