Conectar a un feed de Azure Artifacts (dotnet)

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

Azure Artifacts permite a los desarrolladores publicar paquetes sin problemas en fuentes y compartirlos de forma privada o pública, en función de la configuración de visibilidad de la fuente. Esta guía le llevará a través de la configuración de su proyecto y la autenticación con el feed de Azure Artifacts.

Prerrequisitos

Producto Requisitos
Azure DevOps - Una organización de Azure DevOps .
- Un proyecto de Azure DevOps .
- Una fuente de Azure Artifacts.
- Descargue e instale la versión .NET SDK9.0.200 o posterior.

Configuración del proveedor de credenciales de Azure Artifacts

Para autenticarse con la fuente, antes debe instalar el proveedor de credenciales de Azure. Con el instalador de herramientas incluido con dotnet, puede instalar el proveedor de credenciales desde la CLI mediante el siguiente comando:

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

Si el nuget.config a nivel de repositorio está configurado para usar solo orígenes de Azure Artifacts, ejecute el comando de instalación desde fuera de ese directorio o establezca explícitamente nuget.org como origen:

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

Opcionalmente, ancle la herramienta a una versión principal (por ejemplo, en imágenes de contenedor donde importa la reproducibilidad):

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

La primera vez que realice una operación que requiera autenticación, debe autenticarse mediante:

  • Se está ejecutando con --interactive para que dotnet pueda solicitarle que se autentique.
  • Proporcionar credenciales a través de variables de entorno (por ejemplo, en escenarios desatendidos).

Si la autorización interactiva está disponible, vaya al directorio del proyecto y ejecute:

dotnet restore --interactive

Este comando inicia sesión y adquiere un token. Una vez que el inicio de sesión se realiza correctamente, puede ejecutar comandos autenticados sin --interactive hasta que expire el token. Consulte Session token cache locations para obtener más información.

Conexión a una fuente

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

  2. Seleccione Conectar a la fuente y, a continuación, seleccione dotnet en la sección NuGet.

  3. Agregue un archivo nuget.config al proyecto. Colóquelo en la misma carpeta que el archivo .csproj o .sln y pegue el fragmento de código proporcionado en la sección Configuración del proyecto en él. El archivo nuget.config debe ser similar al siguiente:

    • Fuente con ámbito de proyecto:

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

      <?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. Inicie sesión en la colecció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 dotnet desde la izquierda.

  4. Agregue un archivo nuget.config al proyecto. Colóquelo en la misma carpeta que el archivo .csproj o .sln y pegue el fragmento de código proporcionado en la sección Configuración del proyecto en él.

    Captura de pantalla que muestra cómo conectarse a una fuente en Azure DevOps Server 2020 y 2022.

Autenticación mediante entidades de servicio

Puede usar una entidad de servicio para autenticarse con la fuente de Azure Artifacts. Para ello, establezca la variable de entorno ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS como se muestra a continuación.

Esta variable debe definir la dirección URL de fuente, el identificador de aplicación (cliente) de la entidad de servicio y el nombre del firmante del certificado o la ruta de acceso al archivo de certificado (solo se requiere una de estas dos).

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