Безопасный способ сохранить ClientId и ClientSecret для аутентификации на Azure с помощью Connect-AzAccount - PullRequest
0 голосов
/ 19 июня 2020

Я ищу безопасный способ запустить сценарий на локальном компьютере и аутентифицироваться с помощью этих команд в Azure:

$Password = ConvertTo-SecureString -AsPlainText "my_secret" -Force
$Credential = New-Object System.Management.Automation.PSCredential ("my_client_id", $Password)
$TenantId = "my_tenant_id"
Connect-AzAccount -ServicePrincipal -Credential $Credential -Tenant $TenantId

Проблема в том, что я не хочу сохранять секрет как обычный текст в скрипте. Единственное решение, которое я нашел, - это зашифровать пароль SecureString и сохранить его в файле, который можно расшифровать с помощью ключа. Таким образом, секрет никогда не будет в простом тексте.

Есть ли другой «чистый» способ сделать это?

Спасибо!

1 Ответ

1 голос
/ 19 июня 2020

Создайте объект учетных данных один раз и используйте Export-Cli xml, чтобы сохранить его для текущего пользователя / компьютера.

Затем вы можете использовать Import-Cli xml, чтобы прочитать их обратно в ваш скрипт.

Пример

# Set credentials
$Credentials = Get-Credential        # Set your id and secret
$Credentials | Export-Clixml -Path $PSScriptRoot\Access.xml -Confirm:$false


# Read the credentials
$Credentials = Import-Clixml -Path $PSScriptRoot\Access.xml
...