Come funziona App attach per Azure Virtual Desktop con Host Pool Entra joined

Da qualche giorno è disponibile in general availability la funzionalità App attach in Azure Virtual Desktop. App Attach è una funzionalità di Microsoft Azure Virtual Desktop che consente la gestione e la distribuzione delle applicazioni in modo più efficiente rispetto ai metodi tradizionali. In pratica, App Attach permette di “agganciare” dinamicamente applicazioni a sessioni virtuali senza la necessità di installare fisicamente le applicazioni all’interno dell’immagine del sistema operativo.

È bene fin da subito evidenziare che ci sono delle differenze tra App attach e MSIX App attach, di cui vi avevo parlato nella guida Configurare MSIX app attach (preview) in Azure Virtual Desktop – ICT Power.

MSIX è un formato di pacchetto di app di Windows (introdotto in Windows 10 versione 1709 (10.0.16299.0)) che permette di distribuire e gestire le app in maniera moderna. Le applicazioni vengono racchiuse all’interno di un unico file e possono essere distribuite in maniera molto semplice nei sistemi operativi Windows. Trovate maggiori informazioni al link https://docs.microsoft.com/it-it/windows/msix/overview

Nella tabella sotto sono mostrate le maggiori differenze:

Tabella 1: Differenza tra MSIX app attach e App attach

Creazione di una applicazione da distribuire

Per poter distribuire le applicazioni tramite App attach è necessario trasformarle in file MSIX, come ho già avuto modo di farvi vedere nella guida Configurare MSIX app attach (preview) in Azure Virtual Desktop – ICT Power. Questa modalità è estremamente utile soprattutto se volete “pacchettizzare” applicazioni sviluppate in casa o se volete partire direttamente dagli installer per la creazione del pacchetto MSIX. Questa modalità ha però anche degli inconvenienti perché richiede una postazione per la creazione dei pacchetti MSIX, la gestione e distribuzione dei certificati digitali per la firma dei pacchetti, ecc.

Per ottenere file MSIX direttamente dal sito del produttore, iniziate identificando il sito web ufficiale dell’applicazione o del software che desiderate scaricare in formato MSIX. Navigate nella sezione download del sito, dove la maggior parte dei produttori fornisce i link per i loro prodotti. Una volta lì, cercate specificamente l’opzione per il formato MSIX, spesso elencato insieme ad altri formati di pacchetti come MSI o EXE. Cliccate sul link per scaricare il file MSIX, assicurandovi di accettare i termini e le condizioni del produttore se richiesto.

Ad esempio, se volete scaricare Microsoft Edge in formato MSIX, visitate il sito web ufficiale di Microsoft Edge, navigate nella sezione di download e cercate l’opzione per scaricare il pacchetto in formato MSIX. Scaricate il file MSIX e seguite le istruzioni fornite dal produttore per l’installazione.

Notate che non tutti i produttori offrono il loro software in formato MSIX direttamente dal loro sito web. In tali casi, potreste dover utilizzare strumenti come il Microsoft Store o altri repository di software affidabili.

Oggi voglio farvi vedere una modalità alternativa per poter ottenere dei file MSIX direttamente dal sito del produttore del software. Per farlo mi servirò di un modulo di PowerShell chiamato Evergreen https://www.powershellgallery.com/packages/Evergreen.

Il modulo Evergreen per PowerShell è uno strumento potente che semplifica il processo di gestione e aggiornamento del software. Evergreen permette di ottenere le versioni più recenti di vari software direttamente dai siti dei produttori, rendendo obsoleta la necessità di cercare manualmente aggiornamenti.

Una delle funzionalità principali di Evergreen è la capacità di restituire gli URL di download per le versioni più recenti dei software. Questo rende possibile l’automazione del processo di scaricamento e installazione delle applicazioni, integrandosi facilmente in script e flussi di lavoro PowerShell.

Evergreen si distingue per la sua affidabilità, utilizzando API ufficiali e metodi di aggiornamento simili a quelli delle applicazioni stesse. Questo garantisce che le informazioni e i file scaricati siano sempre aggiornati e sicuri.

Inoltre, Evergreen fornisce una soluzione centralizzata per la gestione delle applicazioni, semplificando la vita degli amministratori IT. Ad esempio, può essere utilizzato per creare build di immagini di sistema sempre aggiornate o per mantenere aggiornati i software in ambienti gestiti tramite strumenti come Microsoft Intune.

Figura 1: Modulo PowerShell Evergreen nella PowerShell gallery

L’utilizzo di questo modulo PowerShell è davvero facile. In questa guida mi occuperò della distribuzione di Mozilla Firefox. I comandi PowerShell che ho utilizzato sono:

