Active Directory Authentification par cartes à puce CPX

De NCad Wiki
Aller à la navigation Aller à la recherche

Rôles Active Directory

Installation du rôle ADCS | Gestion des certificats | Authentification par cartes à puce

Installation du rôle ADDS | Sécuriser son environnement Active Directory | Windows LAPS | gMSA


Archives : Contrôleur de domaine Windows Server 2003 | Intégration Client Ubuntu sur AD Windows Server 2003 | Windows Server 2008

Cet article est en cours de rédaction.

Prérequis

Infrastructure d’authentification

Pour pouvoir mettre en place une authentification par carte à puce, vous devez disposer :

Au niveau des postes clients, il sera nécessaire de disposer :

  • De la dernière version cryptolib à jour.
  • D’un lecteur de carte à puce compatible.

L’infrastructure présentée ci-dessus – pour illustrer la présente documentation – est purement fictive.

Certificats de l’autorité racine émettant les cartes à puces

  1. Se rendre sur le site web de l’autorité de certification IGC-Santé accessible depuis le lien http://igc-sante.esante.gouv.fr.
  2. Télécharger les 8 certificats mis à disposition par l’autorité de certification et correspondant.
  3. Vérifier les certificats téléchargés :
    • ACI-EL-ORG.cer : certificat d’autorité de certification intermédiaire gamme élémentaire domaine organisations.
    • ACI-EL-PP.cer : certificat d’autorité de certification intermédiaire gamme élémentaire domaine personnes.
    • ACI-FO-PP.cer : certificat d’autorité de certification intermédiaire gamme fort domaine personnes.
    • ACI-ST-ORG.cer : certificat d’autorité de certification intermédiaire gamme standard domaine organisations.
    • ACI-ST-PP.cer : certificat d’autorité de certification intermédiaire gamme standard domaine personnes.
    • ACR-EL.cer : certificat d’autorité de certification racine gamme élémentaire.
    • ACR-FO.cer : certificat d’autorité de certification racine gamme fort.
    • ACR-ST.cer : certificat d’autorité de certification racine gamme standard.

Installation des certificats de l’IGC-Santé

Les certificats racines et intermédiaires de l’autorité de certification de l’IGC-Santé doivent être installés :

  • Sur les contrôleurs de domaine via une GPO.
  • Sur le serveur de l’autorité de certification d’entreprise si ce dernier est sur un serveur dédié via une GPO.
  • Sur les postes clients via une GPO.

Dans notre usage, nous allons créer la GPO O_WINDOWS_SMARTCARD qui sera liée au groupe Domain Controllers ainsi qu’à la racine de l’organisation.

  1. Ouvrir une console MMC puis ajouter le composant logiciel enfichable Gestion des stratégies de groupe.
  2. Créer la GPO O_WINDOWS_SMARTCARD à la racine du domaine de l’organisation (ou créer une nouvelle GPO pour cette occasion). Dans notre cas, cette GPO est liée aux contenants :
    1. CNLABS : qui contient l’ensemble des objets pour notre entité (utilisateurs, ordinateur, organisation).
    2. Domain Controllers : qui est le groupe Active Directory contenant les serveurs Active Directory.
      MMCGPO O WINDOWS SMARTCARD CREATE.png
  3. Editer la stratégie de groupe sélectionnée puis rechercher la clé Configuration ordinateur / Stratégies / Paramètres Windows / Paramètres de sécurité / Stratégies de clé publique / Autorités de certification racines de confiance.
    1. Faire un clic droit sur cette clé, puis Importer et sélectionner le certificat ACR-EL.cer.
    2. Répéter cette opération pour les 7 certificats restants (ACR-FO.cer, ACR-ST.cer, ACI-EL-ORG.cer, ACI-EL-PP.cer, ACI-FO-PP.cer, ACI-ST-ORG.cer et ACI-ST-PP.cer).
      MMCGPO O WINDOWS SMARTCARD EDIT.png
  4. Sur l’ensemble des contrôleurs de domaines effectuer les opérations suivantes pour vérifier la bonne propagation des certificats :
    1. Ouvrir un terminal de commande CMD puis exécuter la commande  gpupdate /force.
    2. Une fois l’exécution de la commande terminée, ouvrir une console MMC puis ajouter le composant logiciel enfichable Certificats.
    3. Vérifier la présence des 8 certificats racines et intermédiaires dans le dossier Autorité de certification racines de confiance.
      MMCCRT AUTORITE CERTIFICATION RACINE CONFIANCE VIEW IGC.png
    4. Copier les 8 certificats racines et intermédiaires puis les coller dans le dossier Personnel. Cette action est à réaliser sur les Contrôleurs de domaine et l’Autorité de Certification Entreprise (si cette dernière est sur un serveur dédié).
      MMCCRT PERSONNEL VIEW IGC.png

Paramétrage réseau

Pour vérifier la validité d’un certificat, les serveurs Active Directory ainsi que l’Autorité de Certification d’Entreprise doivent pouvoir communiquer avec les serveurs de l’Autorité de Certification Racine de l’IGC-Santé.

Interrogation directe

Identification des flux à autoriser

