Authentification multi facteurs avec Azure Multi-Factor Authentication – partie 3 : Windows Server 2012 R2 – Remote Desktop Gateway

Continuons notre série d’articles décrivant la mise en place de la solution Azure Multi-Factor Authentication pour déployer une authentification d’entreprise multi facteur. 

Pour rappel, cet article fait partie d’une série :

  1. Introduction à Windows Azure Multi-Factor Authentication
  2. Installation et paramétrage du serveur Windows Azure Multi Factor Authentication
  3. Installation et paramétrage de Remote Desktop Gateway (vous êtes ici)
  4. Installation et paramétrage du portail utilisateur
  5. Installation et paramétrage pour l’application mobile
  6. Installation et paramétrage pour ADFS

Nous avons précédemment déployé un serveur d’authentification WAMFA (acronyme pas forcément officiel). Intéressons nous maintenant à la protection d’une connexion à un serveur Remote Desktop Session Host via la passerelle Remote Desktop Gateway.

Mise en œuvre de l’authentification multi facteur pour Remote Desktop Gateway

L’environnement d’évaluation que nous allons mettre en place est le suivant :

  • DUB-SRV1 : serveur Remote Desktop Session Host qui héberge la session Remote Desktop que nous souhaitons protéger
  • DUB-SRV2 : serveur Remote Desktop Gateway : permet d’accéder à un serveur Remote Desktop Session Host ou d’administration à distance, en encapsulant le protocole RDP dans HTTPS. Ce composant effectue également le contrôle d’accès et l’authentification des utilisateurs (en contactant l’AD)
  • DUB-SRV4 : serveur Azure Multi Factor Authentification : autorise l’accès à l’application. Celui-ci a été configuré de manière basique dans l’article 2 de cette série.

topolab_thumb4_thumb

Notons quelques points importants de cette topologie :  

  • Le service RDG (situé sur DUB-SRV2) redirige ses demandes d’authentification au serveur MFA (DUB-SRV4).
  • Une fois son travail effectué le serveur MFA renvoi les paquets au serveur NPS (installé par défaut) sur DUB-SRV2
  • le serveur MFA doit être configuré en tant que proxy pour l’authentification. Cela veut dire que pour les déploiements d’entreprise il faudra prévoir une ferme de serveurs MFA en frontal de la ferme RADIUS (NPS) d’entreprise.
  • le protocole utilisé pour échanger des messages entre le serveur NPS et le serveur MFA est RADIUS.

Le fonctionnement de la boucle d’authentification est le suivant :

  1. Le composant Remote Desktop Gateway (RDG) reçoit une demande d’authentification d’un utilisateur.
  2. Le composant RDG transmet la requête d’authentification au serveur MFA (via son composant NPS, et une règle de forwarding de la demande d’authentification).
  3. Le serveur MFA procède à l’authentification (accès autorisé ou pas selon la réponse à la demande d’authentification téléphonique)
  4. Le serveur MFA envoi la réponse (oui/non) au serveur NPS (ici situé également sur la machine RDG)
  5. Le serveur NPS évalue les critère de la demande envoyé par le serveur MFA et envoi une autorisation de connexion selon les règles configurées localement.
  6. L’utilisateur est connecté à sa session Remote Desktop Connection Session Host sur DUB-SRV1.            

1. Paramétrage de Remote Desktop Gateway pour l’authentification multi-facteur

L’intégration avec Remote Desktop Gateway s’effectue en utilisant le serveur RADIUS embarqué par le serveur MFA en mode proxy, il nous faut pour cela, nous connecter sur DUB-SRV2 et spécifier dans l’interface de gestion Remote Desktop Gateway que nous utiliserons un serveur centralisé :

rdg1

Nous spécifions alors l’adresses IP du serveur MFA, ici l’adresse IP de DUB-SRV4, soit 10.0.1.4 et spécifions également une clé partagée, notons la car nous devrons spécifier la même à l’étape suivante : configuration du serveur MFA pour RADIUS.

rdg2

2. Configuration du serveur RADIUS de MFA

Pour cette étape, connectons nous sur DUB-SRV4 et configurons le rôle serveur RADIUS, cochons le cache “Enable RADIUS Authentication”

radius1

