Connettersi a un feed di Azure Artifacts (dotnet)

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Azure Artifacts consente agli sviluppatori di pubblicare facilmente i pacchetti nei feed e condividerli privatamente o pubblicamente, a seconda delle impostazioni di visibilità del feed. Questa guida illustra come configurare il progetto e autenticarsi con il feed di Azure Artifacts.

Prerequisiti

Prodotto Requisiti
Azure DevOps - Un'organizzazione di Azure DevOps.
- Un progetto Azure DevOps .
- Un feed di Azure Artifacts .
- Scaricare e installare .NET SDK versione 9.0.200 o versione successiva.

Configurare il provider di credenziali Azure Artifacts

Per eseguire l'autenticazione con il feed, è prima necessario installare il provider di credenziali Azure. Usando il programma di installazione dello strumento incluso in dotnet, è possibile installare il provider di credenziali dall'interfaccia della riga di comando usando il comando seguente:

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

Se il file nuget.config a livello di repository è configurato per usare solo le origini di Azure Artifacts, esegui il comando di installazione da fuori di tale directory oppure imposta esplicitamente nuget.org come origine:

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

Facoltativamente, aggiungere lo strumento a una versione principale(ad esempio, nelle immagini del contenitore in cui la riproducibilità è importante):

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

La prima volta che si esegue un'operazione che richiede l'autenticazione, è necessario eseguire l'autenticazione tramite:

  • Esegui con --interactive in modo che dotnet possa chiederti di autenticarti.
  • Fornire le credenziali tramite variabili di ambiente (ad esempio, in scenari non presidiati).

Se è disponibile l'autorizzazione interattiva, passare alla directory del progetto ed eseguire:

dotnet restore --interactive

Questo comando ti consente di accedere e di ottenere un token. Dopo aver effettuato l'accesso con successo, puoi eseguire comandi autenticati senza --interactive finché il token non scade. Per altri dettagli, vedere Session token cache locations.

Collegarsi a un feed

  1. Selezionare Artefatti e quindi selezionare il feed dal menu a discesa.

  2. Selezionare Connetti al feed, e quindi selezionare dotnet nella sezione NuGet.

  3. Aggiungere un filenuget.config al progetto. Posizionarlo nella stessa cartella del file con estensione csproj o .sln e incollarvi il frammento fornito nella sezione Installazione progetto . Il filenuget.config dovrebbe essere simile al seguente:

    • feed con ambito progetto:

      <?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 a livello di organizzazione:

      <?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. Accedi alla tua raccolta di Azure DevOps, e quindi passa al tuo progetto.

  2. Selezionare Artifactse quindi selezionare il tuo feed dal menu a discesa.

  3. Selezionare Connetti al feed e quindi selezionare dotnet a sinistra.

  4. Aggiungere un filenuget.config al progetto. Posizionarlo nella stessa cartella del file con estensione csproj o .sln e incollarvi il frammento fornito nella sezione Installazione progetto .

    Screenshot che mostra come connettersi a un feed in Azure DevOps Server 2020 e 2022.

Autenticarsi utilizzando i principali del servizio

È possibile usare un principale del servizio per eseguire l'autenticazione con il feed di Azure Artifacts. A tale scopo, impostare la variabile di ambiente ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS come illustrato di seguito.

Questa variabile deve definire l'URL del feed, l'ID applicazione (client) dell'entità servizio e il nome soggetto del certificato o il percorso del file del certificato (è necessario solo uno di questi due).

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