Windows Virtual Desktop – Il Desktop As A Service di Microsoft
Windows Virtual Desktop è un servizio completo (attualmente ancora in Preview) di virtualizzazione di desktop e applicazioni che viene eseguito nel cloud. È possibile connettersi da qualsiasi dispositivo tramite un’applicazione nativa oppure tramite il client Web HTML5 di Windows Virtual Desktop.
AGGIORNAMENTO del 07-06-2020. Windows Virtual Desktop ha cambiato nome in Azure Virtual Desktop.
Le caratteristiche principali di questo servizio sono:
- I servizi di infrastruttura come gateway, broker e licensing vengono forniti come servizio in Azure. Non è necessario distribuire e gestire alcuna infrastruttura locale.
- Windows Virtual Desktop può utilizzare Azure Active Directory (Azure AD) come provider di identità, consentendo di utilizzare anche l’autenticazione multifattore (MFA) o l’accesso condizionale.
- Una volta che un utente è connesso al servizio Windows Virtual Desktop, l’accesso alle macchine virtuali joinate ad Active Directory verrà fornito utilizzando le identità di Azure AD. Negli ambienti in cui è implementato Active Directory Federation Services (ADFS) per Single Sign-On (SSO), all’utente non verranno richieste le credenziali per la connessione alla VM.
- Nella VM di destinazione non è necessario aprire alcuna porta in ingresso. Anche la porta RDP predefinita, TCP 3389, non deve essere aperta. Un agent installato nella VM crea una connessione in uscita utilizzando la porta TCP 443. Tutto il traffico RDP verrà gestito da un Reverse Proxy in Azure in quanto le macchine virtuali non sono direttamente esposte a Internet. Le VM possono anche essere raggiunte utilizzando un indirizzo IP privato.
- Windows Virtual Desktop usa Windows 10 multi-session di Windows 10 Enterprise, in cui più utenti possono accedere contemporaneamente alla stessa VM client Windows tramite RDP (la multisessione era storicamente possibile solo sui sistemi operativi Windows Server).
Durante l’anteprima pubblica, i desktop e le app possono essere distribuiti in macchine virtuali in qualsiasi area di Azure, mentre la soluzione di gestione e i dati per queste macchine virtuali risiederanno negli Stati Uniti (area West US 2). Per questo motivo potreste avre qualche problema di latenza.
Prerequisiti di Windows Virtual Desktop
Per configurare Windows Virtual Desktop, è necessario avere:
- Una sottoscrizione di Azure con un credito sufficiente (necessario per ospitare le risorse).
- Scaricare e installare le cmdlet di Windows Virtual Desktop per Windows PowerShell su una macchina da cui effettuerete la gestione.
- Assicurarsi che la rete virtuale in Azure (VNET) sia configurata in modo tale che le nuove macchine virtuali possano contattare il controller di dominio o i servizi di dominio di Azure AD (Azure AD Domain Services).
- Assicurarsi che tutte le risorse di Azure si trovino nella stessa regione di Azure.
- Se si richiede SSO (client HTML5 escluso), sarà necessario AD FS o gli utenti dovranno autenticarsi quando si accede alla VM.
Nella figura sotto sono mostrati gli accountnecessari per opoter configurare l’infrastruttura di Windows Virtual Desktop
Figura 1: Account necessari alla configurazione di Windows Virtual Desktop
Assicuratevi anche di avere le licenze appropriate per gli utenti in base al desktop e alle applicazioni che prevedete di distribuire:
OS | Licenza richiesta |
Windows 10 Enterprise multisessione o Windows 10 a singola sessione | Microsoft E3, E5, A3, A5, Business Windows E3, E5, A3, A5 |
Windows 7 | Microsoft E3, E5, A3, A5, Business Windows E3, E5, A3, A5 |
Windows Server 2012 R2, 2016, 2019 | Licenza CAL Servizi Desktop remoto con Software Assurance |
I passaggi da effettuare sono i seguenti:
- Consentire al servizio Windows Virtual Desktop di accedere ad Azure AD.
- Assegnare il ruolo “TenantCreator” a un account utente.
- Creare un tenant per Windows Virtual Desktop.
- Distribuire il primo pool di host per Windows Virtual Desktop.
- Verificare se un utente può accedere a una sessione desktop.
Consentire al servizio Windows Virtual Desktop di accedere ad Azure AD
Per consentire a Windows Virtual Desktop di accedere ad Azure AD è necessario procurarsi l’ID del tenant da utilizzare. Per farlo collegatevi al portale di Azure e andate in Azure Active Directory > Properties > Directory ID, come mostrato in figura:
Figura 2: Directory ID del nostro tenant di Azure AD
Collegatevi alla pagina https://rdweb.wvd.microsoft.com ed inserite il tenant ID di Azure AD per consentire alla Server App di potervi accedere. In questo modo permetterete al servizio di Windows Virtual Desktop di poter interrogare il vostro tenant di Azure Ad per poter effettuare compiti amministrativi. Effettuate il login e consentite l’accesso.
Figura 3: Consenso alla Server App per l’accesso a Windows Virtual Desktop
Figura 4: Conferma dei permessi per l’accesso alla Server App
Figura 5: Registrazione dell’applicazione Server App completata
Attendete un minuto ed effettuate la stessa operazione per concedere l’accesso alla Client App. Inserite lo stesso Directory ID che avete utilizzato per registrare la Server App
Figura 6: Consenso alla Client App per l’accesso a Windows Virtual Desktop
Figura 7: Conferma dei permessi per l’accesso alla Client App
Figura 8: Registrazione dell’applicazione Client App completata
Assegnare il ruolo TenantCreator a un account utente in Azure AD
Per poter creare un tenant di Windows Virtual Desktop è necessario assegnare i privilegi di TenantCreator ad un utente di Azure AD. Loggatevi al portale di Azure e da Azure Active Directory > Enterprise applications cercate l’applicazione Windows Virtual Desktop. Nella voce Users and groups aggiungete l’utente di Azure AD a cui volete dare i permessi di TenantCreator, come mostrato in figura:
Figura 9: Applicazioni Windows Virtual Desktop in Azure AD
Figura 10: Assegnazione del ruolo di TenantCreator ad un utente di Azure AD
Creare un tenant per Windows Virtual Desktop
Per creare un tenant di Windows Virtual Desktop è necessario dapprima procurarsi il proprio SubScriptionID della sottoscrizione Azure nella quale volete create le VM da utilizzare. Dal portale di Azure vi basterà cliccare sul nodo Subscriptions per verificare al volo l’ID.
Figura 11: Subscription ID della sottoscrizione Azure da utilizzare per la creazione delle VM di Windows Virtual Desktop
Fate riferimento alla pagina https://docs.microsoft.com/it-it/azure/virtual-desktop/tenant-setup-azure-active-directory per ottenere maggiori informazioni sulla creazione del tenant di Windows Virtual Desktop Preview
Per procedure alla creazione del tenant è necessario installare il modulo PowerShell di Windows Virtual Desktop. Nello script sotto viene mostrato come creare il tenant. Sostituite i valori di <ID del TENANT DI AZURE AD> e <ID DELLA SOTTOSCRIZIONE> con quelli che vi siete procurati prima
1 2 3 4 5 6 7 8 9 10 11 |
#Install PowerShell modules Install-Module -Name Microsoft.RDInfra.RDPowerShell Import-Module -Name Microsoft.RDInfra.RDPowerShell # Setting Deployment context $brokerurl = "https://rdbroker.wvd.microsoft.com" $aadTenantId = "<ID del TENANT DI AZURE AD>" $azureSubscriptionId = "<ID DELLA SOTTOSCRIZIONE>"Add-RdsAccount -DeploymentUrl $brokerurl #create the Windows Virtual Desktop tenant New-RdsTenant -Name "<Nome del tenant>" -AadTenantId $aadTenantId -AzureSubscriptionId $azureSubscriptionId |
Figura 12: Collegamento al Broker di Windows Virtual Desktop
Figura 13: Creazione del nuovo tenant di Windows Virtual Desktop
Distribuire il primo pool di host di Windows Virtual Desktop
Per distribuire il primo pool di host di Windows Virtual Desktop, una collezione di VM che verrà creata in Azure e che verranno joinate al vostro dominio di Active Directory, collegatevi al portale di Azure e cercate nel Marketplace Windows Virtual Desktop – Provision a host pool. Seguite il wizard di creazione ed inserite tutte le informazioni richieste. Nelle schermate sotto sono mostrati tutti i passaggi necessari. Fate riferimento alla pagina https://docs.microsoft.com/it-it/azure/virtual-desktop/create-host-pools-azure-marketplace per ulteriori informazioni sulla configurazione.
Nel pannello di informazioni di base procedete come segue:
- Immettete un nome per il pool di host che sia univoco all’interno del tenant di Windows Virtual Desktop.
- Selezionate l’opzione appropriata per il tipo di desktop (Pooled o Personal).
- Immettete un elenco di voci delimitate da virgole corrispondenti agli utenti che possono accedere ai client di Windows Virtual Desktop. Se ad esempio si vuole assegnare l’accesso a [email protected] e [email protected], immettere “[email protected],[email protected]”.
- In Location selezionate la stessa località della macchina virtuale che ha connettività con il server Active Directory.
Figura 14: Creazione dell’host pool
Configurare le macchine virtuali
Per il pannello di configurazione delle macchine virtuali:
- Accettate i valori predefiniti oppure personalizzate il numero e le dimensioni delle VM.
- Immettete un prefisso per i nomi delle macchine virtuali. Ad esempio, se si immette il nome “WVD”, le macchine virtuali saranno denominate “WVD-0”, “WVD-1” e così via.
Figura 15: Scelta della dimensione e del numero delle VM da creare
Impostazioni della macchina virtuale
- Selezionate Image source e immettete le informazioni appropriate. Se scegliete di non usare dischi gestiti, selezionate l’account di archiviazione contenente il file con estensione vhd.
- Immettete il nome utente e la password per l’account di dominio che aggiungerà le VM al dominio di Active Directory locale. Gli stessi valori di nome utente e password verranno creati come account locali nelle macchine virtuali. È possibile reimpostare questi account locali in seguito.
- Selezionate la rete virtuale (VNET) che ha connettività con il server Active Directory, quindi scegliere una subnet in cui ospitare le macchine virtuali.
Figura 16: Configurazione delle VM, credenziali per il join a dominio delle VM e rete virtuale (VNET) a cui connetterle
Per il pannello di informazioni sul tenant di Desktop virtuale Windows:
- Immettete il nome del gruppo di tenant di Windows Virtual Desktop. Se non è stato pianificato uno specifico nome di gruppo di tenant, lasciare il valore predefinito “Default Tenant Group“.
- Immettete il nome del tenant di Windows Virtual Desktop in cui verrà creato il pool di host.
- Specificate il tipo di credenziali da usare per l’autenticazione come proprietario di Servizi Desktop remoto del tenant di Windows Virtual Desktop. Potete immettere le credenziali di un global administrator del tenant di Azure AD.
Figura 17: Indicazione del Windows Virtual Desktop tenant e dell’ Azure AD tenant da utilizzare
Per gli ultimi due pannelli:
- Nel pannello Riepilogo rivedete le informazioni sulla configurazione.
- Nel pannello Acquista rivedete le informazioni aggiuntive sull’acquisto effettuato da Azure Marketplace. Selezionate Crea per distribuire il pool di host.
Figura 18: Schermata riepilogativa e validazione del setup
Figura 19: Creazione dell’Host Pool di Windows Virtual Desktop
A seconda del numero di VM create, questo processo può richiedere circa 30 minuti.
Figura 20: Deployment dell’host pool di Windows Virtual Desktop
Le macchine che verranno create non avranno un indirizzo IP pubblico e non saranno raggiungibili direttamente da Internet, ma solo attraverso un reverse proxy di Microsoft, che garantisce un elevato livello di sicurezza. Come si può vedere nell’immagine sotto, la VM possiede solo l’IP provato della VNET a cui è collegata.
Figura 21: Le VM create non sono accessibili direttamente da Internet e non hanno un IP pubblico
Sarà possibile collegarsi alle VM create utilizzando RDP e usando come credenziali il nome utente e la password per l’account di dominio che avete utilizzato per aggiungere le VM al dominio di Active Directory locale. Gli stessi valori di nome utente e password sono stati creati come account locali nelle macchine virtuali. Se controllate la versione del sistema operativo noterete che è stato installato Windows 10 for Virtual Desktops. Potete a questo punto installare tutte le applicazioni che volete far utilizzare ai vostri utenti.
Figura 22: Nella VM verrà installato Windows 10 for Virtual Desktops
Verifica di accesso dell’utente al Windows Virtual Desktop Pool
Per poter verificare l’accesso al pool creato è necessario procurarsi il Remote Desktop Client per Windows, Android o iOS oppure utilizzare il client HTML5. Per scaricare il client Windows collegatevi al link Remote Desktop client e installatelo sulla vostra macchina. Nelle figure sotto sono mostrati tutti i passaggi relativi all’installazione
Figura 23: Accettazione delle licenza di Remote Desktop Client
Figura 24: Completamento dell’installazione del Remote Desktop Client
Lanciate il client ed effettuate la sottoscrizione al feed di Windows Virtual Desktop cliccando sul tasto Subscribe. Dopo esservi autenticati vi apparirà l’elenco dei Windows Virtual Desktop a cui l’utente può fare l’accesso. Nel mio caso il dominio locale di Active Directory usa i Federation Services per l’autenticazione (con Multi-Factor Authentication). Poiché mi sto collegando da una macchina fuori dominio mi viene richiesta l’autenticazione. Se il client da cui effettuate la connessione è in dominio allora potrete utilizzare il Single Sign-On (SSO).
Figura 25: Inserimento delle credenziali per l’autenticazione
Figura 26: Utilizzo di Active Directory Federation Services ed Azure Multi-factor Authentication
Figura 27: Connessione dell’account a Windows 10
Figura 28: Connessione al pool di Windows Virtual Desktop effettuata
Figura 29: Inserimento delle credenziali per la connessione al Remote Desktop
Figura 30: Connessione a Windows Virtual Desktop effettuata
Una volta che avete sottoscritto il feed, i Desktop Remoti e le RemoteApp saranno disponibili nel menù avvio di Windows
Figura 31: I Remote Desktop e le RemoteApp sono disponibili nel menù avvio di Windows
Connessione tramite client HTML5
Abbiamo già avuto modo di parlare del nuovo client HTML5 per Remote Desktop Services nell’articolo Remote Desktop Web Client in Windows Server 2016 e Windows Server 2019. Grazie a questa nuova funzionalità potete utilizzare un browser per potervi collegare ai vostri Windows Virtual Desktop. Collegatevi alla pagina http://aka.ms/wvdweb e utilizzate le credenziali di un utente che avete abilitato all’accesso dei Virtual Desktop per effettuare la connessione.
Figura 32: Connessione al pool di Windows Virtual Desktop creato
Figura 33: Login da parte dell’utente abilitato
Figura 34: Connessione al Windows Virtual Desktop tramite client HTML5 effettuata
Connessione tramite smartphone
Per connettersi tramite smartphone (nel mio caso Android) ho scaricato dal Play Store l’applicazione Microsoft Remote Desktop e ho aggiunto un nuovo Remote Resource Feed che punta all’indirizzo https://rdweb.wvd.microsoft.com. La connessione è molto veloce ed è davvero semplice. Nelle schermate sotto ci sono tutti i passaggi:
Aggiunta di altri utenti all’accesso di Windows Virtual Desktop
In qualsiasi momento è possibile permettere l’accesso ad altri utenti del vostro dominio di Azure AD
1 2 3 4 5 6 7 8 |
#Sign in to the Windows Virtual Desktop environment Add-RdsAccount -DeploymentUrl "https://rdbroker.wvd.microsoft.com" #Set the context to the Windows Virtual Desktop tenant group Set-RdsContext -TenantGroupName "<tenantgroupname>" #Add users to the desktop application group Add-RdsAppGroupUser "<tenantname>" "<hostpoolname>" "Desktop Application Group" -UserPrincipalName <userupn> |
Se volete aggiungere diversi utenti sarà necessario lanciare l’ultima cmdlet Add-RdsAppGroupUser diverse volte, una per ogni utente.
Figura 35: Aggiunta di un secondo utente al pool di Windows Virtual Desktop
Creazione delle RemoteApp
È anche possibile connettersi ai Windows Virtual Desktop utilizzando le RemoteApp.
Eseguite la cmdlet di PowerShell seguente per creare un nuovo gruppo vuoto di RemoteApp
1 |
New-RdsAppGroup <tenantname> <hostpoolname> <appgroupname> -ResourceType "RemoteApp" |
Eseguite la cmdlet seguente per ottenere un elenco di applicazioni installate all’interno delle VM del Windows Virtual Desktop pool. Prendere nota dei valori di FilePath, IconPath, IconIndex dell’applicazione da pubblicare.
1 |
Get-RdsStartMenuApp <tenantname> <hostpoolname> <appgroupname> |
Eseguite la cmdlet seguente per pubblicare una nuova RemoteApp nel gruppo di applicazioni creato prima
1 |
New-RdsRemoteApp <tenantname> <hostpoolname> <appgroupname> <remoteappname> -Filepath <filepath> -IconPath <iconpath> -IconIndex <iconindex> |
Eseguite la cmdlet seguente per concedere agli utenti l’accesso alle RemoteApp del gruppo.
1 |
Add-RdsAppGroupUser <tenantname> <hostpoolname> <appgroupname> -UserPrincipalName <userupn> |
Figura 36: Enumerazione delle applicazioni installate nelle VM
Figura 37: Pubblicazione di una RemoteApp (Wordpad) e assegnazione ad un utente
A questo punto sarà possibile collegarsi per verificare che il nuovo gruppo di RemoteApp sia disponibile per gli utenti abilitati. Per procedere alla verifica ho utilizzato il browser e dopo essermi collegato a http://aka.ms/wvdweb ho inserito le credenziali dell’utente che ho autorizzato.
Figura 38: Utente collegato tramite client HTML5 alla RemoteApp eseguita tramite Windows Virtual Desktop
Figura 39: Lancio della RemoteApp
Figura 40: Connessione alla RemoteApp effettuata con successo
Conclusioni
Windows Virtual Desktop permette di poter ospitare in Azure la nostra infrastruttura VDI o di RemoteApp, di poter assegnare agli utenti i desktop in modalità persistente o non-persistente, dedicata o multisessione, in maniera estremamente semplice e senza la necessità di dover esporre le nostre macchine virtuali direttamente ad Internet. Il Cloud ci permette di poter scalare facilmente in caso di necessità e ci assicura un livello di sicurezza difficilmente raggiungibile all’interno delle nostre aziende.
Potete dare un’occhiata anche a video interessanti di sessioni tenute ad Ignite:
- Scott Manchester’s Mechanics Live (20 minuti)
- Windows Virtual Desktop Overview (43 minuti)
- Windows Virtual Desktop Deep Dive (56 minuti)
- A tour of Microsoft Windows Virtual Desktop (20 minuti)
- Office in Virtual Desktop environments (53 minuti)
- New multi-session virtualization capabilities in Windows (32 minuti)