Figura 2: Installazione del modulo PowerShell Evergreen e ricerca degli URL per il download di Mozilla Firefox

Recuperate la versione di Mozilla Firefox che vi interessa, il tipo di architettura ed il tipo di file. A me interessa scaricare il file MSIX di Mozilla Firefox e l’URL è https://download-installer.cdn.mozilla.net/pub/firefox/releases/127.0.2/win64/multi/Firefox%20Setup%20127.0.2.msix, come si può vedere dalla figura sotto:

Figura 3: Recupero dell’URL per scaricare il file MSIX di Mozilla Firefox

Figura 4: Pacchetto MSIX di Mozilla Firefox scaricato

Visto? Semplicissimo! Abbiamo l’MSIX creato direttamente dal produttore, non abbiamo problemi per la gestione dei certificati di firma del pacchetto (vengono utilizzati quelli del produttore) e abbiamo risparmiato tempo!

 

Creare un’immagine MSIX da usare con App attach in Azure Virtual Desktop

Per creare un’immagine MSIX da usare con App attach in Azure Virtual Desktop vi basterà seguire le indicazioni contenute alla pagina Create an MSIX image to use with app attach in Azure Virtual Desktop – Azure | Microsoft Learn.

Scaricate il tool MSIXMGR tool ed estraetelo in una cartella. Quando si crea un’immagine MSIX si converte un pacchetto MSIX in un’immagine disco VHDVHDX o CIM usando il tool MSIXMGR. È consigliabile usare CimFS (Composite Image File System) per ottenere prestazioni ottimali, in particolare con Windows 11, perché utilizza meno CPU e memoria, con tempi di montaggio e smontaggio migliorati.

NOTA: Per garantire la compatibilità, assicurarsi che i file CIM che archiviano le immagini MSIX vengano generati in una versione di Windows inferiore o uguale alla versione di Windows in cui si prevede di eseguire i pacchetti MSIX. Ad esempio, i file CIM generati in Windows 11 potrebbero non funzionare in Windows 10. Io ho generato il file CIM in una macchina Windows 11 e lo utilizzerò solo su macchine Windows 11.

Aprire il prompt dei comandi o di PowerShell come amministratore e create il CIM disk con il comando

nel mio caso .\msixmgr.exe -Unpack -packagePath “D:\Downloads\MSIX\Firefox Setup 127.0.2.msix” -destination “C:\MSIX\Firefox127.0.2.cim” -applyACLs -create -fileType cim -rootDirectory apps

Assicuratevi che la cartella di destinazione sia già esistente e ricordate che un’immagine del disco CIM è costituita da più file e l’utilizzo di sottocartelle consente di distinguere le immagini.

NOTA: Un’immagine CimFS è una combinazione di diversi file: un file ha l’estensione .cim di file e contiene metadati, insieme ad almeno due altri file, uno che inizia con objectid_ e l’altro region_ che contiene i dati effettivi dell’applicazione. I file che accompagnano il .cim file non hanno un’estensione di file.

Figura 5: Creazione di una immagine CIM per l’applicazione

Caricamento dell’immagine disco CIM in una Azure File Share

Per poter distribuire le applicazioni con App attach è necessario caricarle in una share di rete. Per questa guida utilizzerò una Azure File Share chiamata apps, con all’interno una cartella firefox in cui ho caricato tutti i file che sono stati creati del tool MSIXMGR.

NOTA: Lo storage account si deve trovare nella stessa region dove avete creato l’Host Pool. Tutti gli host di sessione nel pool di host devono avere accesso in lettura alla Azure File Share con il proprio account computer.

I tipi di file supportati da App attach sono:

  • .vhd
  • .vhdx
  • .cim
  • .appv

Figura 6: Caricamento dei file generati dal tool MSIXMGR all’interno di una Azure File Share

Aggiunta dei permessi di accesso alla Azure File Share

Per poter permettere agli host del pool Entra ID Joined (che sto utilizzando in questa guida) di accedere alla Azure File Share è necessario assegnare il ruolo di Reader and Data Access ai Service Principal Azure Virtual Desktop e Azure Virtual Desktop ARM Provider, come mostrato nelle figure sotto:

Figura 7: Assegnazione dei permessi di accesso ai Service Principal Azure Virtual Desktop e Azure Virtual Desktop ARM Provider

Figura 8: Assegnazione dei permessi di accesso ai Service Principal Azure Virtual Desktop e Azure Virtual Desktop ARM Provider

