Использовать управляемые удостоверения в конвейере сборки DevOps Azure - PullRequest
0 голосов
/ 03 июля 2019

Мне удалось заставить работать приведенный ниже код ( полный код здесь ), чтобы использовать управляемую идентификацию 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: ссылка на объект не установлена ​​в экземпляр объекта.

1 Ответ

0 голосов
/ 03 июля 2019

Вам потребуется создать служебное соединение типа " Аутентификация управляемого удостоверения " для использования управляемого удостоверения в конвейере DevOps.

...