Ajoutons notre serveur DUB-SRV2 en tant que client RADIUS en spécifiant son adresse IP ainsi que la clé partagée que nous avons définis à l’étape précédente :

radius2

radius2b

Cliquons ensuite sur l’onglet Target et spécifions également DUB-SRV2 en tant que serveur RADIUS vers lequel nous renverrons les paquets une fois l’authentification MFA effectuée.

radius3

Cela peut sembler bizarre de spécifier le serveur DUB-SRV2 à la fois comme client ET serveur RADIUS, mais cela n’est nécessaire dans notre environnement que parce que nous utilisons le serveur DUB-SRV2 pour effectuer l’authentification NPS une fois le travail fait par MFA. 

Dans un déploiement d’entreprise, on spécifiera dans la partie serveur RADIUS (target) une ferme de serveurs RADIUS centralisés, qui fera l’authentification sur le domaine.

3. Configuration du serveur NPS

La configuration du serveur NPS sur le serveur DUB-SRV1 est un peu spéciale :

A l’étape 1 de cet article, nous avons spécifié un transfert automatique des demandes d’authentification vers le serveur MFA (DUB-SRV4) dans la console Remote Desktop Gateway. Cela a eu pour conséquence de modifier la règle par défaut sur le composant NPS installé localement.

Nous allons ajouter ensuite rajouter une règle qui permettra de traiter les authentifications une fois que le serveur MFA a effectué son travail.

3.1 Extension du délai d’authentification

Dans un premier temps vérifions et modifions les règles d’authentification initiale (lorsque la demande d’authentification passe du serveur RDG au serveur MFA):

Observons la règle par défaut :

rdg3 

On a bien comme serveur distant le serveur 10.0.1.6 soit le serveur MFA.

rdg4

Comme l’authentification par téléphone peut prendre un peu de temps, nous devons étendre le délais de réponse du serveur MFA, pour cela prenons l’onglet ”Load Balancing” et modifions la valeur à 60 secondes pour cet environnement de test.

rdg6

Une fois cette opération effectué nous continuons en spécifiant le serveur MFA comme client RADIUS et une règle de traitement spécifique.

3.2 Ajout du client RADIUS

Dans la console principale de NPS, on sélectionne la partie RADIUS client et on fait un click droit pour ajouter un nouveau client RADIUS :

rdg7

On spécifie ici le serveur MFA ainsi que la clé partagée que nous avons défini dans la partie Target du serveur MFA, ceci afin que le serveur NPS local accepte les requêtes renvoyées par le serveur MFA.

Donnons un friendly-name à ce client RADIUS et notons le quelque part. C’est très important car nous utiliserons cet attribut dans une règle NPS pour filtrer les requêtes et appliquer un traitement spécifique.

3.3 Création d’une règle d’authentification locale

On ouvre la console NPS et on se dirige dans la section Policies. On édite alors la Connection Request Policy. Cette section est utilisée pour faire un filtrage des requêtes basé sur divers critères et déterminer si l’on procède à l'authentification en local ou si on la renvoi à un autre serveur.

On va créer une règle d’authentification basée sur la règle par défaut (TS Gateway Authorization Policy) en ajoutant comme critère que cette règle s’appliquera aux demandes qui proviennent du serveur MFA (basé sur le friendly-name).

rdg9

On double click sur la règle, modifie son nom pour être un peu plus explicite et on l’active (Policy Enabled).

rdg10

Dans l’onglet Conditions, on click sur Add pour ajouter le Client Friendly Name qui correspond à celui entré à l’étape 3.2 (ici le nom “mfa”);

rdg11

On défini que cette règle sera évaluée localement : dans l’onglet Settings, on prend la partie Authentication et sélectionne “Authenticate requests on the server”.

rdg12

Enfin, comme il s’agit d’une règle spécifique, on la positionne avant la règle générale dans le processing order des règles NPS (click droit sur la règle, Move up) :

processingNPS

Cela devrait bien se passer… testons cela !

4. Vérification du bon fonctionnement de la solution

Il nous reste alors a configurer une session Remote Desktop utilisant notre passerelle.

testcon

