Contenu de l'article

Pré-requis

  • un environnement Active Directory (Cf : installer Active Directory)
  • une autorité de certification ADCS (Cf : installer ADCS)
  • une machine installée avec Windows server 2022 et intégrée au domaine

Obtention d'un certificat SSL

Un serveur ADFS est également un serveur Web. En effet, http est utilisé pour les communications de services via les points de terminaison mais aussi lorsque les utilisateurs s'authentifient directement via le Web. Tous ces échanges doivent être sécurisés en https via un certificat SSL. Nous allons donc demander un certificat à une autorité de certification d'entreprise, en l'occurrence notre serveur secondaire sub-ca.pic.lan. Ce certificat sera basé sur un modèle que nous personnaliserons pour ADFS.
Notons qu'en production, il pourra être important que notre autorité de certification soit approuvée par une autorité de certification racine publique si des machines extérieures à l'entreprise accèdent à ADFS. En effet, ces machines n'auront pas forcément le certificat d'une autorité de certification racine interne à l'entreprise, ce qui pourra poser quelques soucis d'accès aux points de terminaison.

  1. Aller sur l'autorité de certification d'entreprise et ouvrir une session en tant qu'administrateur de domaine. Dans notre cas, il s'agit de la machine sub-ca.pic.lan

  2. Ouvrir le composant d'administration en tapant "Autorité de certification" dans la barre de recherche Windows puis faire un clic-droit sur "Modèles de certificats" et cliquer sur "gérer"

    cap13

  3. Le magasin des modèles de certificats stocké dans la partition de configuration d'Active Directory apparaît. Comme nous souhaitons personnaliser le modèle pour l'utilisation d'ADFS et qu'il n'est pas recommandé de modifier les modèles de base, nous allons créer un nouveau modèle basé sur le modèle "Ordinateur". Faire un clic-droit sur "Ordinateur" puis un clic sur "Dupliquer le modèle".

    cap14

  4. Dans la boîte de dialogue qui apparaît, cliquer sur l'onglet "Général". Donner un nom au modèle de certificat (1), spécifier une période de validité pour les futurs certificats (2) et cocher la case "Publier le certificat dans Active Directory" (3) afin de rendre facilement accessible la clé publique aux autres machines de la forêt Active Directory. Cette dernière option enregistre le certificat dans un attribut du compte Active Directory de l'utilisateur ou de la machine qui a fait la demande mais n'est toutefois peut-être pas indispensable selon l'utilisation qui est faite du certificat.

    cap15

  5. Dans l'onglet "Traitement de la demande", cocher la case "Autoriser l'exportation de la clé privée".

    cap16

  6. Dans l'onglet "sécurité", nous pouvons régler les permissions d'utilisation des modèles de certificat stockés dans Active Directory. Les permissions "Lecture" et "Ecriture" autorise respectivement un utilisateur ou une machine à lire ou à modifier un modèle de certificat de l'AD. La permission "Inscrire" autorise un utilisateur ou une machine à obtenir un certificat basé sur le modèle. La permission "Inscription automatique" permet à un utilisateur ou une machine d'obtenir automatiquement un certificat basé sur le modèle et de le stocker automatiquement dans son propre magasin de certificat.
    Dans notre cas, nous voulons que notre serveur ADFS (en l'occurrence ADFS01) ait les permissions de lecture, écriture, inscrire et inscription automatiquement sur le nouveau modèle. Nous cliquons donc sur "Ajouter" (1) puis sur "Types d'objets" (2) afin de sélectionner le type "ordinateurs" (3) et pouvoir ainsi faire une recherche de notre serveur ADFS01 (4) dans l'annuaire AD. Une fois la machine présente dans la liste, nous lui attribuons tous les droits mentionnés (5).

    cap17

  7. Dans l'onglet "Nom du sujet", sélectionner "Nom commun" dans le champ "Format du nom du sujet" et s'assurer que la case "Nom DNS" est bien cochée. Cliquuer sur "appliquer" et "ok".

    cap18

  8. Nous constatons que notre nouveau modèle de certificat apparaît bien dans le magasin de modèle de certificats Active Directory.

    cap19

  9. Maintenant que ce modèle de certificat est connu d'Active Directory, nous voulons configurer notre autorité de certification à émettre des certificats selon ce modèle. Pour cela, il faut ouvrir de composant d'adminitration d'Autorité de certification et faire un clic-droit sur "Modèles de certificats", puis < Nouveau / Modèle de certificat à délivrer >

    cap20

  10. Dans la liste des modèles de certificats du magasin Active Directory, sélectionner celui que nous venons de créer et cliquer sur "ok".

    cap21

  11. Notre autorité de certification secondaire peut maintenant délivrer des certificats selon le modèle que nous avons créé.

    cap22

  12. Notre serveur ADFS peut désormais demander un certificat de ce type auprès de notre autorité de certification secondaire. Pour cela, aller sur la machine où seront installés les services ADFS. Dans la barre de recherche Windows, taper "Gérer les certificats d'ordinateur" puis dans le composant d'administration, faire un clic-droit sur "Personnel" et cliquer sur < Toutes les tâches / Demander un nouveau certificat >

    cap23

  13. Dans la fenêtre qui apparaît, cliquer sur "suivant".

    cap24

  14. Dans la fenêtre qui apparaît, cliquer sur "suivant".

    cap25

  15. La fenêtre suivante affiche la liste des types de certificat que notre serveur peut demander. Cocher la case du modèle de certificat que nous avons créé et cliquer sur "inscription".

    Si la liste est vide, cocher "Afficher tous les modèles" pour voir le détail des messages d'erreur. Si le message suivant apparaît pour notre modèle de certificat alors vérifier que le serveur ADFS dispose du certificat racine :
    "Une chaîne de certificats a été traitée mais s'est terminée par un certificat racine qui n'est pas approuvé par le fournisseur d'approbation. Une autorité de certification valide configurée pour émettre des certificats basés sur ce modèle est introuvalbe, l'autorité de certification ne prend pas en charge cette opération ou cette autorité de certification n'est pas approuvée".
    Notre serveur demande un certificat auprès d'une autorité de certification, mais il vérifie également le certificat de cette autorité. Comme ce certificat est signé par une autorité racine, il a besoin de la clé publique du certificat racine pour vérifier la signature.

    cap26

  16. Si une erreur de type RPC apparaît, alors il peut être intéressant de consulter ce lien.
    Dans notre cas, nous constatons que le groupe Active Directory "Accès DCOM service de certificats" permettant à ses membres de se connecter à des autorités de certification d'entreprise est vide. Mais cela ne semble pas être la source du problème. En effet, après avoir appliqué les dernières mises-à-jour des machines Windows Server 2022 du labo suite à cette recommandation, le problème RPC a été résolu.

    cap27

  17. Une fois le certificat obtenu, la fenêtre suivante apparaît. Cliquer sur "terminer"

    cap29

  18. Dans le répertoire < Personnel / Certificats > du magasin de certificats de notre serveur, nous constatons la présence du certificats délivré.

    cap30

Installation du service ADFS

  1. Dans le gestionnaire de serveur, cliquer sur "Ajouter des rôles et des fonctionnalités"

    cap1

  2. L'assistant d'installation se lance et la fenêtre "Avant de commencer" apparaît. Prendre connaissance des informations affichées et cliquer sur "suivant"

    cap2

  3. Dans la fenêtre suivante, sélectionner "Installation basée sur un rôle ou une fonctionnalité" et cliquer sur "suivant".

    cap3

  4.  Dans la fenêtre suivante, sélectionner le serveur où le rôle ADFS sera installé puis cliquer sur "suivant"

    cap4

  5. Dans la fenêtre suivante, cocher le rôle "Services de fédération Active Directory 'ADFS)" et cliquer sur "suivant".

    cap5

  6.  Dans la fenêtre suivante, nous n'installerons aucune fonctionnalité. Cliquer simplement sur "suivant".

    cap6

  7. Dans la fenêtre suivante, un résumé du rôle ADFS est affiché. Cliquer sur "suivant".

    cap7

  8.  Dans la fenêtre suivante, un récapitulatif est affiché avant l'installation. Cliquer sur "installer".

    cap8

  9. La fenêtre suivante montre l'avancée de l'installation. Une fois terminée, cliquer sur "Configurer le service FS (Federation Service) sur ce serveur" pour lancer immédiatement la configuration.

    cap9
    Si on a fermé la fenêtre au lieu de cliquer sur le lien, on peut également lancer la configuration dans le gestionnaire de serveur en cliquant sur l'icône suivante :

    cap11.png

Configuration du service ADFS

  1. Suite à l'étape d'installation précédente, l'assistant de configuration des services ADFS se lance. Dans la fenêtre qui apparaît, sélectionner "Créer le premier serveur de fédération dans une batterie de serveurs de fédération" puis cliquer sur "suivant".

    cap10

  2.  Dans la fenêtre suivante, spécifier un compte administrateur du domaine (login + mot de passe) et cliquer sur "suivant"

    cap12

  3. Dans la fenêtre suivante, nous choisissons dans le champ "Certificat SSL" (1) le certificat que nous avons obtenu dans la 1ère partie de cet article. Dans le champ "Nom complet du service FS" (2), donner un nom au service ADFS qui sera visible dans la bannière de connexion. Cliquer ensuite sur "suivant".

    cap31

  4. Dans la fenêtre suivante, un message d'avertissement apparaît concernant la « clé racine du service de distribution de clés » qui n’a pas été définie. Apparemment, cela concerne les comptes de services managés qui sont plus sécurisés et que l’on peut utiliser avec un schéma Active Directory égal ou supérieur à Windows Server 2012. Dans notre labo, on n’utilisera pas de compte de service managé, mais plutôt un compte AD créé spécifiquement pour cela ex : « service-adfs ».

    cap32
    Nous créons donc dans Active Directory l'utilisateur service-adfs, sans changement ni expiration de mot-de-passe.
    cap33
    Puis dans la fenêtre précédente, nous sélectionnons l'option "Utiliser un compte d'utilisateur de domaine ou de service administré de type groupe existant" (1) et cliquons sur "sélectionner" (2) pour sélectionner le compte utilisateur que nous venons de créer. Saisir le mot-de-passe de l'utiilsateur (3) et cliquer sur "suivant".

    cap34

  5. Dans la fenêtre suivante, nous devons spécifier une base-de-données où enregistrer la configuration ADFS. Il est possible de s'appuyer sur une base-de-données SQL Server existante mais dans notre cas, nous opterons pour une base-de-données interne Windows propre à notre serveur ADFS. Cliquer sur "suivant".

    cap35

  6.  Dans la fenêtre suivante, vérifier les options que nous avons choisies et cliquer sur "suivant".

    cap36

  7. Dans la fenêtre suivante, un certain nombre de prérequis sont vérifiés. Si tout est OK, cliquer sur "configurer".

    cap37

  8. Dans la fenêtre suivante, une série de messages d'avertissement est affichée bien que le serveur ait été correctement configuré. La plupart du temps, ces messages ne sont pas critiques et peuvent être ignorés. Après avoir pris connaissance de ces messages, cliquer sur "fermer" et redémarrer le serveur.

    cap38

    Le message "La configuration des services ADFS nécessite un redémarrage ..." est suffisamment explicite.

    Le message "Les autres noms de l'object de certificat SSL ne prennent pas en charge le nom d'hôte ...". Ce message prévient que l'assistant voulait préférentiellement utiliser le nom d'hôte "certauth.adfs01.pic.lan" pour configurer l'authentification par certificat sur le port TCP 49443. Mais comme ce nom d'hôte n'a pas été ajouté au champ SAN (Server Alternative Name) du certificat ADFS, alors c'est le nom d'hôte "adfs01.pic.lan" qui sera utilisé.

    Le message "Une erreur s'est produite lors de la tentative de définition du SPN du compte de service spécifié...". Les SPN sont des identifiants de service. Ils permettent d'identifier le type de service (ex : www, cifs, spooler, dns...) et la machine où le service s'exécute. Pour obtenir des infos supplémentaires sur ce qu'est un SPN, consulter ce lien et celui-ci. Les SPN peuvent être associés à des comptes d'ordinateur ou des comptes de service en étant enregistrés dans leur attribut AD "servicePrincipalName" (plusieurs valeurs possibles) . Active Directory peut ainsi dire à un client quel compte il doit utiliser pour accéder à un service en particulier.
    Le message d'avertissement indique que l'assistant a essayé sans succès de configurer l'attribut "servicePrincipalName" de l'utilisateur service-adfs que nous avons créé pour exécuter le service ADFS. Il faudra effectuer l'opération manuellement. Attention, il semble que l'opération soit requise dans le cas d'une utilisation de Windows Integrated Authentication.

    Le message "Le certificat ne contient pas toutes les valeurs avec suffixe UPN qui existent dans l'entreprise...". Par "joindre un espace de travail", il faut comprendre qu'il s'agit d'une fonctionnalité Microsoft appelée "Workplace-Join" et qui permet à des appareils personnels d'utilisateurs de se connecter aussi au SI de l'entreprise avec toutefois des mecanismes d'authentification multiples. On peut ignorer cet avertissement si l'on n'utilise pas cette fonctionnalité.

    Le message "Erreur lors de l'écriture des règles de Pare-feu...". Les 3 règles entrantes (TCP80, TCP443, TCP49443) ont bien été créées mais non activées. Le port TCP49443 est utilisé pour l'authentification par certificat, le port TCP 80 pour notamment la récupération des listes de révocation et le port TCP443 pour le fonctionnement principal. Dans notre cas, nous activons les 3 règles.
    cap39

  9. Notre serveur ADFS est désormais en place et fonctionnel 😀.

Tester l'authentification ADFS

Nous allons initier une authentification ADFS pour vérifier notre configuration. Pour cela, nous devons accéder à un point de terminaison HTTPS affichant la bannière de login ADFS.

  1. Accéder à https://<serveur_ADFS>/adfs/ls/idpinitiatedsignon.aspx c'est-à-dire dans notre cas :
    https://adfs01.pic.lan/adfs/ls/idpinitiatedsignon.aspx

    La page ADFS s'affiche alors avec le message d'erreur suivant :
    cap40
    Ce message d'erreur est normal car par défaut, la bannière de login ADFS est désactivée.

  2. Pour activer la bannière de login ADFS, ouvrir une console Powershell et taper la commande suivante :
    > Set-AdfsProperties -EnableIdpInitiatedSignonPage $true
    Pour consulter le statut de la configuration ADFS, on peut aussi taper la commande suivante :
    > Get-AdfsProperties
  3. Si on accède de nouveau à la bannière de login, on obtient alors l'affichage suivant :
    cap41

  4. En cliquant sur "connexion", on peut alors saisir le login + mot-de-passe d'un compte Active Directory :
    cap42

  5. L'affichage suivant nous confirme que l'authentification a été effectuée :
    cap43

 

Liens

https://www.youtube.com/watch?v=9eq3IeDAkvA
https://rdr-it.com/en/adfs-installation-and-configuration/3/
https://cloudinfrastructureservices.co.uk/how-to-install-adfs-on-windows-server-2022/
https://pbarth.fr/node/428
https://social.technet.microsoft.com/Forums/windowsserver/en-US/1f3f90dc-0030-4230-92ee-ebdee3d9e664/why-would-i-want-to-publish-certificates-to-ad?forum=winserversecurity
https://xdot509.blog/2020/10/20/the-problematic-publish-certificate-in-active-directory-option/
https://www.vkernel.ro/blog/setting-permissions-on-adcs-certificate-templates
https://social.technet.microsoft.com/Forums/windows/en-US/29287479-0444-46a5-b6f8-ad268e706bd3/adcs-autoenroll-working-for-users-not-computers-rpc-unavailable?forum=winserverDS
https://social.technet.microsoft.com/wiki/contents/articles/1427.ad-fs-2-0-how-to-configure-the-spn-serviceprincipalname-for-the-service-account.aspx
Opérations d'AD FS | Microsoft Learn

 

Ajouter un commentaire

Joomla templates by a4joomla