Authentification du client TLS avec Internet Information Services (IIS)

Compatible Nitrokeys

3A/C/Mini

Passkey

HSM 2

Pro 2

FIDO2

Storage 2

Start

U2F

active

inactive

inactive

inactive

inactive

inactive

inactive

inactive

Ce guide décrit la configuration des services d’information Internet (IIS) de Windows pour l’authentification client TLS qui associe les utilisateurs à des comptes d’utilisateurs locaux.

Il montre la configuration à titre d’exemple avec le site Web par défaut ** d’IIS. La configuration peut également être utilisée pour d’autres sites, y compris ou non le site par défaut.

Prerequisits

  • Nitrokey 3 with PIV client authentication certificate.

  • Serveur Windows (serveur web)

    • DNS record

    • Certificat TLS pour l’enregistrement DNS. Les ordinateurs clients doivent faire confiance à ce certificat TLS.

Installation

  1. Open the Server Manager.

  2. In the menubar on the top click Manage → Add Roles and Features.

  3. Suivez l’assistant jusqu’à l’étape Server Roles.

  4. Sélectionnez le rôle Web Server (IIS) dans la liste des rôles disponibles.

  5. Suivez l’assistant jusqu’à l’étape Rôles Services sous Rôle de serveur Web (IIS).

  6. Dans la liste des services de rôle, sélectionnez Web Server → Security → IIS Client Certificate Mapping Authentication.

  7. Suivez l’assistant pour l’installation. L’installation doit être terminée avant de pouvoir commencer la configuration.

Configuration

  1. Ouvrez le gestionnaire Internet Information Services (IIS) (InetMgr.exe).

  2. Sélectionnez et développez le serveur web que vous voulez configurer dans l’arborescence Connections à gauche.

  3. Dans le volet du milieu, ouvrez Configuration Editor. Ouvrez la section system.webServer/security/authentication/iisClientCertificateMappingAuthentication et déverrouillez-la en cliquant sur Unlock Section dans le volet Actions à droite.

  4. Développez la page Sites sous le serveur web et sélectionnez le site que vous souhaitez configurer.

  5. Dans le volet Actions à droite, cliquez sur Bindings….

  6. Cliquez sur Add…, ce qui fait apparaître l’éditeur de liaisons. Définissez le type sur https et le nom d’hôte en fonction de l’enregistrement DNS et de l’attribut Subject Alternative Name (SAN) du certificat TLS. Activez la case à cocher Disable TLS 1.3 over TCP. Dans le champ SSL certificate sélectionnez le certificat correspondant. Confirmez la configuration en cliquant sur OK.

    Astuce

    Pour comprendre la nécessité de désactiver TLS 1.3 et pour obtenir des instructions de configuration sur la façon de l’utiliser avec TLS 1.3 activé, reportez-vous à ce billet de blog du support Microsoft ` <https://techcommunity.microsoft.com/blog/iis-support-blog/windows-server-2022-iis-web-site-tls-1-3-does-not-work-with-client-certificate-a/4129738>` __.

  7. Dans le volet central, ouvrez SSL Settings. Activez la case à cocher Require SSL et le bouton radio sous Client certificates est réglé sur Require. Confirmez la configuration en cliquant sur Apply dans le volet Actions à droite.

  8. Dans le volet central, ouvrez Authentication. Assurez-vous que toutes les autres méthodes d’authentification sont désactivées pour le site. L’authentification IIS Client Certificate Mapping Authentication ne sera jamais visible dans cette liste. Retournez à la racine du site.

    Important

    Si un autre type d’authentification est activé, le mappage du certificat client ne fonctionnera pas.

  9. Dans le volet central, ouvrez Configuration Editor. Ouvrez la section system.webServer/security/authentication/iisClientCertificateMappingAuthentication de ApplicationHost.config <location path='Default web site'/>. Définissez la clé enabled à True et assurez-vous que l’une ou les deux clés manyToOneCertificateMappingsEnabled et oneToOneCertificateMappingsEnabled sont activées.

  10. Les mappages utilisateur doivent être écrits dans les clés manyToOneMappings ou oneToOneMappings. La clé à utiliser dépend du mappage souhaité. Vous trouverez des informations sur le mappage et des explications plus détaillées sur la configuration sur Microsoft Learn.

    Pour modifier une clé, cliquez sur le bouton à la fin du champ de texte de la valeur. Cela ouvrira l’éditeur de collection ** . Pour créer une nouvelle correspondance, cliquez sur Add dans le volet Actions à droite.

    1. Cartographie de plusieurs à un

      Remplissez les champs comme indiqué dans le tableau ci-dessous.

      Key

      Valeur

      enabled

      True

      name

      <name-for-the-collection>

      password

      <user-password>

      permissionMode

      Allow

      userName

      <username>

      Le champ name est utilisé comme identifiant de la collection et les champs userName et password requièrent le nom d’utilisateur et le mot de passe de l’utilisateur local que vous voulez mapper. Le champ rules doit contenir la description des certificats autorisés ou refusés. Pour modifier la clé des règles, cliquez sur le bouton à la fin du champ de texte de la valeur. Cela ouvrira une nouvelle fenêtre de l’éditeur de collection ** . Pour créer une nouvelle règle, cliquez sur Add dans le volet Actions à droite.

      Remplissez les champs comme indiqué dans le tableau ci-dessous.

      Key

      Valeur

      certificateField

      Subject

      certificateSubField

      O

      compareCaseSensitive

      True

      matchCriteria

      <criteria-value-of-o-field-in-certificate-subject>

      Fermez les fenêtres Collection Editor.

    2. Cartographie individuelle

      Remplissez les champs comme indiqué dans le tableau ci-dessous.

      Key

      Valeur

      certificate

      <base64-encoded-certificate>

      enabled

      True

      password

      <user-password>

      userName

      <username>

      Le certificat encodé en Base64 pour le champ certificate peut être obtenu à partir de la Nitrokey avec Nitropy et la commande nitropy nk3 piv --experimental read-certificate --format PEM --key 9A. Les champs userName et password requièrent le nom d’utilisateur et le mot de passe de l’utilisateur local auquel vous voulez les associer.

      Fermez la fenêtre de l’éditeur de collection ** .

    Confirmez la configuration en cliquant sur Apply dans le volet Actions à droite.

Le site est maintenant configuré pour l’authentification du client TLS à l’aide du mappage des comptes d’utilisateurs locaux.