Dans le précédent billet « BYOD Construction d’une maquette Azure IaaS Partie 1 », vous avez pu construire sous forme d’une infrastructure Azure IaaS, la partie réseau de la maquette et créer les 3 machines virtuelles tournant sous Windows Server 2012 R2. Vous avez pu vous initier aux concepts d’Azure et à la manipulation du portail de management ce qui était nécessaire pour vous permettre de poursuivre la construction et ensuite de gérer correctement votre maquette.

Dans ce billet, nous allons procéder à l’installation de la machine virtuelle DC1 créée précédemment, et qui va héberger plusieurs rôles : contrôleur de domaine de votre forêt Active Directory, service d’infrastructure à clés publiques pour délivrer les certificats pour l’ensemble de la maquette, service de fédération pour assurer l’authentification de l’application Web exemple, et enfin service d’enregistrement pour les appareils souhaitant joindre le Lieu de travail (Workplace Join).

Démarrage des machines

Si vous avez été jusqu’à la fin du précédent billet, vous avez compris l’intérêt d’arrêter complètement les VM pour optimiser les euros de votre crédit Azure. Il va donc falloir redémarrer les VM au fur et à mesure ; inutile de démarrer une machine sur laquelle vous n’intervenez pas et qui n’est pas nécessaire. Nous allons commencer par mettre en place le contrôleur de domaine DC1.

Choix du nom de domaine Active Directory

Avant de se lancer à corps perdu dans les lignes de commande PowerShell, vous devez vous poser la question du nom de domaine que vous allez choisir. Par souci de simplification, pour la gestion des certificats mais aussi pour éviter les erreurs, le nom de domaine interne est le même que le nom de domaine affiché à l’extérieur. Si vous souhaitez facilement joindre votre infrastructure depuis l’internet, je vous recommande d’enregistrer votre propre nom de domaine ; il vous en coûtera une dizaine d’euros par an mais vous n’aurez plus à vous souciez de la résolution de noms quel que soit l’appareil.

Dans la suite, on utilisera comme nom de domaine exemple contoso-corporation.com. Sachant que ce nom est déjà réservé, vous devrez le substituer avec le nom de domaine que vous aurez choisi.

Note : Dans le cas d’une maquette éphémère, vous pouvez économiser l’enregistrement du nom de domaine mais devrez intervenir sur le fichier host des machines clientes.

Certificats

La manipulation des certificats est inhérente à la mise en place d’une infrastructure s’appuyant sur des liaisons sécurisées entre les composants – serveur de fédération et application fédérée – et mettant à disposition des ressources à l’extérieur accessibles en https – publication à travers une passerelle qui doit présenter le certificat de la ressource publiée tout en possédant la clé privée associée – . Dans le cadre de cette maquette, on a choisi d’installer une autorité de certification interne qui permettra de délivrer les certificats nécessaires mais au prix de plus de manipulations ; l’obtention de certificats auprès d’un fournisseur reconnu peut s’avérer assez vite prohibitif surtout si l’on souhaite spécifier plusieurs noms DNS dans le champ SAN.

Avant de rentrer dans le vif du sujet, veuillez noter que toutes les actions sont réalisées sur la seule machine virtuelle DC1.

Etape 1 - Installation de la fonction contrôleur de domaine et création du domaine

1- Installation de la fonctionnalité de contrôleur de domaine

1- Démarrer la VM DC1: dans le portail de gestion Azure, dans le bandeau de gauche, sélectionnez MACHINES VIRTUELLES, cliquez sur DC1 puis TABLEAU DE BORD et appuyez sur le bouton DEMARRER dans le bandeau inférieur.

2- Attendez que la machine démarre et vérifiez dans le tableau de bord de la machine dans le bandeau à droite, que le champ ADRESSE IP INTERNE est bien à 10.0.0.4

3- Connectez-vous en RDP en vous authentifiant avec le compte d’administration et le mot de passe que vous avez spécifiés lors de la création de la VM.

4- Dans la VM DC1, ouvrez PowerShell en appuyant sur le bouton clip_image001 et entrer la ligne de commande suivante pour installer la fonctionnalité de DC

Install-WindowsFeature AD-Domain-Services -IncludeManagementTools

2- Création de la forêt contoso-corporation

