Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сервисы Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Azure Artifacts позволяет разработчикам без труда публиковать пакеты в лентах и предоставлять к ним частный доступ или, для существующих общедоступных проектов, общий доступ в зависимости от параметров видимости ленты. В этом руководстве описано, как настроить проект и выполнить проверку подлинности с помощью веб-канала Артефактов Azure.
Необходимые условия
| Продукт | Требования |
|---|---|
| Azure DevOps | — Организация Azure DevOps. — проект Azure DevOps . — канал Azure Artifacts . — Скачайте и установите пакет SDK .NET версии 9.0.200 или более поздней версии. |
Настройка поставщика учетных данных Azure Artifacts
Чтобы пройти аутентификацию в вашем канале, необходимо сначала установить Azure Credential Provider. С помощью установщика инструментов, включенного в dotnet, можно установить поставщик учетных данных из интерфейса командной строки с помощью следующей команды:
dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool
Если на уровне репозитория nuget.config настроено использование только Azure Artifacts источников, выполните команду установки за пределами этого каталога или явно задайте nuget.org в качестве источника:
dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --source https://api.nuget.org/v3/index.json
При необходимости закрепите инструмент на основной версии (например, в образах контейнеров, где важна воспроизводимость):
dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --version 2.* --source https://api.nuget.org/v3/index.json
При первом выполнении операции, требующей проверки подлинности, необходимо выполнить проверку подлинности по одному из следующих вариантов:
- Запустите с параметром
--interactive, чтобы dotnet мог предложить вам пройти проверку подлинности. - Передача учетных данных через переменные среды (например, в неинтерактивных сценариях).
Если доступна интерактивная авторизация, перейдите в каталог проекта и выполните следующую команду:
dotnet restore --interactive
Эта команда выполняет вход в систему и получает токен. После успешного входа вы можете выполнять команды, требующие аутентификации, без --interactive, пока не истечёт срок действия токена. Дополнительные сведения см. в разделе Session token cache locations.
Подключитесь к ленте
Выберите Артефакты и затем выберите ваш канал из раскрывающегося меню.
Выберите Подключиться к каналу, а затем выберите dotnet в разделе NuGet.
Добавьте в проект файлnuget.config . Поместите его в ту же папку, что и csproj или .sln-файл , и вставьте фрагмент кода, указанный в разделе установки Проекта . Файл nuget.config должен выглядеть следующим образом:
веб-канал с областью действия проекта:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <clear /> <add key="<FEED_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" /> </packageSources> </configuration>лента на уровне организации:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <clear /> <add key="<FEED_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" /> </packageSources> </configuration>
Войдите в коллекцию Azure DevOps и перейдите к проекту.
Выберите артефакты, а затем выберите свой веб-канал в раскрывающемся меню.
Выберите "Подключиться к каналу" и выберите dotnet слева.
Добавьте в проект файлnuget.config . Поместите его в ту же папку, что и csproj или .sln-файл , и вставьте фрагмент кода, указанный в разделе установки Проекта .
Аутентификация с использованием сервисных принципалов
Вы можете использовать учетную запись службы для проверки подлинности с помощью канала Артефактов Azure. Для этого задайте переменную среды ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS , как показано ниже.
Эта переменная должна определить URL-адрес веб-канала, идентификатор приложения (клиента) принципала службы, а также имя субъекта сертификата или путь к файлу сертификата (требуется только один из этих двух вариантов).
$env:ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS = @'{
"endpointCredentials": [
{
"endpoint": "<FEED_URL>",
"clientId": "<SERVICE_PRINCIPAL_APPLICATION_(CLIENT)_ID>",
"clientCertificateSubjectName": "<SERVICE_PRINCIPAL_CERTIFICATE_NAME>",
"clientCertificateFilePath": "<SERVICE_PRINCIPAL_CERTIFICATE_PATH>"
}
]
}
'@