Можно ли получить доступ к конфигурации приложения Azure через управляемую идентификацию локально (или в конвейере) без развертывания каких-либо других служб в Azure?
У меня есть проект модульного тестирования ядра .net, который запускает некоторые интеграционные тесты на реальном сайте. Чтобы сохранить различные настройки, секреты и т. Д. Из исходного кода, я решил, что смогу использовать конфигурацию приложения Azure.
Я читал это руководство, но, похоже, оно было нацелено на доступ службы приложений к конфигурации приложения https://docs.microsoft.com/en-us/azure/azure-app-configuration/howto-integrate-идентификация-управляемая-служба-Azure?tabs=core2x
Я включил систему, назначенную управляемой идентификацией
[var builder = new ConfigurationBuilder(); builder.AddAzureAppConfiguration(options => { options.Connect(new Uri("https://sauitest-config.azconfig.io"), new DefaultAzureCredential()) .Select(KeyFilter.Any, "TestLocal"); });
К сожалению, это возвращает 403 (Forbidden)
. Примечание. Я вошел в Visual Studio как администратор с теми же учетными данными, которые использую для доступа к порталу. Очевидно DefaultAzureCredential
должен работать как в локальной, так и в лазурной среде.
Я что-то упустил?
Работает если снимать .Select(KeyFilter.Any, "TestLocal")
? То, что вы делаете, должно быть правильным — DefaultAzureCredential
пытается использовать различные методы, включая управляемую идентификацию, во-первых, возврат к аутентификации браузера, которую вы могли бы использовать для локальной разработки. — person Konzy262 schedule 12.03.2021
К сожалению, это не имело никакого значения. Пользователь, которого я вошел в Visual Studio как часть группы, имеющей доступ «Участник» к ресурсу конфигурации приложения (унаследованному от группы ресурсов). Как вы думаете, этого достаточно? — person Konzy262 schedule 12.03.2021
Чтобы использовать зарегистрированного пользователя VS для аутентификации, попробуйте VisualStudioCredential()
вместо DefaultAzureCredential()
прямо в коде. Кроме того, невозможно использовать MSI (управляемую идентификацию) для доступа к конфигурации приложения локально. — person Konzy262 schedule 12.03.2021
Оказывается, проблема заключалась в том, что у меня не было ни
App Configuration Data Owner
, ниApp Configuration Data Reader
ролей в отношении группы, которой я являюсь, которая используется для доступа к ресурсу. В группе было всегоcontributor
.Как только я добавил это через
Add Role Assignment
, он начал работать.Это правильно. Более подробную информацию можно найти в этом документе docs.microsoft.com/ azure / azure-app-configuration /. — person Konzy262; 13.03.2021