У меня есть следующий код для получения секретности из хранилища ключей Azure:
public static async Task<string> GetToken(string authority, string resource, string scope)
{
var authContext = new AuthenticationContext(authority);
ClientCredential clientCred = new ClientCredential(...); //app id, app secret
AuthenticationResult result = await authContext.AcquireTokenAsync(resource, clientCred);
if (result == null)
throw new InvalidOperationException("Failed to obtain the JWT token");
return result.AccessToken;
}
public static string GetSecret(string secretName)
{
KeyVaultClient keyVaultClient = new KeyVaultClient(GetToken);
try
{
return keyVaultClient.GetSecretAsync("my-key-vault-url", secretName).Result.Value;
}
catch(Exception ex)
{
return "Error";
}
}
Ошибка, которую я получаю, это "доступ запрещен", который (я думаю) означает, что идентификатор, секрет и URL-адрес хранилища в порядке. Тем не менее, я не знаю, что я могу сделать по-другому, чтобы исправить эту ошибку, может быть, есть настройки на портале Azure, которые мешают мне читать секрет?