通过 Azure API 更新 Azure 密钥保管库机密

Update Azure keyvault secret through Azure API

我正在尝试通过 Postman 更新 Azure 中的密钥保管库机密。但是得到授权错误。 有什么建议么。我缺少的任何东西。提前致谢

{
  "error": {
    "code": "Unauthorized",
    "message": "AKV10022: Invalid audience. Expected https://vault.azure.net, found: https://management.azure.com/."
  }
}

使用以下内容更新密钥:

PUT https://demokv.vault.azure.net/secrets/secretname?api-version=7.0

正文中:

{
  "value": "mysecretvalue"
}

您为错误的受众获取了访问令牌(Bearer),

AKV10022: Invalid audience.
Expected https://vault.azure.net,
Found: https://management.azure.com/.

为正确的观众购买一个新的,然后再试一次。

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

要获取token,可以使用邮递员中的client credential flow

1.Register an AD App in azure ad, then get values for signing in and create a new application secret.

2.Navigate 到门户中的密钥库,add the service principal of the AD App to the Access policies

在 postman 中,按照下面的屏幕截图,修复从步骤 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

然后复制token调用RESTAPI设置secret,就可以了。

我的挑战是使用旧版本的 oauth API。

确保您使用的是:

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

而不是:

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

此外,您可以通过az account get-access-token --resource "https://vault.azure.net"

获取令牌

特定库资源