Vous allez ensuite créer une forêt Active Directory mono-domaine qui constituera votre infrastructure de base avec l’annuaire des utilisateurs et qui servira également de base d’authentification pour l’accès aux services et applications que vous serez amenés à déployer.

1- Dans PowerShell, entrer la ligne de commande suivante en substituant contoso-corporation.com par votre nom de domaine Active Directory et CONTOSO-CORP par le nom Netbios (Ignorer les avertissements sur l'IPV4 non statique).

Install-ADDSForest -DomainName contoso-corporation.com -DomainNetbiosName CONTOSO-CORP -NoRebootOnCompletion:$True

2- Entrez le mot de passe de récupération 2 fois puis validez avec Y.

L’option pour ne pas rebooter a été positionnée pour vérifier les éventuels avertissements.

3- Après vérification, lancer ligne de commande PowerShell pour redémarrer

Restart-Computer

3- Paramétrage du DNS

Maintenant que le service DNS est installé sur DC1, il est nécessaire de spécifier au niveau du réseau virtuel que ce service doit être utilisé en remplacement du DNS fourni dans Windows Azure ; en effet, ce dernier n’est pas capable d’assurer les fonctions qui sont attendues pour un domaine Active Directory, comme par exemple le support de l’enregistrement dynamique des enregistrements SRV.

Voir “IP addressing and DNS” dans le document de référence, Guidelines for Deploying Windows Server Active Directory on Windows Azure Virtual Machines.

Le paramétrage s’effectue au niveau du réseau virtuel :

1. Dans le portail de management Azure, aller sur RESEAUX\RESEAUX VIRTUELS\, cliquer sur VN-CONTOSO puis sur CONFIGURER

2. En-dessous de « serveur dns », entrer dc1.contoso-corporation.com, 10.0.0.4

3. Enregistrez la modification en appuyant sur la disquette ENREGISTRER dans le bandeau inférieur.

Note : Changez contoso-corporation.com par votre nom de domaine mais conservez 10.0.0.4 comme adresse IP qui doit être celle de la VM DC1.

Etape 2 - Installation d’AD Certificate Services

L’installation du service AD CS va nous servir à produire les certificats nécessaires pour permettre aux clients externes d’accéder au service de fédération AD FS depuis internet à travers Web Application Proxy, et d’établir la connexion avec l’application Web hébergée sur le serveur WEBAPP.

1- Installation de la fonctionnalité AD Certificate Services

1. Connectez-vous en RDP sur DC1 et lancer PowerShell.

2. Entrez la ligne de commande suivante pour installer la fonctionnalité AD CS :

Install-WindowsFeature AD-Certificate -IncludeManagementTools

clip_image002

Pour plus d’information voir la description de la cmdlet Install-WindowsFeature.

2- Installation de l’Autorité de Certification

On installe ensuite l’autorité de certification avec les paramètres par défaut.

3. Toujours dans PowerShell, entrer la ligne de commande :

Install-ADCSCertificationAuthority et confirmez avec Y.

clip_image004

Pour plus d’information voir la description de la cmdlet Install-AdcsCertificationAuthority.

3- Paramétrage de la CRL

De manière à simplifier l’infrastructure et éviter d’avoir à publier la liste de révocation (CRL) à l’extérieur, nous allons paramétrer l’autorité de certification pour ne pas inclure de référence à un point de distribution de CRL (CRL distribution Point ou CDP) dans les certificats qui seront émis.

1. Dans Server Manager/Tools, sélectionnez Certification Authority.

2. Faites un clic-droit sur l’autorité de certification et choisissez Properties.

3. Dans l’onglet Extensions, sélectionnez la ligne ldap://CN=<CATruncatedName><CRLNameSuffix>…

4. Décochez l’option « Include in the CDP extension of issued certificates » et validez en appuyant sur OK. Validez pour le redémarrage du service.

Note : Remarquez que, par défaut, la CRL n'est pas publiée en http:// et file://

4- Création d’un gabarit de certificat

Le gabarit de certificat nommé « Web Server » est celui que l’on utilise classiquement pour demander un certificat. C’est parfait lorsque le certificat doit être installé sur le serveur qui en fait la demande. Par contre, si le certificat et sa clé privée doivent être exportés pour être utilisés, comme dans notre cas, sur une passerelle, le gabarit Web Server n’est pas adapté car il ne permet pas d’exporter la clé privée.

Basé sur ce gabarit de certificat, on va créer un nouveau gabarit que l’on nommera ADFSWebServer, qui présentera les mêmes caractéristiques que le gabarit initial mais avec la possibilité d’exporter la clé privée.

1- Dans la console Certification Authority, allez sur Certificate Templates, puis clic-droit et sélectionnez Manage : la mmc certificate templates s’ouvre.

2- Sélectionner le gabarit Web Server et faites un clic-droit pour choisir Duplicate Template.

3- Dans l’onglet Request Handling, cochez l’option « Allow private key to be exported » et validez.

4- Renommer “Copy of Web Server” en ADFSWebServer (clic-droit et Change Names)

Maintenant que le nouveau gabarit est créé, il faut lui attribuer les permissions nécessaires pour qu’il soit accessible depuis un contrôleur de domaine (DC1 sur lequel sera installé AD FS) et depuis les machines du domaine (le serveur WEBAPP qui utilisera également ce gabarit).

  1. Double-cliquez sur le gabarit de certificat ADFSWebServer pour accéder aux propriétés
  2. Dans l’onglet Security, ajoutez le groupe Domain Controllers et lui donner les permissions Read et Enroll.
  3. Puis ajoutez également Domain Computers en donnant aussi les permissions Read et Enroll.
  4. Validez et fermez la console Certificate Templates.

Enfin, pour pouvoir utiliser ce gabarit de certificat, il faut l’autoriser :

9. Dans la console Certificate Authority, clic-droit sur Certificate Templates et sélectionnez New\Certificate Template to Issue.

10. Sélectionnez le nouveau gabarit ADFSWebServer et confirmer en appuyant sur OK.

Etape 3 - Installation des prérequis du service de fédération

1- Création du compte de service pour AD FS

Le service AD FS s’exécute sous un nouveau type de compte de service : un compte de service administré de groupe (Group Managed Service Account). Avant de pouvoir créer ce type de compte de service, il est nécessaire d’activer préalablement le Key Distribution Service.

1. En ligne de commande PowerShell, entrez :

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

2. Puis créez le compte de service avec la ligne de commande suivante en n’oubliant pas de remplacer contoso-corporation.com par le nom de votre domaine :

New-ADServiceAccount FsGmsa -DNSHostName adfs.contoso-corporation.com -ServicePrincipalNames http/adfs.contoso-corporation.com

Pour plus d’information sur le KDS, voir Create the Key Distribution Services KDS Root Key.

Pour plonger dans les comptes de service administrés de groupe, référez-vous à Getting Started with Group Managed Service Accounts.

2- Création des enregistrements DNS

Le service AD FS va être installé sur le contrôleur de domaine DC1. Deux services sont mis à disposition : le service AD FS lui-même plus le service d’enregistrement chargé de la jonction au Lieu de travail et qui doit être accessible en enterpriseregistration.contoso-corporation.com.

On va donc créer deux alias DNS qui vont pointer sur DC1 qui héberge ces deux services.

1. En ligne de commande PowerShell, entrez en remplaçant contoso-corporation.com par le nom de votre domaine :

Add-DnsServerResourceRecord -ZoneName "contoso-corporation.com" -A -Name "adfs" -IPv4Address "10.0.0.4"

[Ajustement: La ligne de commande a été modifiée pour un enregistrement DNS adfs.contoso-corporation.com en A plutôt que CNAME. La maquette était fonctionnelle sans cette modification]

2. Puis, pour la création du 2ème ALIAS,

Add-DnsServerResourceRecord -CName -Name "enterpriseregistration" -HostNameAlias "dc1.contoso-corporation.com" -ZoneName "contoso-corporation.com"

3- Tirage du certificat pour AD FS

Enfin, nous allons utiliser le gabarit de certificat tout juste créé pour demander à notre Autorité de Certification de produire le certificat qui va servir au service de fédération AD FS, et le stocker dans le magasin des certificats machine.

1. En ligne de commande PowerShell, entrez en remplaçant contoso-corporation.com par le nom de votre domaine

Get-Certificate -Template ADFSWebServer -DnsName adfs.contoso-corporation.com,enterpriseregistration.contoso-corporation.com -SubjectName CN=adfs.contoso-corporation.com -CertStoreLocation cert:\LocalMachine\My

Etape 4 - Installation du service de fédération AD FS

Maintenant, tout est prêt pour installer le service de fédération.

1- Installation de la fonctionnalité AD Federation Services

1. Dans la console PowerShell, entrez la ligne de commande suivante pour installer la fonctionnalité de AD FS

Install-WindowsFeature ADFS-Federation

2- Installation du service AD Federation Services

Il faut d’abord récupérer l’empreinte du certificat (thumbprint)

1. Dans la console PowerShell, entrez cd cert:\localmachine\my, puis Dir ; vous avez en 1ère colonne les empreintes de certificats et, en 2ème colonne, le CN du certificat associé.

2. Copier l’empreinte du certificat correspondant à CN=adfs.contoso-corporation.com (dans l’exemple FF8F5CFD…)

3. Puis dans la ligne de commande suivante :

  • Insérez l’empreinte entre les 2 caractères " derrière le paramètre CertificateThumbprint,
  • Remplacez le nom du service de fédération Contoso Corporation par le nom qui vous convient (il s’agit juste d’un nom d’affichage),
  • Remplacer contoso-corporation par le nom long de votre domaine, et CONTOSO-CORP par le nom Netbios de ce même domaine.
    

Install-AdfsFarm -CertificateThumbprint:"FF8F5CFD…" -FederationServiceDisplayName:"Contoso Corporation"-FederationServiceName:"adfs.contoso-corporation.com" -GroupServiceAccountIdentifier:"CONTOSO-CORP\FsGmsa$"

Vous pouvez ignorer l’avertissement sur la réplication de la clé du compte de service qui vous recommande d’attendre 10h ( !) pour qu’elle soit disponible sur l’ensemble de la forêt.

Note : J’ai volontairement tronqué l’empreinte exemple FF8F5CFD… pour que les plus inattentifs n’aient pas la tentation de conserver l’empreinte exemple, et de s’offusquer ensuite que la commande d’installation du service AD FS remonte systématiquement une erreur ;-)

