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.

Diagramme de l'architecture

RDS MFA Diagram

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.

Les différentes licences Azure

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 Licensing

Azure AD (partie I)

  • Se connecter sur le portail Azure, et ouvrir Azure Active Directory :
Azure Portal | Azure Active Directory icon

Créer un locataire

  • Si vous n'avez pas encore de locataire alors il faut en créer un :
Azure Portal | Create a tenant
  • Choisir Azure Active Directory :
Azure Portal | Select a tenant type
  • Créer un locataire :
Azure Portal | Configure your new directory
  • Une fois la validation réussie, cliquer sur Créer :
Azure Portal | Create a tenant, validation passed

Activer la licence Azure AD Premium P2

  • Depuis le panneau à gauche, cliquer sur Licences :
Azure Portal | Create a tenant, validation passed
  • Puis sur Obtenir un essai gratuit :
Azure Portal | Create a tenant, validation passed
  • Et Activer la licence Azure AD Premium P2 :
Azure Portal | Create a tenant, validation passed
  • Après quelques minutes la licence Azure AD Premium P2 devrait apparaitre depuis la vue principale :
Azure Portal | Create a tenant, validation passed

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

Azure Portal | Create a new user
  • Spécifier un Nom d'utilisateur et un Nom :
Azure Portal | Create a new user
  • Sur la même page, attribuer un Rôle en cliquant sur Utilisateur :
Azure Portal | Create a new user
  • Sélectionner le groupe Administrateur général et cliquer sur Sélecti… :
Azure Portal | Create a new user
  • Enfin cliquer sur Créer :
Azure Portal | Create a new user
  • Retourner dans la vue Tous les utilisateurs sélectionner l'utilisateur AD Connect et cliquer sur Réinitialiser le mot de passe :
Azure Portal | Create a new user
  • Cliquer sur Réinitialiser le mot de passe :
Azure Portal | Create a new user
  • Noter le Mot de passe temporaire (pas le mien le votre!) :
Azure Portal | Create a new user Azure Portal | Create a new user
  • Lorsque cela est demandé paramétrer un mot de passe :
Azure Portal | Create a new user

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 :
Azure Portal | Azure AD Connect Menu
  • Cliquer sur le lien Télécharger Azure AD Connect :
Azure Portal | Download Azure AD Connect

Installer AD Connect

  • Exécuter le .exe sur le serveur Active Directory. Accepter la licence et cliquer sur Continuer :
Azure AD Connect | Welcome to Azure AD Connect
  • On peut choisir la configuration rapide ou Personnaliser si l'on souhaite modifier la configuration par défaut :
Azure AD Connect | Express Settings
  • Cliquer sur Installer :
Azure AD Connect | Install required components
  • Sélectionner Synchronisation de hachage du mot de passe :
Azure AD Connect | Install required components
  • Utiliser les identifiants précédemment créés :
Azure AD Connect | Install required components
  • Cliquer sur Ajout d'un annuaire :
Azure AD Connect | Install required components
  • Entrer les identifiants administrateur pour l'AD local :
Azure AD Connect | Install required components
  • Une fois terminé, cliquer sur Suivant :
Azure AD Connect | Install required components
  • Cocher Continuer sans faire correspondre tous les suffixes UPN :
Azure AD Connect | Install required components
  • Préciser les éléments à synchroniser (tous ou certains OUs) :
Azure AD Connect | Install required components
  • Cliquer sur Suivant :
Azure AD Connect | Install required components
  • Sélectionner Synchroniser tous les utilisateurs et les appareils :
Azure AD Connect | Filter users and devices
  • Cliquer sur Suivant :
Azure AD Connect | Optional features
  • Enfin, sélectionner Démarrez le processus de synchronisation… et cliquer sur Installer :
Azure AD Connect | Ready to configure
  • Après quelques secondes c'est terminé :
Azure AD Connect | Install required components

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 :
Azure Portal | Create a tenant, validation passed
  • Sélectionner les Utilisateurs pour lesquels on souhaite activer l'Authentification Multi-Facteur, et cliquer sur Activer :
Azure Portal | Create a tenant, validation passed
  • Confirmer en cliquant sur activer multi-factor authentication :
Azure Portal | Create a tenant, validation passed

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 :
Server manager dashboard, Add Roles and Features
  • 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

NPS Extension For Azure MFA Setup
  • C'est tout :
NPS Extension For Azure MFA Setup

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 :
Run, Open, tsgateway.msc
  • Faire un clic droit sur RDS (local), puis sur Propriétés :
Run, Open, tsgateway.msc
  • 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 :
Run, Open, tsgateway.msc
  • Entrer un mot de passe, il sera partagé entre les serveurs RDS et NPS :
Run, Open, tsgateway.msc
  • 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 :
TS GATEWAY SERVER GROUP Properties, general tab
  • Modifier les valeurs dans l'onglet Équilibrage de charge :
Edit RADIUS Server, load balancing tab
  • 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.

L'application peut se trouver dans la plupart des magasin d'applications.

  • Puis son mot de passe :
  • Cliquer sur Suivant :
  • 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…
  • Cliquer sur Suivant :
  • Cocher Include all certificates in the… :
  • Préciser le chemin où enregistrer le Certificat :
  • Cliquer sur Terminer :
  • Faire un clic droit sur le Certificat nouvellement exporté et cliquer sur Installer le Certificat :
  • Cliquer sur Suivant :
  • Choisir Déplacer tous les certificats dans le magasin et cliquer sur Parcourir :
  • Choisir le magasin Autorités de certification racine de confiance :
  • Cliquer sur Suivant :
  • Cliquer sur Terminer :
  • Cliquer sur Oui :
  • 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 :
    • Windows RDS event viewer
    • Serveur NPS :
    • Windows NPS event viewer

Sources

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :