Conexión a fuentes de Azure Artifacts mediante NuGet.exe

Servicios de Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Azure Artifacts le ayuda a almacenar y administrar los paquetes desde una sola fuente. Puede compartir paquetes dentro del equipo, entre organizaciones o para proyectos públicos existentes, públicamente. En este artículo se muestra cómo configurar el proyecto y autenticarse en la fuente de Azure Artifacts mediante NuGet.exe.

Prerrequisitos

Producto Requisitos
Azure DevOps - Una organización de Azure DevOps .
- Un proyecto de Azure DevOps .
- Una fuente de Azure Artifacts.
- Descargue e instale nuget.exe versión 4.8.0.5385 o posterior. Se recomienda NuGet 5.5.x o posterior, lo que incluye correcciones de errores importantes para cancelaciones y tiempos de espera.

Configuración del proveedor de credenciales de Azure Artifacts

El proveedor de credenciales de Azure Artifacts habilita la autenticación segura en las fuentes de Azure Artifacts. Para usarlo con nuget.exe, primero debe agregarlo a la ruta de búsqueda del complemento de NuGet. Para obtener más información, consulte Instalación y detección de complementos. Una vez agregado el complemento, siga los pasos de instalación del sistema operativo a continuación:

Use uno de los métodos siguientes para instalar el proveedor de credenciales de Azure Artifacts:

Instalación manual

  1. Descargue la versión más reciente Microsoft.NetFx48.NuGet.CredentialProvider.zip.

  2. Extraiga el archivo ZIP.

  3. Copie la netfx carpeta del archivo extraído en %UserProfile%/.nuget/plugins/. La netfx carpeta es necesaria para nuget.exe compatibilidad.

Instalación mediante el script auxiliar

Como alternativa, puede usar el script auxiliar para automatizar la instalación. Asegúrese de que tiene PowerShell 5.1 o posterior y, a continuación, ejecute:

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

Para obtener más información, consulte el repositorio Azure Artifacts Proveedor de credenciales.

Configuración del proyecto

Siga estos pasos para configurar el proyecto y agregar la fuente al nuget.config archivo para que NuGet sepa dónde restaurar y publicar paquetes. La URL del feed que utilice depende de si el feed está limitado a un proyecto o a la organización.

  1. Inicie sesión en la organización de Azure DevOps y vaya al proyecto.

  2. Seleccione Artefactos y, a continuación, seleccione la fuente en el menú desplegable.

  3. Seleccione Conectar a la fuente y, a continuación, seleccione NuGet.exe en el panel de navegación izquierdo.

  4. Agregue un nuget.config archivo al proyecto en la misma carpeta que el .csproj archivo o .sln y, a continuación, pegue el fragmento de código proporcionado en él. El nuget.config archivo debe ser similar a uno de los ejemplos siguientes:

    • Fuente con ámbito de proyecto:

      <?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 con ámbito de organización:

      <?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. Inicie sesión en su colección de Azure DevOps y vaya a su proyecto.

  2. Seleccione Artefactos y, a continuación, seleccione la fuente en el menú desplegable.

  3. Seleccione Conectar a la fuente y, a continuación, seleccione NuGet.exe en el panel de navegación izquierdo.

  4. Añada un archivo nuget.config a su proyecto en la misma carpeta que su archivo .csproj o .sln y, a continuación, pegue en su archivo el fragmento de código proporcionado en la sección Configuración del proyecto.

Nota:

El proveedor de credenciales de Azure Artifacts requiere la versión 4.8.0.5385 de NuGet o posterior. Azure Artifacts recomienda NuGet 5.5.x o versiones posteriores para obtener la mejor compatibilidad y confiabilidad.

Configuración del proyecto heredado

Si usa una versión anterior de NuGet que no admite el flujo v3 recomendado, aún puede conectarse a su fuente de paquetes usando el punto de conexión v2 anterior y un token de acceso personal (PAT). Use este enfoque solo cuando no pueda actualizar a una versión más reciente del cliente.

  1. Inicie sesión en la organización de Azure DevOps y vaya al proyecto.

  2. Seleccione Artefactos y, a continuación, seleccione la fuente en el menú desplegable.

  3. Seleccione Conectar a la fuente y, a continuación, seleccione NuGet.exe desde la izquierda.

  4. Copie la dirección URL de origen de la sección Configuración del proyecto y, a continuación, reemplace por /v3/index.json/v2. La dirección URL de origen actualizada debe ser similar a una de las siguientes:

    • Fuente con ámbito de proyecto:

      https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v2
      
    • Feed con ámbito de organización:

      https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v2
      
  5. Cree un token de acceso personal. Asigne el ámbito del token a la organización a la que quiera acceder y, a continuación, seleccione uno de los siguientes ámbitos en función de sus necesidades: Packaging (lectura), Packaging (lectura y escritura) o Packaging (lectura, escritura y administración).

  6. Ejecute el siguiente comando en una ventana de comandos para agregar su fuente al archivo nuget.config:

    nuget sources add -name <FEED_NAME> -source <SOURCE_URL> -username <ANY_STRING_BUT_NOT_NULL> -password <YOUR_PERSONAL_ACCESS_TOKEN>
    
  7. Si su organización está conectada a Microsoft Entra ID, primero autentíquese con sus credenciales de Microsoft Entra y agregue el token de acceso personal mediante el 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> 
    

Autenticación mediante entidades de servicio

Use la autenticación de entidad de servicio para escenarios de automatización en los que el inicio de sesión interactivo no sea adecuado. Para autenticarse con una fuente de Azure Artifacts mediante una entidad de servicio, establezca la variable de entorno ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS como se muestra en los ejemplos siguientes.

La variable especifica la URL del canal, el identificador de la aplicación (cliente) de la entidad de servicio y el nombre del sujeto del certificado o la ruta de acceso al archivo del certificado. Solo necesita uno de los valores del 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>"
        }
    ]
}
'@