Figura 9: Assegnazione dei permessi di accesso ai Service Principal Azure Virtual Desktop e Azure Virtual Desktop ARM Provider

Figura 10: Assegnazione dei permessi di accesso ai Service Principal Azure Virtual Desktop e Azure Virtual Desktop ARM Provider

Ricordatevi che tutti gli host di sessione nel pool di host devono avere accesso in lettura alla Azure File Share con il proprio account computer.

Figura 11: Tutti gli host di sessione nel pool di host devono avere accesso in lettura alla Azure File Share con il proprio account computer

Configurazione di App attach

Per poter aggiungere un’app ad App Attach in Azure Virtual Desktop dovete avere come minimo i privilegi di  Desktop Virtualization Contributor nel Resource group. Dal portale di Azure cercate Azure Virtual Desktop e selezionate App attach. Fate clic su Create app attach package.

Figura 12: Creazione di un nuovo appa attach package

Inserite le informazioni richieste dal wizard. Selezionate la sottoscrizione, il gruppo di risorse, l’host pool e la location.

Figura 13: Inserimento delle informazioni di base del wizard

Selezionare l’opzione Select a Storage account se l’immagine viene archiviata in Azure File Share o Input UNC per specificare un percorso UNC. Nel mio caso ho selezionato lo storage account e sono passato alla condivisione file e alla directory in cui si trova l’immagine selezionando Select a file. Ho quindi selezionato la casella accanto all’immagine da aggiungere, ad esempio Firefox127.0.2.cim, quindi cliccato su Seleziona.

Figura 14: Selezione dello Storage Account in cui si trova il package

Figura 15: Selezione del file dell’immagine MSIX

Figura 16: Scelta dell’immagine CIM

Ho selezionato quindi il pacchetto da distribuire (nel file CIM ce ne potrebbero essere diversi), il tipo di registrazione  da usare, lo stato iniziale per il pacchetto e lo stato del pacchetto se non riesce a eseguire il staging in un host di sessione. Questo stato viene segnalato per AppAttachHealthCheck per lo stato del controllo integrità dell’host della sessione.

Figura 17: Configurazioni del package

Nella scheda Assignments selezionate iL pool di host a cui si vuole assegnare l’applicazione. Se si usa già MSIX App Attach con un pool di host, non è possibile selezionare tale pool di host perché non è possibile usare entrambe le versioni di App Attach con lo stesso pool di host. Cercate e selezionate gli utenti o i gruppi a cui si vuole assegnare l’applicazione.

Figura 18: Scheda Assignments del wizard di creazione dell’app attach package

Figura 19: Schermata finale del wizard di creazione dell’app attach package

Ho notato anche che nonostante lo avessi scelto durante il wizard, l’host pool non risultava tra quelli a cui è assegnato l’app attach package. Potete in qualsiasi momento modificare le opzioni del pacchetto e modificare gli host pool. Si tratta di un problema temporaneo che verrà presto risolto.

Figura 20: Assegnazione dell’App attach package all’Host pool

Figura 21: Proprietà dell’App attach package

Figura 22: App attack package aggiunto ad Azure Virtual Desktop

Test di funzionamento

Per testare che App attach funzioni correttamente non vi servirà altro che collegarvi al vostro Host Pool con l’utente autorizzato ad utilizzare l’applicazione. Se state utilizzando la modalità Desktop per l’Host Pool non saranno necessarie altre configurazioni, mentre se volete utilizzare la funzionalità RemoteApp dovete prima pubblicare l’app utilizzando le indicazioni presenti alla pagina Publish applications with RemoteApp in Azure Virtual Desktop – Azure | Microsoft Learn

Figura 23: Dopo il login dell’utente l’app Mozilla Firefox risulta agganciata all’utente

Figura 24: L’utente utilizza l’applicazione distribuita tramite App attach

Per approfondimenti vi rimando alla documentazione ufficiale Add and manage app attach and MSIX app attach applications – Azure Virtual Desktop | Microsoft Learn

Conclusioni

La tecnologia App Attach rappresenta un significativo passo avanti nella gestione delle applicazioni in ambienti virtuali, come Azure Virtual Desktop. Grazie alla possibilità di montare dinamicamente le applicazioni senza la necessità di installarle fisicamente su ogni immagine del sistema operativo, si ottengono notevoli benefici in termini di flessibilità, efficienza e riduzione dei costi di gestione. Le funzionalità avanzate di App Attach, come il supporto per più versioni di applicazioni e l’integrazione con Microsoft Entra ID, migliorano ulteriormente l’esperienza amministrativa e degli utenti, rendendo più semplice e sicuro l’utilizzo delle applicazioni virtualizzate.