Azure – Windows Virtual Desktop Cloud Only (Partie 1)

Windows-Virtual-Desktop-logo-WVD

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.

PICTO_AVERTISSEMENT

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)

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.
WVD-PREREQ-0010
AAD Groups WVD

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.

WVD-RG0010
NEW RG

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”.

PICTO_AVERTISSEMENT

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.

WVD-AADDS-0080
AADDS Deploying

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.

WVD-AADDS-0090
AADDS Running

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.

WVD-AADDS-0100
DNS Fix
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.

WVD-AADDS-0110
vNet config DNS

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.

WVD-AADDS-0130
AADDS sync scope
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.

WVD-AADDS-0140
AADDS admins
Synchronisation du mot de passe des utilisateurs

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 :

WVD-AADDS-0150
AAD user account

Sélectionner “Changer le mot de passe”.

WVD-AADDS-0160
Changer le mot de passe

Renseigner un nouveau mot de passe

WVD-AADDS-01700
new password

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”.

Bastion settings

Cliquer sur “Create” pour lancer la création du bastion.

WVD-BASTION-0040
AADDS sync scope

En quelques secondes, le bastion est prêt, nous allons pouvoir nous connecter aux VM a travers celui-ci.

WVD-BASTION-0050
AADDS sync scope

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”.

WVD-MGT-0010
Virtual machine

Cliquer sur “Add” –> “Virtual machine”.

WVD-MGT-0020
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.

WVD-MGT-0050
VM network

En quelques minutes, la VM est déployée.

WVD-MGT-0060
VM 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.

WVD-MGT-0070
Connexion par 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.

WVD-MGT-0080
Credentials

Voilà nous sommes connecter à travers le bastion à la VM de management.

WVD-MGT-0090
Connecté à 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”.

WVD-MGT-0110
Domaine

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.

Changer l'UPN par celui du domaine local
WVD-MGT-0130
Joint

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.

WVD-MGT-0140
Installation des RSAT
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
WVD-MGT-0100
Installation des RSAT

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.

WVD-AD-0010
Arbo AD
WVD-AD-0020
Objets sync from AAD
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…”.

WVD-AD-0040
Delegate Control...
WVD-AD-0050
Choix du compte de service
WVD-AD-0060
Custom
WVD-AD-0070
Computer objects
WVD-AD-0081
Pas full control
Finish

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 :

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)\
Copier le répertoire “PolicyDefinitions” dans le “Sysvol” de votre domaine.

WVD-AD-0030
Création du magasin central

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”.

WVD-STK-0010
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”.

PICTO_AVERTISSEMENT

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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *