Azure KeyVault Get Secret API响应404或401错误

问题描述 投票:1回答:1

我试图从Azure Key Vault中获取一个秘密。这是一个非常简单的Restful API调用。例如,对于所有键,它就像这样简单:

GET {vaultBaseUrl}/secrets?api-version=7.0

其中vaultBaseUrl在Azure控制台中作为Vault DNS名称提供。我正在使用控制台模式来测试https://docs.microsoft.com/en-us/rest/api/keyvault/getsecrets/getsecrets#code-try-0但是返回值如果总是404.当我在Azure控制台中尝试curl时,它会给出401 - 未经授权。但是,我可以使用命令行来获取秘密。是否有任何秘密可以让安静的电话和卷曲工作来解决问题?所有这些情况都使用相同的凭据。一个侧面的问题是,在micorosft api测试页面上有一个带有绿色运行按钮的“请求预览”部分,几乎就像它邀请你运行api一样,但链接是docs.microsoft.com和盒子上的复制按钮被禁用。我从来没有在一个地方见过这么多问题,所以我想我可能在这里听不懂。

rest azure azure-keyvault secret-key
1个回答
2
投票

该文件似乎不正确。如果你想获得秘密,你可以使用Client credentials flow获取访问令牌并使用它来获取秘密。

请按照以下步骤操作。

1.在Azure Active Directory中注册一个应用程序,请参阅此link。获取应用程序ID和密钥,请参阅此link。使用正确的密钥权限在密钥保险库的Access policies中添加服务主体(只需搜索AD应用程序的名称,然后添加它)。

2.在邮递员中,向网址发送请求

POST https://login.microsoftonline.com/{your tenant id}/oauth2/token?api-version=1.0

请求正文和完整示例(client_idclient_secret是步骤1中的应用程序ID和密钥):

enter image description here

3.在步骤2中复制access_token,然后将其用作授权令牌来调用api:

GET https://yourkeyvault.vault.azure.net/secrets?api-version=7.0

enter image description here

此外,如果您想使用CURL来获取秘密,请尝试下面的方法。 TOKEN与上面第2步中的access_token相同。

curl -X GET -H "Authorization: Bearer [TOKEN]" https://yourkeyvault.vault.azure.net/secrets?api-version=7.0

有关通过curl和完整步骤获取access_token的更多详细信息,您可以参考此link。不要忘记在请求访问令牌步骤中将resource更改为https://vault.azure.net

© www.soinside.com 2019 - 2024. All rights reserved.