Etape 5 - Activation du service d’enregistrement

Le service d’enregistrement est porté par AD FS : c’est lui qui implémente la jonction au Lieu de travail. Il faut l’initialiser et l’activer pour le rendre opérationnel.

1. Dans la console PowerShell, entrez la ligne de commande suivante pour installer la fonctionnalité d’enregistrement des appareils

Initialize-ADDeviceRegistration

2. Sur sollicitation, entrez le compte de service CONTOSO-CORP\fsgmsa$ (en remplaçant CONTOSO-CORP par le nom court de votre domaine) et validez avec Y.

3. Entrez ensuite la ligne de commande

Enable-AdfsDeviceRegistration

         4. Pour activer la prise en compte des appareils enregistrés au niveau d'AD FS, dans la console de gestion AD FS, naviguez jusqu'à Authentication Policies puis cliquez sur le lien Edit Global Primary Authentication dans le panneau droit.

         5.  Sélectionnez la case à cocher Enable Device Authentication et validez avec OK.

Note : Ne pas oublier cette dernière étape, sinon les revendications liées aux appareils (de type devicecontext) ne seront pas inclues dans le jeton SAML et ne pourront pas ensuite être utilisées comme critères d'accès.

Etape 6 - Arrêt de la VM

Si vous ne souhaitez pas continuer sur le billet suivant, n’oubliez pas d’arrêter la VM y compris à travers le portail de gestion pour ne plus consommer votre crédit Azure. Voir dans le billet précédent,  Etape 3 : Extinction de la maquette !

Récapitulons

Cette 2ème étape de construction était un peu longue, bien que l’on se soit appuyé sur PowerShell pour une bonne partie des opérations. Mais au final, nous avons bâti une forêt, installé une PKI, défini un gabarit de certificat que nous avons immédiatement utilisé pour installer le service de fédération AD FS qui est au cœur du fonctionnement de notre maquette. Et pour finir, nous avons activé le service d’enregistrement qui nous permettra, plus tard, de tester la jonction au Lieu de travail.

Dans le prochain billet, nous nous intéresserons à la mise en place de l’application Web de test, avant de paramétrer AD FS pour ensuite accéder l’application Web fédérée depuis l’interne.