通过 Azure API 更新 Azure keyvault 机密

use*_*r47 7 azure azure-api-management azure-keyvault

我正在尝试通过 Postman 更新 Azure 中的 keyvault 机密。但出现授权错误。有什么建议。我缺少什么。提前致谢

{
  "error": {
    "code": "Unauthorized",
    "message": "AKV10022: Invalid audience. Expected https://vault.azure.net, found: https://management.azure.com/."
  }
}
Run Code Online (Sandbox Code Playgroud)

使用以下内容更新秘密:

PUT https://demokv.vault.azure.net/secrets/secretname?api-version=7.0
Run Code Online (Sandbox Code Playgroud)

在正文中:

{
  "value": "mysecretvalue"
}
Run Code Online (Sandbox Code Playgroud)

Joy*_*ang 6

正如另一个回复中提到的,audience您的令牌不正确,要调用 Azure Keyvault REST API - Set Secret - Set Secretaudience应该是https://vault.azure.net

要获取令牌,您可以使用邮递员中的客户端凭据流。

1.在 azure ad 中注册 AD 应用程序,然后获取登录值创建新的应用程序密钥

2.导航到门户中的密钥保管库,将 AD 应用程序的服务主体添加到访问策略中

在邮递员中,按照下面的屏幕截图,修复从步骤 1 获得的属性。

POST https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token

client_id=<client_id>
&scope=https://vault.azure.net/.default
&client_secret=<client_secret>
&grant_type=client_credentials
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

然后复制token来调用REST API来设置secret,就可以正常工作了。

在此输入图像描述


小智 6

此外,您还可以通过以下方式获取令牌az account get-access-token --resource "https://vault.azure.net"

至特异性保管库资源