Après saisie du mot de passe du domaine et à l’établissement de la connexion, on reçoit un coup de fil, on valide selon les paramètres que l’on a spécifié pour le compte utilisateur (code PIN ou touche #) et la magie devrait opérer ; et ceci à plus forte raison sur un superbe Nokia 1020 comme celui-ci :

testconnect2

Dans un prochain article nous étudierons le provisionning avec le portail WAMFA. Bons tests !

Quelques lectures  :

Remote Desktop Gateway and Windows Multi-Factor Authentication Server using RADIUS – http://technet.microsoft.com/en-us/library/dn394287.aspx 

Technical Scenarios for Windows Azure Multi-Factor Authentication – http://technet.microsoft.com/en-us/library/dn394279.aspx 

Windows Azure Multi-Factor Authentication Release Notes – http://technet.microsoft.com/en-us/library/dn465794.aspx 

Quelques exemples de mise en œuvre de la technologie chez Fredrikson & Byron, http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=710000003252

Pour tester Windows Azure Multi-Factor Authentication, vous pouvez évaluer Azure par ici : https://aka.ms/Azure0Euro

Nos amis Azuréens vous en parleront avec plus de détails dans l’Azure Camp à venir : https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032570149&Culture=fr-FR&community=0 

Pour tester Windows Server 2012 R2, vous pouvez télécharger gratuitement la version d’évaluation disponible sous la forme :

Si vous souhaitez découvrir en 4 heures nos technologies telles que Windows Server 2012 R2, Windows 8.1 en entreprise, le Cloud Privé ou Hybride, vous pouvez vous inscrire gratuitement à un de nos IT Camps :

https://aka.ms/itCampFr

Arnaud – les bons tuyaux

Authentification multi facteurs avec Windows Azure Multi-Factor Authentication – partie 1

Microsoft a racheté il y a quelques mois la société PhoneFactor, et son service d’authentification a été intégré au sein de nos solutions en tant que Windows Azure Multi-Factor Authentication (pour les plus assidus, il s’est aussi appelé Windows Azure Active Authentication durant quelques semaines).

Restons simples : Il s’agit ici d’offrir à nos clients un service d’authentification multi facteur utilisant un système dont nous disposons normalement tous : le téléphone. Lorsqu’un utilisateur va s’authentifier sur des ressources de l’entreprise hébergées sur site ou même dans un cloud, en plus des credentials du domaine, l’utilisateur sera authentifié avec son téléphone.

L’objectif de cette série d’articles est de vous montrer comment mettre en œuvre pas à pas la solution pour protéger l’accès à différents types de ressources.

Nous aurons plusieurs articles dans cette série :

  1. Introduction à Windows Azure Multi-Factor Authentication (vous êtes ici)
  2. Installation et paramétrage du serveur Windows Azure Multi Factor Authentication
  3. Installation et paramétrage de Remote Desktop Gateway
  4. Installation et paramétrage du portail utilisateur
  5. Installation et paramétrage pour l’application mobile
  6. Installation et paramétrage pour ADFS

Méthodes d’authentification utilisables

A l’heure actuelle, les méthodes supportées pour s’authentifier sont :

  • Appel téléphonique automatisé : l’utilisateur doit répondre à l’appel et presser une touche ou un code PIN.
  • Echange de SMS : l’utilisateur reçoit un SMS avec code OTP (one-time password) avec ou sans envoi de code PIN préalable
  • Application sur téléphone ou tablette : une fois le périphérique associé à l’utilisateur, il génèrera un code d’authentification toujours avec la possibilité de saisie d’un code PIN préalable. L’application est présente sur les platerformes principales du marché :

WindowsStore_badge_black_en_small_40x125 google_pla_store_android itunes_en

Lien

Lien

Lien

Applications supportées

MFA permet de sécuriser l’accès à des applications directement dans un service de cloud comme Windows Azure, Office 365 et Dynamics CRM Online ou tout autre service qui s’intègre avec Windows Azure Active Directory.

Pour sécuriser des services dans vos datacenter, c’est aussi un composant serveur qui s’installe dans votre sur Windows Server et permet d’authentifier :

  • connexion Terminal Server
  • accès VPN
  • accès à la messagerie OWA
  • accès à ADFS
  • accès à une application IIS

Enfin c’est également un Software Development Kit pour intégrer la solution à un projet plus personnalisé.

En attendant la suite pour mettre en œuvre la technologie dans un environnement de test, quelques lectures :

Technical Scenarios for Windows Azure Multi-Factor Authentication – http://technet.microsoft.com/en-us/library/dn394279.aspx 

Windows Azure Multi-Factor Authentication Release Notes – http://technet.microsoft.com/en-us/library/dn465794.aspx 

Quelques exemples de mise en œuvre de la technologie chez Fredrikson & Byron, http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=710000003252

Pour tester Windows Azure Multi-Factor Authentication, vous pouvez évaluer Azure par ici : https://aka.ms/Azure0Euro

Pour tester Windows Server 2012 R2, vous pouvez télécharger gratuitement la version d’évaluation disponible sous la forme :

Si vous souhaitez découvrir en 4 heures nos technologies telles que Windows Server 2012 R2, Windows 8.1 en entreprise, le Cloud Privé ou Hybride, vous pouvez vous inscrire gratuitement à un de nos IT Camps :

https://aka.ms/itCampFr

Arnaud – les bons tuyaux

Windows Server 2012 R2 : Workplace Join et Device Registration Service – partie 1

Dans le cadre du BYOD (Bring Your Own Device), on cherche a ajouter un peu de contrôle et de sécurité sur des périphériques qui sont “moins” gérés que les autres. Gérer des périphériques, on sait faire cela depuis des années avec Active Directory, et si a l’origine ou n’avait que Windows, on peut désormais rajouter tout un ensemble de périphériques dans l’AD pour y apporter plus ou moins de gestion.

DRS fait partie d’un ensemble des technologies nouvelles dans Windows Server 2012 R2 pour le BYOD. Le rôle de DRS est d’authentifier des machines via Active Directory sans nécessairement les ajouter au domaine au sens classique. Ainsi on tirera partie de cette authentification pour contrôler l’accès à des ressources du réseau d’entreprise (la tablette comme second facteur d’authentification), ou encore pour faire du SSO. 

DRS est implémenté en tant que partie d’AD FS (Active Directory Federation Services) et dans un premier temps on supporte les clients Windows 8.1 et iOS.

Dans cet article nous mettrons en œuvre l’infrastructure qui permettra d’ajouter des tablettes ou périphériques depuis le réseau interne, mais cela est aussi réalisable depuis l’Internet.

Objectifs de cet article : Pouvoir authentifier et autoriser l’accès à une application si mes utilisateurs sont authentifiés ET sont connectés depuis une tablette autorisée dans mon environnement.

     Cet article fait partie d’une série :  

  1. Ce premier article décrit comment mettre en place l’infrastructure pour le réseau interne.
  2. Un deuxième article décrira les tests basiques côté client
  3. Un troisième article décrira la mise en œuvre du contrôle d’accès sur l’application.

Configuration côté serveur

J’ai sur mon réseau interne un contrôleur de domaine nommé dublinr2-1 et une autorité de certification racine d’entreprise nommée ITCampTestCA dans mon domaine TESTITCAMP.CONTOSO.COM.

/!\ ALERTE PKI /!\

Attention, pour toutes les opérations, l’état de révocation des certificats va être vérifié, il faut donc que la PKI soit relativement propre…. C’est à dire un point de vérification du statut de révocation des certificats disponible quelque soit l’emplacement réseau des machines (dans le domaine ou en dehors).

Pour la première étape, j’ajoute le rôle ADFS sur une machine nommé ADFS01 sans y effectuer le paramétrage initial… voyons le reste des étapes de configuration en détails. 

adfs01

Configuration de ADFS

L’installation du rôle ADFS ayant été effectuée, je vais devoir planifier plusieurs facteurs importants, les certificats utilisés ainsi quels comptes de services utilisés.

Création des comptes de service

Mon domaine est en niveau fonctionnel 2012, je peux donc utiliser les comptes de services gMSA, je les crée en Powershell en utilisant la syntaxe suivante :

Add-KdsRootKey –EffectiveTime (Get-Date).AddHours(-10)

New-ADServiceAccount ADFS-Gmsa -DNSHostName adfs01.itcamptest.contoso.com -ServicePrincipalNames http/adfs01.itcamptest.contoso.com

Le première commande n’est utilisée que la première fois que l’on crée un gMSA dans un environnement (pour référence).

La seconde ligne permet réellement la création du compte ainsi que son SPN.

Création des certificats

Nous allons maintenant demander un certificat qui correspond à cette machine et qui a le subject alternate name nécessaire pour DRS :

Subject Name (CN): adfs01.itcamptest.contoso.com
Subject Alternative Name (DNS): adfs01.itcamptest.contoso.com
Subject Alternative Name (DNS): enterpriseregistration.itcamptest.contoso.com

Paramétrage d’ADFS

On lance l’assistant depuis le gestionnaire de serveur :

adfs02

Nous déployons le premier serveur ADFS de l’organisation :

adfs03

Spécifions des credentiels administrateurs du domaine :

adfs04

Nous sélectionnons maintenant le certificat adfs01.itcamptest.contoso.com que nous avons créé précédemment:

adfs05

Spécifions le compte de service que nous avons crée précédemment:

adfs06

Dans un environnement de production, j’utiliserai une base SQL, pour mon environnement de test, la base WID devrait faire l’affaire:

adfs07

Revoyons les options :

adfs08

adfs09

Enfin :

adfs10

On remarquera ici un message d’attention qui nous spécifie que l’enregistrement du SPN ne s’est pas bien passé. C’est sans doute l’assistant qui ne s’attendait pas à ce que je l’ai déjà fait.

Pour en avoir le cœur net, je vérifie avec setspn –q <SPNdeMonServeur>

setspn01

Cela m’a l’air correct Sourire 

Activation de DRS

Ouvrons une commande PowerShell pour activer le composant DRS:

Pour Windows Server 2012 R2 Preview :

Enable-AdfsDeviceRegistration –PrepareActiveDirectory –ServiceAccountName itcamptest\ADFS-Gmsa$

Enable-ADFSDeviceReg01

Pour Windows Server 2012 R2 RTM :

Initialize-ADDeviceRegistration

On active le service DRS : Enable-AdfsDeviceRegistration

Enable-ADFSDeviceReg02

Création des enregistrements DNS

La machine ADFS01 va s’enregistrer et mettre à jour automatiquement dans le DNS, je dois en revanche crée un alias pour le nom utilisé par les machines clientes DRS soit le nom enterpriseregistration.<UPN du contexte utilisateur>.

Dans mon environnement, l’UPN est itcamptest.contoso.com, j’utilise donc enterpriseregistration.itcamptest.contoso.com

Dans la vraie vie, je devrais mettre un enregistrement pour tous les UPN présents dans mon organisation.

Dans la console DNS, je modifie la zone de recherche directe liée à mon domaine :

dns01

    

Vérifications

On peut enfin vérifier l’état opérationnel du service en confirmand la présence de l’évènement 100 dans le journal d’évènements “Device Registration Service/DRS/Admin” :

eventlogs

L’environnement serveur est maintenant prêt pour accueillir ses périphériques et tester la fonctionnalité de workplace join !

Références :

http://technet.microsoft.com/en-us/library/dn280938.aspx – Get Started with Workplace Join with a Windows Device: Walkthrough Guide

http://technet.microsoft.com/en-us/library/dn280939.aspx – Setting up the lab environment 

http://technet.microsoft.com/en-us/library/dn303423.aspx – How to deploy AD FS in Windows Server 2012 R2

http://blogs.technet.com/b/byod-fr/archive/2013/07/11/byod-le-workplace-join-de-windows-server-2012-r2.aspx – BYOD : Le “Workplace Join” de Windows Server 2012 R2  –

*Edit le 10/10/13 pour intégrer changements de Windows Server 2012 R2 RTM

Pour tester Windows Server 2012 R2 et Hyper-V, vous pouvez télécharger gratuitement la version d’évaluation disponible sous la forme :
– d’une image ISO : https://aka.ms/jeveuxwindows2012r2
– d’un fichier VHD avec un système préinstallé : https://aka.ms/jeveuxwindows2012r2

Si vous souhaitez découvrir en 4 heures nos technologies telles que Windows Server 2012 R2, Windows 8.1 en entreprise, le Cloud Privé ou Hybride, vous pouvez vous inscrire gratuitement à un de nos IT Camps :

https://aka.ms/itCampFr

Arnaud – les bons tuyaux