Мне удалось заставить работать приведенный ниже код ( полный код здесь ), чтобы использовать управляемую идентификацию Azure для аутентификации (через Visual Studio) и получить доступ к учетной записи хранения Azure без использования учетных данных.
const string storageResource = "https://storage.azure.com/";
var authResult = await azureServiceTokenProvider.GetAuthenticationResultAsync(storageResource, cancellationToken: cancellationToken);
Коду удалось найти моего пользователя, вошедшего в Visual Studio, и использовать его для получения токена, и все идет хорошо.
Однако этот код выполняется как часть интеграционных тестов библиотеки в конвейере сборки DevOps Azure.
Я нашел субъект-службу, созданный при создании подключения службы к Azure в DevOps Azure, и назначил ему ту же роль Storage Blob Data Contributor
, надеясь, что DevOps Azure будет использовать его для запуска кода, но безуспешно.
Итак, мой вопрос:
Как получить код, который запускается в конвейере сборки DevOps Azure, чтобы иметь возможность аутентификации с использованием AzureServiceTokenProvider
?
Кстати, сообщение об ошибке:
Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProviderException
: Параметры: Строка подключения: [Строка подключения не указана],
Ресурс: https://storage.azure.com/, Полномочия:. Сообщение об исключении:
Пробовал следующие 3 способа получить токен доступа, но ни один из них
работал. Параметры: Строка подключения: [Строка подключения отсутствует
указано], ресурс: https://storage.azure.com/, Полномочия:.
Сообщение об исключении: попытка получить токен с использованием идентификатора управляемой службы.
Не удалось получить токен доступа. Не удалось после 5 попыток. MSI
ResponseCode: BadRequest, Ответ:
{"error": "invalid_request", "error_description": "Идентификация не найдена"}
Параметры: Строка подключения: [Строка подключения не указана],
Ресурс: https://storage.azure.com/, Полномочия:. Сообщение об исключении:
Пытался получить токен с помощью Visual Studio. Токен доступа не может быть
приобрела. Файл поставщика Visual Studio Token не найден в
"C: \ Users \ VssAdministrator \ AppData \ Local.IdentityService \ AzureServiceAuth \ tokenprovider.json"
Параметры: Строка подключения: [Строка подключения не указана],
Ресурс: https://storage.azure.com/, Полномочия:. Сообщение об исключении:
Пытался получить токен с помощью Azure CLI. Токен доступа не может быть
приобрела. ОШИБКА: Пожалуйста, запустите 'az login', чтобы настроить учетную запись.
TearDown: System.NullReferenceException: ссылка на объект не установлена в
экземпляр объекта.