1

我正在寻找一种在本地机器上运行脚本并在 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 密码并将其保存在可以使用密钥解密的文件中。这样,秘密就永远不会是纯文本。

有没有其他“干净”的方式来做到这一点?

谢谢 !

4

1 回答 1

2

一次性创建一个凭证对象并使用Export-Clixml为当前用户/机器存储它。

然后,您可以使用Import-Clixml将它们读回到您的脚本中。

样本

# 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
于 2020-06-19T13:02:33.703 回答