Conectar-se aos feeds de Azure Artifacts usando NuGet.exe

Serviços Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Azure Artifacts ajuda você a armazenar e gerenciar seus pacotes de um único feed. Você pode compartilhar pacotes em sua equipe, entre organizações ou, para projetos públicos existentes, publicamente. Este artigo mostra como configurar seu projeto e autenticar no feed de Azure Artifacts usando NuGet.exe.

Pré-requisitos

Produto Requisitos
Azure DevOps - Uma organização do Azure DevOps.
- Um projeto do Azure DevOps .
- Um feed do Azure Artifacts.
– Baixe e instale nuget.exe versão 4.8.0.5385 ou posterior. Recomendamos o NuGet 5.5.x ou posterior, que inclui correções de bug importantes para cancelamentos e tempos limite.

Configurar o provedor de credenciais Azure Artifacts

O provedor de credenciais Azure Artifacts habilita a autenticação segura para seus feeds de Azure Artifacts. Para usá-lo com nuget.exe, primeiro, é necessário adicioná-lo ao caminho de busca de plug-ins do NuGet. Para obter detalhes, consulte Instalação e descoberta do Plug-in. Depois que o plug-in for adicionado, siga as etapas de instalação do sistema operacional abaixo:

Use um dos seguintes métodos para instalar o provedor de credenciais Azure Artifacts:

Instalação manual

  1. Baixe a versão mais recente Microsoft.NetFx48.NuGet.CredentialProvider.zip.

  2. Extraia os arquivos compactados.

  3. Copie a netfx pasta do arquivo extraído para %UserProfile%/.nuget/plugins/. A netfx pasta é necessária para nuget.exe compatibilidade.

Instalar usando o script auxiliar

Como alternativa, você pode usar o script auxiliar para automatizar a instalação. Verifique se você tem o PowerShell 5.1 ou posterior e execute:

iex "& { $(irm https://aka.ms/install-artifacts-credprovider.ps1) } -AddNetfx"

Para obter mais informações, consulte o repositório Azure Artifacts Credential Provider.

Configuração do projeto

Siga estas etapas para configurar seu projeto e adicionar seu feed ao seu arquivo nuget.config para que o NuGet saiba onde restaurar e publicar pacotes. A URL do feed que você usa depende se o feed tem escopo para um projeto ou para a organização.

  1. Entre em sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Artefatos e, em seguida, selecione o feed no menu suspenso.

  3. Selecione Conectar para alimentare selecione NuGet.exe no painel de navegação esquerdo.

  4. Adicione um nuget.config arquivo ao seu projeto na mesma pasta que seu .csproj arquivo ou .sln arquivo e cole o snippet fornecido nele. Seu nuget.config arquivo deve ser semelhante a um dos seguintes exemplos:

    • Feed do projeto com escopo:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<SOURCE_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
    • Feed da organização com escopo:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<SOURCE_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
  1. Entre em sua coleção do Azure DevOps e navegue até seu projeto.

  2. Selecione Artefatos e, em seguida, selecione o feed no menu suspenso.

  3. Selecione Conectar ao Feede selecione NuGet.exe no painel de navegação esquerdo.

  4. Adicione um arquivo nuget.config ao seu projeto na mesma pasta que o arquivo .csproj ou .sln e, em seguida, cole no seu arquivo o trecho de código fornecido na seção Configuração do projeto.

Observação

O provedor de credenciais Azure Artifacts requer a versão 4.8.0.5385 do NuGet ou posterior. Azure Artifacts recomenda o NuGet 5.5.x ou posterior para obter a melhor compatibilidade e confiabilidade.

Configuração do projeto herdado

Se você estiver usando uma versão mais antiga do NuGet que não dá suporte ao fluxo v3 recomendado, você ainda poderá se conectar ao feed usando o ponto de extremidade v2 mais antigo e um PAT (Token de Acesso Pessoal). Use esta abordagem somente quando não for possível migrar para um cliente mais novo.

  1. Entre em sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Artefatos e, em seguida, selecione o feed no menu suspenso.

  3. Selecione Conectar ao feed e selecione NuGet.exe à esquerda.

  4. Copie a URL de origem da seção de instalação do Project e substitua /v3/index.json por /v2. A URL de origem atualizada deve ser semelhante a uma das seguintes:

    • Feed do projeto com escopo:

      https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v2
      
    • Feed da organização com escopo:

      https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v2
      
  5. Criar um token de acesso pessoal. Escopo do token para a organização que você deseja acessar e selecione um dos seguintes escopos com base em suas necessidades: Empacotamento (leitura), Empacotamento (leitura e gravação) ou Empacotamento (leitura, gravação e gerenciamento).

  6. Execute o seguinte comando em uma janela de prompt de comando para adicionar a origem do feed ao seu arquivo nuget.config:

    nuget sources add -name <FEED_NAME> -source <SOURCE_URL> -username <ANY_STRING_BUT_NOT_NULL> -password <YOUR_PERSONAL_ACCESS_TOKEN>
    
  7. Se sua organização estiver conectada a Microsoft Entra ID, primeiro autentique-se com suas credenciais de Microsoft Entra e adicione seu token de acesso pessoal usando o setapikey comando:

    nuget sources add -name <FEED_NAME> -source <SOURCE_URL> -username <AZURE_ACTIVE_DIRECTORY_USERNAME> -password <AZURE_ACTIVE_DIRECTORY_PASSWORD>
    
    nuget setapikey <YOUR_PERSONAL_ACCESS_TOKEN> -source <SOURCE_URL> 
    

Autentique-se usando entidades de serviço

Use a autenticação de entidade de serviço para cenários de automação em que o login interativo não é adequado. Para autenticar com um feed de Azure Artifacts usando uma entidade de serviço, defina a variável de ambiente ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS, conforme mostrado nos exemplos a seguir.

A variável especifica sua URL de feed, o ID do aplicativo (cliente) da entidade de serviço e o nome do assunto do certificado ou o caminho do arquivo de certificado. Você só precisa de um dos valores do certificado.

$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>"
        }
    ]
}
'@