Ficar não autorizado ao tentar obter um segredo do cofre de chaves do Azure
estou a usarMicrosoft.Azure.keyVault
tentando obter um segredo de um cofre de chaves no Azure.
Registrei um aplicativo como API nativa e da Web.
O logon no AD foi bem-sucedido (pode confirmar isso obtendo um valor válidoAccessToken
emAuthenticationContext.AcquireTokenAsync
)
No Azure AD, os dois aplicativos receberam Controle de Acesso (IAM) e Políticas de Acesso no Cofre de Chaves. Confirmei que o URL base do cofre de chaves e o nome secreto estão corretos, mas ao fazer a seguinte chamada
var sec = kv.GetSecretAsync("https://xxxxxxx.vault.azure.net", "xxsecretnamexx").GetAwaiter().GetResult();
Eu continuo recebendo o erro
{"Operation returned an invalid status code 'Unauthorized'"} Microsoft.Azure.KeyVault.Models.KeyVaultErrorException
Uma nota lateral: Tentativa de fazer isso efetuando login como usuário. O código para obter o token é o seguinte
.AcquireTokenAsync(resourceUri,clientId, new Uri(redirectUri), new PlatformParameters(PromptBehavior.SelectAccount))
Temos código de trabalho usando a identificação e o segredo de um aplicativo registrado do Azure AD que possui direitos ao cofre de chaves.
Tentando fazer a mesma coisa sem usar a identificação e o segredo de um aplicativo associado do Azure AD registrado, mas, em vez disso, exibir um prompt de logon ao obter o token de acesso ao Azure AD.