Les flux suivants doivent être autorisés en sortie (depuis serveur Active Directory vers Internet):

Paramètres proxy

Si le réseau nécessite un accès Internet via un proxy, il sera nécessaire de paramétrer ce dernier sur les serveurs Active Directory ainsi que l’Autorité de Certification d’Entreprise. Par défaut, Windows utilise les paramètres proxy de la session courante. Dans le cas de la phase d’authentification, c’est le processus système lsass.exe qui va essayer de dialoguer avec l’IGC-Santé. Il faut donc basculer sur une configuration proxy par machine.

  1. Ouvrir l’utilitaire d’édition du registre Regedit.
  2. Rechercher la clé HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings.
    1. Puis, créer la valeur DWORD ProxySettingsPerUser.
    2. Et y affecter la valeur 00000000.
  3. Ouvrir un terminal de commande CMD puis exécuter la commande gpupdate /force pour appliquer les paramètres.
  4. Ouvrir la fenêtre de Propriétés de : Internet depuis la commande inetcpl.cpl.
  5. Cliquer sur l’onglet Connexions puis sur le bouton Paramètres réseau.
    1. Si elle est cochée, décocher les cases Détecter automatiquement les paramètres de connexion et Utiliser un script de configuration automatique.
    2. Cocher la case Utiliser un serveur proxy puis renseigner dans le champ Adresse l’adresse IP du serveur proxy puis dans le champ Port le numéro du port d’écoute TCP du serveur proxy.
    3. Cliquer sur le bouton OK pour enregistrer les paramètres.
      INETCPL CONNEXIONS NETWORKSETTINGS.png
  6. Ouvrir un terminal de commande Powershell puis exécuter la commande :
    netsh winhttp set proxy IP_PROXY:PORT_PROXY bypass-list=”SRVWSUS
    en remplaçant :
    • IP_PROXY : par l’adresse IP du serveur proxy.
    • PORT_PROXY : par le port TCP d’écoute du serveur proxy.
    • LIST_EXCLUSION : par l’adresse du serveur de mise à jour WSUS.

Paramétrage de l’authentification

Ajout des certificats dans le magasin NTAuthCertificates

Le magasin de certificat NTAuthCertificates permet au processus d’authentification Kerberos :

  • D’identifier les utilisateurs présentant un certificat signé par une autorité de certification racine.
  • Seulement si le certificat de cette autorité de certification racine est présente dans le magasin NTAuthCertificates.

De ce fait, il est donc nécessaire d’ajouter les certificats d’autorité racine et d’autorité racine intermédiaire de l’autorité IGC-Santé dans le magasin NTAuthCertificates de l’Autorité de Certification d’Entreprise.

Dans le cas où l’Autorité de Certification d’Entreprise est installée sur un serveur dédié. Les actions ci-dessous sont donc à réaliser depuis ce serveur. Le cas échéant, ces actions sont à réaliser sur le contrôleur de domaine.

  1. Ouvrir une console MMC puis ajouter le composant logiciel enfichable PKI d’entreprise.
  2. Effectuer un clic droit sur l’item PKI d’entreprise puis cliquer sur Gérer les conteneurs Active Directory….
  3. Cliquer sur l’onglet Conteneur NTAuthCertificates puis sur le bouton Ajouter….
    MMCPKIENT MANAGE CONTENEURS AD NTAUTHCERTIFICATE.png
  4. Depuis la fenêtre Ouvrir, rechercher et sélectionner le certificat ACR-EL.cer puis cliquer sur le bouton Ouvrir.
  5. Le certificat nouvellement ajouté doit apparaître dans la liste avec le statut OK.
  6. Répéter les étapes _3_ à _5_ pour les certificats ACR-FO.cer, ACR-ST.cer, ACI-EL-PP.cer, ACI-FO-PP.cer, ACI-ST-ORG.cer et ACI-ST-PP.cer.
    MMCPKIENT MANAGE CONTENEURS AD NTAUTHCERTIFICATE ADD ALL.png
  7. Sur l’ensemble des contrôleurs de domaines ainsi que l’Autorité de Certification Entreprise, effectuer les opérations suivantes pour vérifier la bonne propagation des certificats :
    1. Ouvrir un terminal de commande CMD puis exécuter la commande  gpupdate /force.
    2. Une fois l’exécution de la commande terminée, ouvrir l’éditeur de registre REGEDIT.
    3. Rechercher la clé :
      HKLM\SOFTWARE\Microsoft\EnterpriseCertificates\NTAuth\Certificates
      Puis vérifier la présence des clés relatives aux certificats de l’IGC-Santé :
      MMCREGEDIT HKLM SOFTWARE MICROSOFT ENTERPRISECERTIFICATE NTAUTH CERTIFICATES IGC.png

Authentification basée sur des comptes AD existants

Désactivation du SAN (subjectAltName)

