Authentification du client TLS avec Internet Information Services (IIS)¶
Compatible Nitrokeys |
|||||||
|---|---|---|---|---|---|---|---|
✓ 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¶
Open the Server Manager.
In the menubar on the top click Manage → Add Roles and Features.
Suivez l’assistant jusqu’à l’étape Server Roles.
Sélectionnez le rôle Web Server (IIS) dans la liste des rôles disponibles.
Suivez l’assistant jusqu’à l’étape Rôles Services sous Rôle de serveur Web (IIS).
Dans la liste des services de rôle, sélectionnez Web Server → Security → IIS Client Certificate Mapping Authentication.
Suivez l’assistant pour l’installation. L’installation doit être terminée avant de pouvoir commencer la configuration.
Configuration¶
Ouvrez le gestionnaire Internet Information Services (IIS) (
InetMgr.exe).Sélectionnez et développez le serveur web que vous voulez configurer dans l’arborescence Connections à gauche.
Dans le volet du milieu, ouvrez Configuration Editor. Ouvrez la section
system.webServer/security/authentication/iisClientCertificateMappingAuthenticationet déverrouillez-la en cliquant sur Unlock Section dans le volet Actions à droite.Développez la page Sites sous le serveur web et sélectionnez le site que vous souhaitez configurer.
Dans le volet Actions à droite, cliquez sur Bindings….
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>` __.
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.
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.
Dans le volet central, ouvrez Configuration Editor. Ouvrez la section
system.webServer/security/authentication/iisClientCertificateMappingAuthenticationdeApplicationHost.config <location path='Default web site'/>. Définissez la cléenabledàTrueet assurez-vous que l’une ou les deux clésmanyToOneCertificateMappingsEnabledetoneToOneCertificateMappingsEnabledsont activées.Les mappages utilisateur doivent être écrits dans les clés
manyToOneMappingsouoneToOneMappings. 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.
Cartographie de plusieurs à un
Remplissez les champs comme indiqué dans le tableau ci-dessous.
Key
Valeur
enabledTruename<name-for-the-collection>password<user-password>permissionModeAllowuserName<username>Le champ
nameest utilisé comme identifiant de la collection et les champsuserNameetpasswordrequièrent le nom d’utilisateur et le mot de passe de l’utilisateur local que vous voulez mapper. Le champrulesdoit 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
certificateFieldSubjectcertificateSubFieldOcompareCaseSensitiveTruematchCriteria<criteria-value-of-o-field-in-certificate-subject>Fermez les fenêtres Collection Editor.
Cartographie individuelle
Remplissez les champs comme indiqué dans le tableau ci-dessous.
Key
Valeur
certificate<base64-encoded-certificate>enabledTruepassword<user-password>userName<username>Le certificat encodé en Base64 pour le champ
certificatepeut être obtenu à partir de la Nitrokey avec Nitropy et la commandenitropy nk3 piv --experimental read-certificate --format PEM --key 9A. Les champsuserNameetpasswordrequiè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.