Это кросс-пост от git .
У меня есть консольное приложение, использующее "Microsoft.Azure.Services.AppAuthentication" Version = "1.2.0-preview" и "Microsoft.Azure.KeyVault" Version = "3.0.2".
На виртуальной машине Windows 2019 назначен управляемый идентификатор пользователя.
Управляемому идентификатору было присвоено роль участника на моем keyvault, и он прочитан группе ресурсов, в которой он находится.
Я использую назначенный пользователем управляемый идентификатор, поскольку намерение состоит в том, чтобы запустить подобное приложение в модуле kubernetes (с идентификатором aad-pod). У меня есть переменная среды строки подключения, установленная как AzureServicesAuthConnectionString RunAs = App; ; TenantId =
Когда я пытаюсь подключиться к keyvault, чтобы получить секрет, я получаю Запрещенное исключение:
Необработанное исключение: System.AggregateException: одна или несколько ошибок
произошло. (Операция вернула недопустимый код состояния «Запрещено») --->
Microsoft.Azure.KeyVault.Models.KeyVaultErrorException: операция
вернул неверный код состояния «Запрещено» в
Microsoft.Azure.KeyVault.KeyVaultClient.GetSecretWithHttpMessagesAsync (String
vaultBaseUrl, String secretName, String secretVersion, Dictionary`2
customHeaders, CancellationToken cancellationToken) в
Microsoft.Azure.KeyVault.KeyVaultClientExtensions.GetSecretAsync (IKeyVaultClient
операции, String secretIdentifier, CancellationToken
cancellationToken) в msiauth.AzureStuff.Run () в
C: \ Users \ aiadmin \ src \ azure \ msiauth \ tests.cs: строка 50
--- Конец внутренней трассировки стека исключений --- в System.Threading.Tasks.Task.Wait (Int32 millisecondsTimeout,
Отмена взята Отмена взята) в
System.Threading.Tasks.Task.Wait () в msiauth.Program.Main (String []
args) в C: \ Users \ aiadmin \ src \ azure \ msiauth \ Program.cs: строка 10
Когда я пытаюсь создать группу ресурсов, используя "Microsoft.Azure.Management.ResourceManager" Version = "2.0.0-preview", она работает нормально, поэтому для этого работает назначенный пользователем MI.
Я попробовал точно такой же код ключа, но с назначенным системой управляемым удостоверением, и он работал правильно, поэтому разрешения в порядке, и код работает.
Кто-нибудь мог сделать это в ядре .net?