SecretClient.GetSecret 总是抛出 400 错误

SecretClient.GetSecret always throws 400 error

我正在尝试从旧的“Microsoft.Azure.KeyValut”包转移到新的“Azure.Security.KeyVault.Secrets”

我可以列出我所有的秘密,但是当我尝试获取秘密值时,我得到了 400 Http 状态错误:

Azure.RequestFailedException: 'Service request failed. Status: 400 (Bad Request)

Content: {"error":{"code":"BadParameter","message":"Method GET does not allow operation 'ChilkatUnlock'"}}

internal SecretClient GetClient() {
            var client = new SecretClient(new Uri(cKvUri), new ClientSecretCredential(cAzureTennantId, cAzureClientId, cAzureClientSecret));
            return client;
}

internal void ListSecrets() {
            var client = GetClient();
            

            Pageable<SecretProperties> allSecrets = client.GetPropertiesOfSecrets();

            foreach (SecretProperties secretProperties in allSecrets) {
                Console.WriteLine(secretProperties.Name);
                var val = client.GetSecret(secretProperties.Name);
                Console.WriteLine(val.Value);
            }
        }

我尝试使用您问题中的代码,它 returns 秘密没有错误。请检查您的 ChilkatUnlock 方法。我终于分享了访问策略。

var client = new SecretClient(new Uri(cKvUri), new ClientSecretCredential(cAzureTennantId, cAzureClientId, cAzureClientSecret));

Pageable<SecretProperties> allSecrets = client.GetPropertiesOfSecrets();

foreach (SecretProperties secretProperties in allSecrets)
{
     Console.WriteLine("Secret: " + secretProperties.Name);
     var val = client.GetSecret(secretProperties.Name);
     Console.WriteLine("Value: " + val.Value);
}

访问策略: