Nous allons voir le déploiement de la solution Windows Virtual Desktop (WVD) dans un environnement Cloud Only. Si vous possédez déjà un tenant Azure avec une liaison vers votre infrastructure On-Prems, les principes sont les mêmes à l’exception de la partie Active Directory.
En effet, dans mon cas, je ne possède pas d’environnement On-Prems et utilise uniquement les solutions Cloud de Microsoft.
Nous allons utiliser les ressources contenues dans Azure AD et créer coté Azure un ressource group dédié pour l’environnement WVD. Il s’agit d’une des architectures possibles, il en existe d’autres. L’approche est plutôt didacticiel, nous allons beaucoup utiliser l’interface graphique, bien entendu beaucoup d’étapes peuvent être automatisées à l’aide d’outils adaptés.
Je vais essayer de détailler le plus possible le construction de l’environnement du lab, bien que l’objet de ce post soit Windows Virtual Desktop, je vais essayer de vous montrer la mise en place des prérequis à ce service notamment AADDS et le compte de stockage Azure. Ce qui représente un travail considérable.
Le scénario exposé ci-dessous ainsi que la configuration réalisé est à titre d’exemple. Selon la topologie de votre entreprise et les règles notamment au niveau sécurité, des adaptations sont à prévoir.
De plus pour limiter les couts, j’utilise des machines à faible ressources et un niveau de disponibilité faible. Ces paramètres seront à revoir pour un passage en production.
Sommaire
- Présentation de Windows Virtual Desktop (WVD)
- Présentation du lab
- Création du ressource group
- Création du vNet et des Subnets
- Création de Azure Active Directory Domain Service (AADDS)
- Création du bastion d’administration
- Création de la machine d’administration
- Création de la machine
- Connexion à la VM de MANAGEMENT
- Joindre la machine dans le domaine
- Connexion avec un compte du domaine
- Installation des RSAT
- Configuration fonctionnelle de l’AD
- Création de l’arborescence AD
- Mise en place de la délétation pour le compte de service
- Mise en place du magasin central ADMX /ADML
- Création du compte de stockage SMB
- Création du compte de stockage
- Configuration de l’accès au stockage
- Accès depuis une machine Windows
- Gestion des ACL NTFS
- Création de la Shared Image Galleries (SIG)
- Point de situation
- Liens annexes
Présentation de Windows Virtual Desktop (WVD)
Avant de commencer, je me dois de vous présenter ce qu’est Windows Virtual Desktop (WVD pour les intimes).
Il s’agit d’un service Azure permettant de mettre à dispositions de vos utilisateurs des bureaux ou des application virtualisés. La solution est très proche de ce que nous pouvions retrouver On-Prems avec les solution Remote Desktop Service. A la grande différence, que cette solution est hébergée dans Azure, ce qui permet de bénéficier de la sécurité qu’offre AAD comme le MFA. De plus l’accès via internet est géré par Microsoft.
Présentation du lab
L’ensemble du lab est stocké dans un seul ressource group “RG_WVD_TED”.
Au niveau réseau, nous utiliserons un VNET “VNET_WVD” dont l’espace d’adressage sera “10.10.0.0/16”. Celui-ci sera découpé en sous-réseaux selon les besoins :
- aadds-subnet [10.10.0.0/27] –> Azure Active Directory Domain Services.
- AzureBastionSubnet [10.10.0.32/27] –> Bastion pour le management.
- SubNet_Infra [10.10.0.64/26] –> Pour les services infra type VM de management ou End-point (SMB).
- SubNet_WVD [10.10.1.0/24] –> Les clients WVD.
Du coté Azure AD :
Nus allons utiliser les groupes spécifique suivants :
- WVD_Admins –> Administrateurs de la ferme WVD.
- WVD_Users –> Utilisateurs des services WVD.
- WVD_ServicesAccounts –> Comptes de services pour WVD.
Et les utilisateurs suivants :
- svc-wvdjoin@teddycorp.net —> qui sera le compte de service pour joindre les machines dans le domaine AADDS.
Création du ressource group
Pour commencer, nous allons créer un nouveau resource groupe “RG_WVD_TED”.
Pour se faire se rendre sur le portail Azure et se loguer avec un compte ayant les droits suffisant.
Puis créer un nouveau ressource group.
Le nouveau ressource group est créé, vide et prêt à l’emploi.
Création du vNet et des Subnets
Nous allons ajouter le VNET ainsi que les subnet à notre ressource group.
Comme indiqué plus haut, nous allons ajouter les sous réseau :
- aadds-subnet [10.10.0.0/27] –> Azure Active Directory Domain Services.
- AzureBastionSubnet [10.10.0.32/27] –> Bastion pour le management.
- SubNet_Infra [10.10.0.32/26] –> Pour les services infra type VM de management ou End-point (SMB).
- SubNet_WVD [10.10.1.0/24] –> Les clients WVD.
Se rendre dans tous les services, recherché “Virtual network”.
Cliquer sur “Add”.
Dans le blade “Basics”, renseigner le resource group, le nom du vNet et ça localisation.
Dans le blade “IP Addresses”, renseigner le plan d’adressage que nous avons défini plus haut.
Se rendre directement dans “Review + create” puis cliquer sur “Create”.
Attendre la fin du déploiement. La partie réseau est configurée.
Création de Azure Active Directory Domain Service (AADDS)
Maintenant que nous avons un ressource group, nous allons ajouter un domaine AD.
Ce domaine est porté par le service Azure “Azure AD Domain Services”.
Notons quelques limitations de ce service :
- Ce service est unique à la subscription Azure. Malheureusement, vous ne pouvez pas avoir plusieurs fois ce service. (Questions fréquentes AADDS)
- Le SSO entre AADDS et AAD n’est pas supporté.
Déploiement du service AADDS
Pour créer ce service, recherché dans les service le service nommé “Azure AD Domain Services”.
Puis une fois le service sélectionné, cliquer sur “Add”.
Dans le blade “Basics”, renseigner les informations concernant le ressource group, le nom du domaine à créer, la localisation de l’instance …
Dans mon cas, le domaine sera un domaine non routable : teddycorp.local.
Le SKU, correspond à la taille du domaine à provisionner, pour ce lab, : standard.
https://azure.microsoft.com/en-us/pricing/details/active-directory-ds/
Le type de foret à déployer : User.
Dans le blade “Networking”, séléctionner le vNet ainsi que le subnet que nous avons préalablemant créé.
Dans le blade “Administration”, laisser les options par défaut.
Dans le blade “Synchronization”, je fais le choix de ne répliquer qu’une partie de mes utilisateurs AAD.
Le service AADDS est payant à l’utilisateur, du coup, je ne dais ajouter que le utilisateurs du service WVD ainsi que les admins / compte de service.
Dans “Review + create”, cliquer sur “Create” pour lancer le déploiement du service AADDS.
Le déploiement du service va durer environ une heure. Vérifier l’état du déploiement directement dans le service AADDS, l’état passera de “Deploying” à “Running” lorsque le service est opérationnel.
Après environ une heure de déploiement, le service est déployé. Son status passe en “Running” 🙂
Nous pouvons noté la presence d’un warning indiquant qu’il est nécessaire de configurer la partie DNS du vNet pour que celui-ci pointe sur les DNS du service AADDS.
En cliquant sur le warning, vous pouvez consulter le détail de celui-ci.
Vous pouvez noter les adresses IP des serveurs DNS du service AADDS.
Configuration du service AADDS
Maintenant que le service AADDS est déployé et en cours d’exécution, nous allons pouvoir réaliser la configuration de celui-ci.
Pour commencer, la configuration du DNS. Nous allons configurer les adresses IP des serveurs DNS du services AADDS comme serveurs DNS pour le vNet.
Pour ce faire, naviguer dans :
- vNet (VNET_WVD) –> “Settings” –> “DNS servers”.
Cocher “Custom” et ajouter les IP des contrôleurs de domaine du services AADDS.
Si nous retournons sur le service AADDS, nous pouvons constater que le warning a disparu.
Dans la partie “Synchronization”, nous pouvons vérifier les groupes AAD qui sont synchronisés vers AADDS. Il est possible d’ajouter d’autres groupes /utilisateurs à synchroniser au besoin a partir de cette page.
Ajout des admins AADDS (AAD DC Administrators)
Vous pouvez constater qu’un nouveau groupe est apparue dans votre Azure AD “AAD DC Administrators”.
Vous pouvez peupler ce groupe afin d’obtroyer le droit “administrateur du domaine” dans le domaine AADDS. Vérifier les membres de ce groupes et ajouter les comptes des utilisateurs devant être admin du domaine si besoin.
Synchronisation du mot de passe des utilisateurs
Comme indiqué dans le KB Microsoft ci-dessous :
Azure AD ne stock pas les mot de passe des utilisateurs de manière réversible, ni les hash de ceux-ci au format NTLM /Kerberos. Pour que ces hash soient stockés et synchronisés dans le service AADDS, il est nécessaire que les utilisateurs concernés change/reset leur mot de passe AAD.
Pour ce faire, se rendre dans le compte de l’utilisateur :
Sélectionner “Changer le mot de passe”.
Renseigner un nouveau mot de passe
La commande Powershell ci-dessous permet de lister les compte utilisateurs présent dans AADDS et connaitre si le mot de passe est présent.
Pour l’utiliser, il est nécessaire de continuer la configuration du LAB afin que nous ayons accès à la machine de management.
Get-ADUser -f * -properties PasswordLastSet | select SamAccountName,PasswordLastSet
Création du bastion d'administration
Dans cette étape, nous allons créer un bastion d’aminitration afin de permettre la connexion à nos machines en toute sécurité.
Dans tous les services, rechercher “Bastion”.
Cliquer sur “Add” pour créer un nouveau bastion.
Dans le blade “Basic”, renseigner les information concernant le ressource group, le nom du bastion …
Concernant la partie réseau, sélectionner le vNet ainsi que le subnet que nous avons créé au préalable.
Notons que le subnet doit porter le nom : “AzureBastionSubnet” et doit avoir un masque en “/27”.
Cliquer sur “Create” pour lancer la création du bastion.
En quelques secondes, le bastion est prêt, nous allons pouvoir nous connecter aux VM a travers celui-ci.
Création de la machine d'administration
Afin de pouvoir administrer les services AADDS, nous allons avoir besoin d’une machine d’aministration.
Il s’agit d’une simple machine Windows 2019 dans notre cas. Nous allons joindre cette machine dans le domaine et installer les RSAT.
Création de la machine
Pour créer notre machine d’administration, se rendre dans tous les services et recherché “Virtual machines”.
Cliquer sur “Add” –> “Virtual machine”.
Dans le blade “Basic”, sélectionner le ressource group, l’image et la taille de la VM.
Dans le blade “Disks”, laisser les options par défaut.
Au niveau du blade “Networking”, sélectionner le vNet et le subnet “Subnet_Infra”. Puis se rendre directement dans le blade “Review + create”. Puis lancer la création de la VM.
En quelques minutes, la VM est déployée.
Connexion à la VM de MANAGEMENT
Pour se connecter à notre VM de management, nous allons utiliser le bastion que nous avons créé précédemment.
Se rendre sur la VM –> Connect –> Bastion.
Dans la fenêtre de connexion renseigner le compte et mot de passe de l’utilisateur local créé lors de la création de la VM.
Voilà nous sommes connecter à travers le bastion à la VM de management.
Joindre la machine dans le domaine
La jonction de la machine dans le domaine se fait de manière “traditionnelle”, il faut juste avoir en tête que le compte utilisé doit être “administrateur du domaine” et le mot de passe de ce compte doit avoir été synchronisé.
Se rendre dans le server manager –> Workgroup –> change –> domain.
Saisir le nom du domaine : “teddycrop.local”.
J’utilise mon compte admin.
Ce compte est un compte provient d’AzureAD, son mot de passe a été changé afin que le hash de celui-ci soit synchronisé dans AADDS. J’utilise l’UPN local de mon domain AADDS et non l’UPN de mon AAD.
Dès que le server est joint dans le domaine, le redémarrer.
Connexion avec un compte du domaine
Dès que le server d’administration est joint dans le domaine AADDS “teddycorp.local”, vous pouvez vous authentifier sur celui-ci avec un compte du domaine. Pour se faire, depuis le bastion, renseigner votre compte avec l’UPN du domaine AADDS.
Installation des RSAT
Maintenant, nous allons installer sur le server d’aministration les outils d’aministration.
Lancer la commande Powershell suivante :
Install-WindowsFeature -Name RSAT-DNS-Server,GPMC,RSAT-AD-Tools
Configuration fonctionnelle de l'AD
Création de l'arborescence AD
Maintenant, nous pouvons administrer le LDAP du services AADDS depuis la machine de management à l’aide des consoles Microsoft.
Je vais créer une petite arborescence dans l’AD où seront provisionnés les comptes des machines WVD.
Mise en place de la délétation pour le compte de service
Réaliser une délégation sur l’OU où vous souhaitez enregistrer les objets ordinateurs dans l’AD (ici : “OU=WVD,OU=Computers,OU=Teddycorp,DC=teddycorp,DC=local”). Cette délégation va permettre à votre compte de service (ici : “svc-wvdjoin@teddycorp.local”) de réaliser la jonction des machines WVD dans le domaine.
Se positionner sur l’OU et réaliser un clic droit et sélectionner “Delegate Control…”.
Voilà, la délégation pour le compte de service est terminée.
Mise en place du magasin central ADMX /ADML
Dans cette étape, nous allons récupérer les modèles d’administration pour Windows 10 et 0ffice sur le site de Microsoft. Puis ajouter ceux-ci dans le Sysvol du domaine pour créer notre magasin central.
Les modèles peuvent être téléchargés en suivant les liens suivants :
- https://www.microsoft.com/en-us/download/102157
- https://www.microsoft.com/en-us/download/details.aspx?id=49030
Nous allons commencer par les modèles d’adinistration de Windows 10 (vous pouvez utiliser d’autre version des modèles d’administration selon la version en cours de Windows 10).
Par défaut, les modèles sont installé dans le répertoire :
- C:\Program Files (x86)\Microsoft Group Policy\Windows 10 October 2020 Update (20H2)\
Réaliser la même opération avec les modèles d’adinistrations d’Office (Ajouter les modèles ADMX /ADML dans le répertoire “PolicyDefinitions”).
Vous trouverez plus d’information sur la création /mise à jour du magasin central dans le post :
Vous pouvez aussi ajouter les modèles d’administration pour le client OneDrive :
Création du compte de stockage SMB
La gestion des profils utilisateurs est réalisé par la technologie FSlogix. Nous détaillerons cette technologie plus tard dans le déploiement.
Cependant, FSLogix stock le profil utilisateur dans des conteneurs au format VHD / VHDX. Il existe différentes architectures, dans notre cas, le choix s’est porté sur la solution la plus “traditionnelle”, l’utilisation d’un compte de stockage avec un partage SMB où sont entreposé les fichiers de profil.
Nous allons mettre en place cette environnement.
Création du compte de stockage
Depuis tous les services, recherché et sélectionner “Storage accounts”.
Cliquer sur “Add”.
Dans le blade “Basic”, renseigner le ressource group, le nom du compte de stockage et vérifier la version “StorageV2”.
Le nom du compte de stockage ne doit pas dépasser 15 caractères, il s’agit d’une limitation liée à NetBIOS vu que le compte de stockage va être joint dans le domaine Active Directory.
Dans le blade “Networking”, créer un private endpoint qui sera connecté dans le sous réseau “SubNet_Infra”.
Dans le blade “Advanced”, activer l’option “Large file shares”.
Puis créer le compte de stockage.
Après quelques minutes, le compte de stockage est pret.
Cliquer sur “Go to ressource” afin d’accèder au compte de stockage.
Configuration de l'accès au stockage
Nous allons configurer l’accès des utilisateur au compte de stackage.
Pour ce faire, se rendre dans :
“Access Control (IAM)” –> “Role assignments” –> “Add”.
Sélectionner “Add role assignment”.
Attribuer le role “Storage File Data SMB Share Elevated Contributor” pour le groupe admins WVD (ici : “WVD_Admins”).
Attribuer le role “Storage File Data SMB Share Contributor” pour le groupe des utilisateurs WVD (ici : “WVD_Users”).
Voici les droits que nous avons octroyer sur le compte de stockage.
Nous allons joindre le compte de stockage dans le domaine AADDS, pour se faire, se rendre dans la partie “Configuration” du compte de stockage et activer l’option “Identity-based access for file shares”.
Optionnel : afin de pouvoir configurer le share SMB depuis mon PC, je vais ajouter mon adresse IP public dans le règles FW. Sinon, je suis obligé d’utiliser la console Azure depuis la machine de management et passer par le endpoint que nous avons créé précédemment.
Pour créer le partage SMB, revenir sur “Overview” et cliquer sur “File shares”.
Cliquer sur “File share”.
Nommer le partage et cliquer sur “Create”.
Nous en avons finis avec la configuration du partage depuis la console Azure.
Nous allons tester l’accès à notre partage puis configurer les ACL NTFS.
Accès depuis une machine Windows
Maintenant que le partage SMB est créé, il est utilisable depuis les machines. Pour monter le partage depuis notre machine d’administration.
Se rendre dans : “Overview” –> “Connect”.
Vous avez la possibilité de copier le script fournis afin de monter un lecteur réseau ou juste de récupérer le chemin UNC du partage et d’accéder à celui-ci via ce chemin.
Gestion des ACL NTFS
Pour terminer la configuration du partage, nous allons configurer les ACL NTFS sur celui-ci.
Le détail des ACL à positionner sont détaillés dans le KB suivant :
Dans le partage, clic droit, propriétés.
Dans l’onglet “Security” –> “Edit” –> “Add”.
Ajouter le groupe admin de l’environnement WVD (ici : TEDDYCORP\WVD_Admins) avec les droits “Full control”.
Répéter le même opération avec le groupe utilisateur de WVD (ici : “TEDDYCORP\WVD_Users”) en octroyant les droits de modification uniquement sur la racine du répertoire uniquement.
Propager le droit de modification sur “Propriétaire” sur les sous-répertoires et les fichiers.
Vous trouverez ci-dessous le résumé des ACL déposées :
Il est possible de faire un petit test en créant un répertoire ou fichiers dans le partage SMB, si vous actualisez la console Azure, le répertoire apparait dans celle-ci.
Voilà le compte de stockage, le share SMB est les autorisations ont été positionnées. La mise en place des prérequis du lab touche à ça fin.
Création de la Shared Image Galleries (SIG)
Pour les futures images personnalisées, nous allons créer une gallérie d’image partagées ou une Shared Image Galleries (SIG).
Se rendre dans tous les services et recherché “Shared Image Galleries”.
Cliquer sur “Add”.
Renseigner les information sur le ressource groupe, la localisation de la galerie et son nom.
Cliquer sur “Create” pour lancer la création de la galerie.
Point de situation
A ce stade, nous avons créé l’ensemble des couches basses de notre infrastructure.
Nous avons :
- Un plan d’adressage pour l’ensemble des machines.
- Un bastion pour les connexions admin.
- Un domaine AADDS.
- Une machine d’aministration.
- Un compte de stockage Azure avec un share SMB où seront stockés les profils.
- Une galerie d’images personnalisées.
Notre infrastructure est enfin prêtes pour le déploiement de la solution WVD dans la seconde partie.
Si nous jetton un oeil dans le contenu du ressource group, il commence a y avoir quelques objets.
La suite est en cours de rédaction. Je vous indiquerais le lien dès que celle-ci sera terminée. Néanmoins, si vous êtes impatient de continuer et de découvrir WVD par vous même vous pouvez déployer votre infrastructure sur les bases que nous avons construites sans plus attendre.