如何使用秘密uri来获取存储在azure keyvault中的秘密值?

时间:2017-09-07 11:09:15

标签: azure pfx secret-key azure-keyvault azure-resource-manager

通过使用ARM API,我可以获取存储在azure keyvault中的秘密的秘密uri

 https://management.azure.com/subscriptions/{mySubID}/resourceGroups/{myResourcegroup}/providers/Microsoft.KeyVault/vaults/{myvaultName}/secrets/{mycert}?api-version=2015-06-01

但我想要一个秘密值来形成PFX证书以便上传到服务。

我怎样才能做到这一点?

请帮忙!!提前谢谢....

3 个答案:

答案 0 :(得分:1)

  

我想要一个秘密值来形成PFX证书,以便上传到服务。

我们可以使用以下API执行此操作。

Get https://{Secret Identifier}?api-version=2016-10-01

更多详情请参阅this。关于身份验证,请参阅this document

  

注意:对密钥保管库的请求权限始终如下,https://vault.azure.net/

我们可以从您提到的API中获取秘密标识符。我们也可以从Azure门户网站获取它。

enter image description here

我在我身边测试它在我身边正常工作。更多详情请参阅截图

enter image description here

答案 1 :(得分:1)

这对我有用

GET https://{vaultBaseUrl}/secrets/{secret-name}/{secret-version}?api-version={api-version}

参考:https://docs.microsoft.com/en-us/rest/api/keyvault/getsecret

注意:

我在开始时没有成功,后来发现我正在使用从中获得的令牌  https://management.core.windows.net

显然它失败了,如InvalidAuthenticationTokenAudience :The access token has been obtained from wrong audience or resource

所以请记住你必须从中获取令牌 https://vault.azure.net

答案 2 :(得分:0)

FWIW我使用类似于下面的PowerShell脚本来获取KeyVault机密值。大Q和大A(不是我的,那些)。如果不清楚,AZ命令是Azure CLI的一部分。

$keyvaultToken = (az account get-access-token --resource https://vault.azure.net) | ConvertFrom-Json
$headers = @{"Authorization" = "$($keyvaultToken.tokenType) $($keyvaultToken.accessToken)"}
$resp = iwr -uri https://vaultname.vault.azure.net/secrets/secretName/secretVersion?api-version=2016-10-01 -Headers $headers
$json = $resp.Content | ConvertFrom-Json
$json.value