Se ha publicado una nueva versión de las tareas para nuestros pipelines que usan los agentes de Azure. Estos cambios se han introducido recientemente para dar soporte a las librerías de autenticación MSAL para la conexión de LCS que utilizamos para subir y desplegar los deployable packages.

Las conexiones que tenemos ahora usan la Azure Active Directory (Azure AD) Authentication Library (ADAL), y el soporte para ADAL va a terminar en junio de 2022.

Esto quiere decir que si no actualizamos las tareas de Asset Upload y Asset Deployment a las nuevas versiones (1.* y 2.* respectivamente) los pipelines de release podrían dejar de funcionar después del 30 de junio de 2022.

Agradecer a Joris de Gruyter el chivatazo que ha permitido escribir este post 😛

Nueva tarea MSAL

Si no añades esta task a tu pipeline te dará el error: [error]The specified module ‘MSAL.PS’ was not loaded because no valid module file was found in any module directory.

También tenemos una tarea nueva que añade el soporte para la autenticación MSAL. Esta tarea instalará las librerías de PowerShell de MSAL en nuestro agente de Azure y tenemos que añadirlo antes de que se autentique cualquier task. Debería quedar así:

Tarea instalar MSAL
Tarea instalar MSAL

Esta nueva tarea no tiene parámetros u opciones que tengan que completarse, solo tenemos que añadirla a nuestro pipeline y ya está.

Si tenéis un pipeline de release con varios stages, habrá que añadir esta nueva tarea en cada stage en los que vaya a haber autenticación. Si por ejemplo lo ponéis en el primero, donde se hace la subida a LCS, y en otro se hace el despliegue y no tiene esta task, va a fallar. Esto por lo menos es cierto si el proyecto tiene agentes adicionales, tengo que probarlo con un proyecto con un único agente.

Nuevas versiones de Asset Upload y Deploy

Para dar soporte a la autenticación MSAL el equipo de las dev tools de Microsoft ha publicado nuevas versiones de ambas tareas.

Asset Upload

Si cambias la versión de la tarea Asset Upload de 0.* a 1.* no verás cambios. Los campos de la task son los mismos, pero va a usar la autenticación MSAL como nueva forma de autenticación.

Pero cuidado, solo con cambiar la versión no es suficiente. También tenemos que crear una conexión de servicio nueva porque el endpoint ha cambiado a https://login.microsoftonline.com/organizations. Este endpoint será el que, a partir de ahora, se use en todas las versiones cuando se genere una nueva conexión, sea en la versión de la tarea que sea.

Aquí podéis ver el antiguo endpoint:

Old service connection
Conexión antigua

Y la nueva:

Nueva conexión
Nueva conexión

Asset Deployment

En la tarea Asset Deployment ahora veremos tres versiones: 0.* que es la original, 1.* que es la que dio soporte a los entornos self-service, y la 2.* que es la nueva que soporta la autenticación MSAL.

Si ya has creado la conexión en el paso anterior con cambiarla a la nueva ya lo tienes listo.

¿Y qué pasa si uso una máquina de build propia?

No lo sé seguro. Pero seguramente con instalar la librería de PowerShell MSAL.PS en vuestra máquina de build debería bastar, si es que no está ya instalado.

Última versión de la task MSAL.PS 1.0.1572609 (enero 2024) #

Si os está apareciendo un error en la task Asset Upload: “The underlying connection was closed: An unexpected error occurred on a receive.”, aseguraros de actualizar la especificación del agente a windows-2022:

¡Esto arreglará el problema!

¡Suscríbete!

Recibe un correo cuando se publique un nuevo post
Author

Microsoft Dynamics 365 Finance & Operations technical architect and developer. Business Applications MVP since 2020.

Write A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

ariste.info