Очень странно, что в вашем случае, основываясь на моем тесте, нет никаких задержек до того, как безопасность изменится через лазурь.
ользуюMicrosoft.Azure.keyVault
пытаясь получить секрет из хранилища ключей в Azure.
Я зарегистрировал приложение как Native и Web API.
Вход в AD успешен (можете подтвердить это, получив действительныйAccessToken
наAuthenticationContext.AcquireTokenAsync
).
В Azure AD обоим приложениям были предоставлены контроль доступа (IAM) и политики доступа в хранилище ключей. Я подтвердил правильность URL-адреса базы хранилища ключей и секретного имени, но при выполнении следующего вызова
var sec = kv.GetSecretAsync("https://xxxxxxx.vault.azure.net", "xxsecretnamexx").GetAwaiter().GetResult();
Я получаю ошибку
{"Operation returned an invalid status code 'Unauthorized'"} Microsoft.Azure.KeyVault.Models.KeyVaultErrorException
Один комментарий: Попытка сделать это, войдя в систему как пользователь. Код для получения токена выглядит следующим образом
.AcquireTokenAsync(resourceUri,clientId, new Uri(redirectUri), new PlatformParameters(PromptBehavior.SelectAccount))
У нас есть рабочий код с использованием идентификатора и секрета зарегистрированного приложения Azure AD, которое имеет права на хранилище ключей.
Попытка сделать то же самое без использования идентификатора и секрета связанного зарегистрированного приложения Azure AD, но вместо этого отображается приглашение для входа при получении токена доступа к Azure AD.