【发布时间】:2020-03-10 07:30:40
【问题描述】:
我正在尝试使用 Azure DevOps 构建管道 PowerShell 任务中的服务主体登录到 Azure 订阅。 我需要登录的原因是,我需要从同一个 PowerShell 任务中执行一些日志分析查询,因此它需要对订阅进行身份验证。 服务主体 ID 和密钥在 Key Vault 中作为机密。 我需要将它们作为纯文本读取以通过 Azure 订阅并进行身份验证。
问题是,我无法将它们作为纯文本或纯字符串读取,因为它是 Azure DevOps PowerShell 任务中的加密字符串值。我似乎无法找到直接将它们作为纯文本阅读的方法。
我不能使用下面的命令
(Get-AzKeyVaultSecret -VaultName $vaultName -Name $secretName).SecretValueText
因为我们需要已经通过 Azure 订阅的身份验证才能执行其他模块的命令。
尝试了以下(即)$Encrypted(服务主体 ID)的值在 KeyVault 中作为纯文本当我使用下面它说时,输入格式不正确
$AppId = (ConvertTo-SecureString $Encrypted) $BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($AppId) $AppId = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)
寻找其他方法来完成这项任务。
【问题讨论】:
标签: azure-devops azure-powershell azure-pipelines-build-task