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

How to use the secret uri to get the secret value stored in the azure keyvault?

通过使用 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 证书以便上传到服务。

我怎样才能做到这一点?

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

I wanted a secret value to form a PFX cert inorder to upload to a service.

我们可以使用以下 API 来做到这一点。

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

更多详情请参考this. About authentication please refer this document

Note: The authority for a request to a Key Vault is always as follows, https://vault.azure.net/

我们可以从您提到的 API 那里得到秘密标识符。我们也可以从 Azure 门户获取它。

我在我这边测试过它在我这边工作正常。更多详情请参考截图

这对我有用

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

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