Par défaut, pour pouvoir s’authentifier à l’aide d’un certificat, il est nécessaire de créer un compte utilisateur Active Directory spécifique sur le contrôleur de domaine. Ici, nous souhaitons greffer l’authentification par certificat sur des comptes Active Directory existant.

  1. Ouvrir l’utilitaire d’édition du registre Regedit.
  2. Rechercher la clé :
    HKLM\SYSTEM\CurrentControlSet\Services\kdc
    1. Puis, créer la valeur DWORD :
      UseSubjectAltName
    2. Et y affecter la valeur :
      00000000
      MMCREGEDIT HKLM SYSTEM CURRENTCONTROLSET SERVICES KDC USESUBJECTALTNAME CREATE.png
  3. Rechercher la clé :
    HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
    1. Puis, créer la valeur DWORD :
      UseSubjectAltName
    2. Et y affecter la valeur :
      00000000
      MMCREGEDIT HKLM SYSTEM CURRENTCONTROLSET CONTROL LSA KERBEROS PARAMETERS USESUBJECTALTNAME CREATE.png

Activation de l’indication du nom d’utilisateur

Par défaut, pour pouvoir s’authentifier à l’aide d’un certificat, il est nécessaire de créer un compte Active Directory spécifique sur le contrôleur de domaine. Ici, nous souhaitons greffer l’authentification par certificat sur des comptes Active Directory existant.

Dès lors, lors de l’ouverture d’une session à l’aide d’un certificat, il faudra renseigner le nom d’utilisateur Windows pour permettre à Kerberos de vérifier la correspondance entre le certificat présenté et le certificat de l’utilisateur Active Directory enregistré dans l’annuaire.

  1. Ouvrir une console MMC puis ajouter le composant logiciel enfichable Gestion des stratégies de groupe.
  2. Créer une GPO spécifique qui va permettre de personnaliser le paramétrage du composant Carte à puce de Windows. Cette GPO devra être appliquée à l’ensemble des postes clients.
  3. Editer la stratégie de groupe nouvellement créée puis rechercher la clé Configuration ordinateur / Stratégies / Modèle d’administration / Composants Windows / Carte à puce / Autoriser l’indication du nom d’utilisateur.
    1. Faire un clic droit sur cette clé puis Modifier.
    2. Sélectionner l’option Activé puis cliquer sur le bouton OK.
  4. Sur l’ensemble des contrôleurs de domaines ainsi que l’Autorité de Certification Entreprise, effectuer les opérations suivantes pour forcer l’application des paramètres :
    1. Ouvrir un terminal de commande CMD puis exécuter la commande  gpupdate /force.

Association d’un certificat à un compte AD

Structure de la chaîne de certificat

  • Adapter la chaîne d’information de certificat suivante :
    X509:C=FR,O=ASIP-SANTE,OU=0002 987654321,OU=IGC-SANTE,CN=AC IGC-SANTE FORT PERSONNES<SR>SERIAL
    Avec les éléments suivants :
    SERIAL : Numéro de série du certificat de la carte CPS.

Récupération du numéro de série de la CPS

  1. Insérer la carte CPS dans le lecteur de carte à puce de l’ordinateur.
  2. Après quelques instants, ouvrir la console Gérer les certificats utilisateur de Windows.
  3. Depuis la console, développer l’arborescence Certificats – Utilisateur actuel / Personnel / Certificat.
  4. Accéder aux Propriétés du certificat de la carte CPS ayant pour rôle Authentification du client.
  5. Depuis la boîte de dialogue de Certificat, cliquer sur l’onglet détail puis relever la valeur du champ Numéro de série.
    CERTINFO DETAILS SN IGC.png
  6. Ensuite, inverser l’ordre de chaque octet composant le numéro de série. Par exemple, le numéro de série relever à l’étape précédente était :
SN 98 45 41 f5 2c 22 a2 33 08 fb 25 32 17 c4 12 15
N° Octet 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
Une fois sa séquence inversée, cela donne :
SN 15 12 c4 17 32 25 fb 08 33 a2 22 2c f5 41 45 98
N° Octet 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01
  • Voici la chaîne de certificat complète qu’il faudra renseigner dans le profil utilisateur à l’étape suivante :

X509:C=FR,O=ASIP-SANTE,OU=0002 987654321,OU=IGC-SANTE,CN=AC IGC-SANTE FORT PERSONNES<SR>1512c4173225fb0833a2222cf5414599

Paramétrage du compte Active Directory

  1. Depuis la console Centre d’administration Active Directory, ouvrir les propriétés du compte utilisateur pour lequel on souhaite paramétrer une authentification par carte CPE.
  2. Depuis le menu de navigation vertical, cliquer sur l’item Extensions :
    1. Depuis la section Extensions1, cliquer sur l’onglet Editeur d’attributs2.
    2. Cliquer sur l’attribut altSecurtyIdentities3 puis cliquer sur le bouton Modifier4.
      CAAD ACCOUNT PROPERTY EXTENSIONS ATTRIBUTS ALTSECURITYIDENTITIES.png
  3. Depuis la boîte de dialogue Editeur de chaînes à valeur multiples, coller la chaîne de caractère construite à l’étape Structure de la chaîne de certificat puis cliquer sur le bouton Ajouter. Cliquer sur le bouton OK pour valider le paramétrage.
    CAAD ACCOUNT PROPERTY EXTENSIONS ATTRIBUTS ALTSECURITYIDENTITIES ADD IGC.png