Mise en place de la double authentification (MFA) dans une architecture Bureau à distance (RDS)
Mise à jour le 29 nov. 2020
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.
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 :
Créer un locataire :
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 :
Cliquer sur Installer :
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) :
Cliquer sur Suivant :
Sélectionner Synchroniser tous les utilisateurs et les appareils :
Cliquer sur Suivant :
Enfin, sélectionner Démarrez le processus de synchronisation… et cliquer sur Installer :
Après quelques secondes c'est terminé :
Ajout 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 PowerShellAzureMfaNpsExtnConfigSetup.
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.
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é :
Choisir le serveur NPS :
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
Télécharger et installer NPS Extension For Azure MFA :
C'est tout :
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.
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 :
Enfin, cliquer sur Non :
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.
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.