#azure #azure-keyvault
#azure #azure-keyvault
Вопрос:
Я пытаюсь перейти от старого «Microsoft.Azure.KeyValut» пакет для нового «Azure.Безопасность.KeyVault.Секреты»
Я могу перечислить все свои секреты, но в тот момент, когда я пытаюсь получить секретное значение, я получаю и ошибку состояния 400 Http:
Azure.Исключение RequestFailedException: «Ошибка запроса на обслуживание. Статус: 400 (неверный запрос)
Содержимое: {«ошибка»:{«код»:»BadParameter»,»сообщение»:»Метод GET не разрешает операцию ‘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);
}
}
Ответ №1:
Я пытаюсь использовать код в вашей проблеме, и он возвращает секреты без ошибок. Пожалуйста, проверьте свой 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);
}
Политики доступа:
Комментарии:
1. Оказалось, что мой Uri keyvault был неправильным. Она содержится
/secrets/
в конце. Это работало в устаревшей версии «Microsoft. Azure. KeyVault» но не в новой версии.2. Для получения дополнительной информации формат uri как
https://{vault-name}.vault.azure.net/
. И пример здесь .