Mise en place de la double authentification (MFA) dans une architecture Bureau à distance (RDS)
L'authentification MFA est un processus permettant d'ajouter une identification supplémentaire lors de la connexion des utilisateurs.
Cela améliore donc la sécurité en réduisant le risque de compromission des mots de passe.
L'identification supplémentaire MFA peut être de différentes formes : SMS, empreinte digitale, périphérique dédié etc…
Dans ce guide ne cera évoqué que l'utilisation de l'application mobile Microsoft Authenticator lors de l'accès au bureau à distance.
- Mise à jour le 29 novembre 2020
Diagramme de l'architecture
Liens utiles
Prérequis
Licences
Comme d'habitude chez Microsoft rien de très clair au niveau du mode de licensing, mais il semble que l'on ait besoin d'une licence de type P1 ou P2.
Architecture
- Nous avons besoin de :
- Azure AD : un Active Directory qui se trouve dans le cloud Microsoft (j'ai utilisé une licence d'essai pour réaliser ce guide).
- Serveur AD et AD Connect pour synchroniser les utilisateurs locaux vers Azure AD.
- Serveur NPS : gère l'authentification et l'autorisation des demandes de connexion. Pour ça il est en relation avec Azure AD et l'Active Directory local.
- Serveur RDS : sur lequel se connecteront les utilisateurs de bureau à distance. J'ai installé tous les services sur un même et unique serveur à savoir : Service Web, Passerelle et Connection Broker.
Pas vraiment plus clair ici, mais il semble que nous avons besoin de n'avons pas besoin d'un serveur AD FS : lien.
Azure AD (partie I)
- Se connecter sur le portail Azure, et ouvrir Azure Active Directory :
Créer un locataire
- Si vous n'avez pas encore de locataire alors il faut en créer un :
- Choisir Azure Active Directory :
- Une fois la validation réussie, cliquer sur Créer :
Activer la licence Azure AD Premium P2
- Depuis le panneau à gauche, cliquer sur Licences :
- Puis sur Obtenir un essai gratuit :
- Et Activer la licence Azure AD Premium P2 :
- Après quelques minutes la licence Azure AD Premium P2 devrait apparaitre depuis la vue principale :
Créer un utilisateur AD Connect
Nous allons depuis le portail Azure créer un nouvel utilisateur qui sera utilisé pour synchroniser notre AD local (std.local) avec Azure AD (std2.onmicrosoft.com).
- Spécifier un Nom d'utilisateur et un Nom :
- Sur la même page, attribuer un Rôle en cliquant sur Utilisateur :
- Sélectionner le groupe Administrateur général et cliquer sur Sélecti… :
- Enfin cliquer sur Créer :
- Retourner dans la vue Tous les utilisateurs sélectionner l'utilisateur AD Connect et cliquer sur Réinitialiser le mot de passe :
- Cliquer sur Réinitialiser le mot de passe :
- Noter le Mot de passe temporaire (pas le mien le votre!) :
- Lorsque cela est demandé paramétrer un mot de passe :
Serveur AD
AD Connect
Téléchargement
Nous devons maintenant installer et configurer le logiciel AD Connect. Il est utilisé pour synchroniser les comptes utilisateurs AD local vers notre Azure AD.
Ce logiciel a besoin d'être installé une fois, sur un serveur AD.
- Se connecter sur le portail Azure et cliquer sur Azure AD Connect :
- Cliquer sur le lien Télécharger Azure AD Connect :
Installer AD Connect
- Exécuter le .exe sur le serveur Active Directory. Accepter la licence et cliquer sur Continuer :
- On peut choisir la configuration rapide ou Personnaliser si l'on souhaite modifier la configuration par défaut :
- Sélectionner Synchronisation de hachage du mot de passe :
- Utiliser les identifiants précédemment créés :
- Cliquer sur Ajout d'un annuaire :
- Entrer les identifiants administrateur pour l'AD local :
- Une fois terminé, cliquer sur Suivant :
- Cocher Continuer sans faire correspondre tous les suffixes UPN :
- Préciser les éléments à synchroniser (tous ou certains OUs) :
- Sélectionner Synchroniser tous les utilisateurs et les appareils :
- Enfin, sélectionner Démarrez le processus de synchronisation… et cliquer sur Installer :
- Après quelques secondes c'est terminé :
Ajouter du nom de domaine principal Azure dans l'AD local
- Ouvrir la console Domaines et approbations Active Directory :
- Faire un clic droit sur Domaines et approbations Active Directory :
- Ajouter le domaine principal Azure :
Création des utilisateurs RDS
- Ouvrir la console Utilisateurs et ordinateurs Active Directory :
- Créer un Nouvel Utilisateur :
- Select the Primary Azure Domain :
Azure AD (partie II)
Retourner sur le portail Azure, afin d'activer le MFA.
Activer le MFA
- Depuis le menu Tous les utilisateurs, cliquer sur Multi-Factor Authentication :
- Sélectionner les Utilisateurs pour lesquels on souhaite activer l'Authentification Multi-Facteur, et cliquer sur Activer :
- Confirmer en cliquant sur activer multi-factor authentication :
Serveur NPS (partie I)
Nous avons besoin d'un serveur NPS, il peut être installé sur le serveur AD mais dans ce guide je l'installerai dans une machine virtuelle dédiée.
Désactiver la configuration renforcée d'Internet Explorer
Je recommande de désactiver (au moins temporairement) la sécurité renforcée d'Internet Explorer car elle peut poser des problèmes au moment de l'authentification Azure lors de l'exécution du script PowerShell AzureMfaNpsExtnConfigSetup.
- Depuis le Gestionnaire de serveur > Serveur local :
- Désactiver la sécurité pour les administrateurs :
Installation du rôle NPS
Nous pouvons au choix installer le rôle NPS via PowerShell ou depuis l'interface graphique.
PowerShell
- Cela se fait en une seule et unique commande :
PS C:\Users\administrator.STD> Install-WindowsFeature NPAS -Restart -IncludeManagementTools
GUI
- Depuis le gestionnaire de serveur, cliquer sur Gérer > Ajouter des rôles et fonctionnalités :
- Choisir Installation basée sur un rôle ou une fonctionnalité :
- Sélectionner Network Policy and Access Server :
- Pas de Fonctionnalités à ajouter :
- Cocher Redémarrer le serveur de destination et cliquer sur Installer :
L'extension NPS pour Azure Multi-Factor Authentication
Il s'agit d'un module qui permet d'ajouter des fonctionnalités Azure MFA. Cela va permettre au serveur NPS de communiquer avec notre infrastructure Azure AD.
Installation
Script AzureMfaNpsExtnConfigSetup.ps1
Maintenant nous avons besoin d'exécuter le script AzureMfaNpsExtnConfigSetup.ps1 dans le but de configurer les certificates qui seront utilisés par l'extension NPS pour communiquer avec Azure.
- Depuis une console admin de PowerShell :
PS C:\Users\administrator.STD> cd 'c:\Program Files\Microsoft\AzureMfa\Config'
PS C:\Users\administrator.STD> .\AzureMfaNpsExtnConfigSetup.ps1
- Si demandé installer NuGet provider :
- Un pop-up d'authentification apparait, préciser les identifiants d'un compte administrateur du locataire, on pourra par exemple utiliser notre compte ad connect précédemment créé :
- Récupérer l'ID de locataire depuis le portail Azure AD :
- Coller l'ID de locataire dans la console PowerShell :
Pare-feu Windows
Lors de mes tests il m'a semblé que Windows (testés sous Windows Server 2019) n'ouvrait pas automatiquement les ports RADIUS (a re-tester). Donc dans ce cas, il faudra ouvrir les ports udp 1812, udp 1813, udp 1645, udp 1646 manuellement.
- Cela peut se faire avec la commande suivante :
PS C:\Users\administrator.STD> netsh advfirewall firewall add rule name="NPS" dir=in localport=1812,1813,1645,1646 remoteport=0-65535 protocol=UDP action=allow remoteip=any localip=any
Serveur RDS
- Ouvrir le Gestionnaire de passerelle des services Bureau à distance :
- Faire un clic droit sur RDS (local), puis sur Propriétés :
- Depuis l'onglet Magasin de stratégies d'autorisation des connexions aux services Bureau à distance, sélectionner Serveur central exécutant le serveur NPS, et Ajouter le serveur NPS :
- Entrer un mot de passe, il sera partagé entre les serveurs RDS et NPS :
- Ouvrir la console de management NPS :
- Depus la console de management NPS, étendre la vue Client et serveurs RADIUS, puis sélectionner Groupes de serveurs RADIUS distants, enfin, faire un clic droit sur TS GATEWAY SERVER GROUP et aller dans Propriétés :
- Choisir le serveur NPS puis cliquer sur Modifier :
- Modifier les valeurs dans l'onglet Équilibrage de charge :
- Toujours depuis la console de management NPS, étendre la vue Stratégies > Stratégies de demandes de connexion, puis faire un clic droit sur TS GATEWAY AUTHORIZATION POLICY et cliquer sur Propriétés :
- Depuis l'onglet Conditions, cliquer sur Ajouter :
- Sélectionner Restrictions relatives aux jours et aux heures et cliquer sur Ajouter :
- Autoriser pour toutes les heures, tous les jours et cliquer sur OK :
- Supprimer la condition NAS Port Type :
- Depuis l'onglet Paramètres, cliquer sur Authentification et vérifier que l'authentification est paramétrée sur Transférer les demandes au groupe de serveurs RADIUS distants… :
Serveur NPS (partie II)
- Ouvrir la console de management NPS :
Enregistrer le serveur dans Active Directory
- Enregistrer le Serveur NPS dans Active Directory. Pour cela, faire un clic droit sur NPS (Local), et cliquer sur Inscrire un serveur dans Active Directory :
- Cliquer deux fois sur OK :
Créer un Client Radius
- Toujours depuis la console NPS, faire un clic droit sur Clients RADIUS et cliquer Nouveau pour créer un Client RADIUS :
- Depuis la fenêtre Nouveau client RADIUS, renseigner : Nom convivial, et le nom DNS et l'IP du serveur RDS. Entrer également le même mot de passe que celui entré précédemment (sur le serveur RDS). Enfin cliquer sur OK pour valider :
Création d'une Stratégie réseau
- Étendre la vue Stratégies > Stratégies réseau, et faire un clic droit sur la stratégie Connections to other access servers et sélectionner Stratégie dupliquée :
- Faire un un clic droit sur Copy of Connections to other access servers, et sélectionner Propriétés :
- Dans les Propriétés, configurer Nom, activer la stratégie et Accorder l'accès… :
- Dans l'onglet Conditions vérifier la présence d'une condition non restrictive :
- Dans l'onglet Contraintes vérifier que la case Autoriser les clients à se conneter… soir bien cochée :
Client RDS
Périphérique Android / Application Microsoft Authenticator
Microsoft Authenticator est une application Android et iOS pour smartphone. Elle permet une authentification à double facteur par l'utilisation d'un téléphone.
L'application peut se trouver dans la plupart des magasin d'applications.
- Encore une fois sur Suivant :
- Cliquer sur le lien d'association :
Vérifier la méthode d'authentification par défaut
Il faut vérifier que la méthode d'authentification par défaut soit Microsoft Authenticator sinon MFA peut à la place très bien envoyer des SMS, et cela ne pourra pas fonctionner lors de l'authentification RDS.
- Depuis le menu Security info, vérifier que l'application Microsoft Authenticator soit bien la méthode d'authentification par défaut :
Client RDS
- Se connecter au bureau à distance via son navigateur internet, et utiliser ses identifiants Azure AD :
- Cliquer sur le raccourcis RDS :
Installer les certificats
- Si le message «This computer can't verify the identity…» apparait, cliquer sur View Certificate… :
- Aller dans l'onglet Détails, et cliquer sur Copier vers Fichier…
- Cocher Include all certificates in the… :
- Préciser le chemin où enregistrer le Certificat :
- Faire un clic droit sur le Certificat nouvellement exporté et cliquer sur Installer le Certificat :
- Choisir Déplacer tous les certificats dans le magasin et cliquer sur Parcourir :
- Choisir le magasin Autorités de certification racine de confiance :
- Entrer ses identifiants du domaine local :
- Sur l'application Microsoft Authenticator, et si tout se passe bien, une demande d'autorisation de la connexion devrait apparaitre :
Dépannage
- Je reçois un SMS mais l'application Microsoft Authenticator ne me propose pas l'approbation : Check default sign-in method
- Journaux Windows à vérifier :
- Serveur RDS :
- Serveur NPS :
Sources