Conectar-se a um feed de Artefatos do Azure (dotnet)

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

Os Artefatos do Azure permitem que os desenvolvedores publiquem pacotes em feeds sem problemas e os compartilhem privada ou publicamente, dependendo das configurações de visibilidade do feed. Este guia orienta você na configuração do projeto e na autenticação com o feed de Artefatos do Azure.

Pré-requisitos

Produto Requisitos
Azure DevOps - Uma organização Azure DevOps .
- Um projeto do Azure DevOps .
- Um feed de Artefatos do Azure .
- Descarregar e instalar o SDK .NET versão 9.0.200 ou posterior.

Configurar o fornecedor de credenciais do Artefactos do Azure

Para autenticar com o seu feed, deve primeiro instalar o Azure Credential Provider. Usando o instalador de ferramentas incluído no dotnet, pode instalar o fornecedor de credenciais a partir da CLI usando o seguinte comando:

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool

Se o seu nível de repositório nuget.config estiver configurado para usar apenas Artefactos do Azure fontes, execute o comando install de fora desse diretório, ou defina explicitamente nuget.org como fonte:

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --source https://api.nuget.org/v3/index.json

Opcionalmente, fixe a ferramenta a uma versão principal (por exemplo, em imagens de contentores em que a reprodutibilidade é importante):

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --version 2.* --source https://api.nuget.org/v3/index.json

Na primeira vez que realizar uma operação que requer autenticação, deve autenticar-se através de:

  • A executar com --interactive para que o dotnet te possa pedir para autenticar-te.
  • Fornecer credenciais por meio de variáveis de ambiente (por exemplo, em cenários não assistidos).

Se houver autorização interativa disponível, navegue até ao diretório do seu projeto e execute:

dotnet restore --interactive

Este comando inicia a sessão e obtém um token. Depois de iniciar sessão com êxito, pode executar comandos autenticados sem --interactive até o token expirar. Consulte Session token cache locations para mais detalhes.

Conectar-se a um feed

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

  2. Selecione Conectar ao feede, em seguida, selecione dotnet na secção NuGet.

  3. Adicione um arquivo nuget.config ao seu projeto. Coloque-o na mesma pasta que seu arquivo .csproj ou .sln e cole o trecho fornecido na seção Configuração do projeto nele. Seu arquivo nuget.config deve ser semelhante ao seguinte:

    • Fluxo vinculado ao projeto:

      <?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>
      
    • Feed de âmbito organizacional:

      <?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>
      
  1. Entre em sua coleção de DevOps do Azure e navegue até seu projeto.

  2. Selecione Artefactose, em seguida, selecione o seu feed no menu suspenso.

  3. Selecione Conectar ao feed e, em seguida, selecione dotnet no lado esquerdo.

  4. Adicione um arquivo nuget.config ao seu projeto. Coloque-o na mesma pasta que seu arquivo .csproj ou .sln e cole o trecho fornecido na seção Configuração do projeto nele.

    Uma captura de tela exibindo como se conectar a um feed no Azure DevOps Server 2020 e 2022.

Autenticar usando Serviços Principais

Pode utilizar um principal de serviço para autenticar no seu feed de Artefatos do Azure. Para fazer isso, defina a variável de ambiente ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS como mostrado abaixo.

Essa variável deve definir a URL do feed, o ID da aplicação (cliente) da entidade de serviço e o nome do titular do certificado ou o caminho para o arquivo de certificado (apenas um deles é necessário).

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