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/iisClientCertificateMappingAuthentication
et 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/iisClientCertificateMappingAuthentication
deApplicationHost.config <location path='Default web site'/>
. Définissez la cléenabled
àTrue
et assurez-vous que l’une ou les deux clésmanyToOneCertificateMappingsEnabled
etoneToOneCertificateMappingsEnabled
sont activées.Les mappages utilisateur doivent être écrits dans les clés
manyToOneMappings
ouoneToOneMappings
. 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
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 champsuserName
etpassword
requièrent le nom d’utilisateur et le mot de passe de l’utilisateur local que vous voulez mapper. Le champrules
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.
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 commandenitropy nk3 piv --experimental read-certificate --format PEM --key 9A
. Les champsuserName
etpassword
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.