Connexion du client avec Active Directory¶
Compatible Nitrokeys |
|||||||
---|---|---|---|---|---|---|---|
✓ active |
⨯ inactive |
⨯ inactive |
⨯ inactive |
⨯ inactive |
⨯ inactive |
⨯ inactive |
⨯ inactive |
This document explains how to use the PIV smart card of a Nitrokey 3 for logon with Active Directory. It is available as of firmware version 1.8 and higher.
À l’avenir, ce provisionnement manuel pourra être automatisé au moyen d’un mini-pilote Windows.
Conditions préalables¶
L’installation nécessite un accès administratif aux machines exécutant les services d’annuaire Active Directory (ADDS) et les services de certificats Active Directory (ADCS). Sur l’ordinateur client, seul l’accès au compte utilisateur utilisé pour la connexion est nécessaire.
- Windows server (supported versions are Windows Server 2016, 2019, 2022, 2025 in Standard and Enterprise editions)
Le rôle ADDS est installé et configuré.
- Rôle ADCS installé et Enterprise-CA avec certificat racine configuré.
Chaque contrôleur de domaine (DC) doit avoir un certificat Domain Controller, Domain Controller Authentication, et Kerberos Authentication délivré.
Si des clients quittent le réseau de l’entreprise, assurez-vous que les listes de révocation de certificats (CRL) complètes et delta publiées peuvent être récupérées à partir de réseaux externes.
- Client Windows (les versions prises en charge sont Windows 10, 11 dans les éditions Professional et Enterprise)
Le client doit être membre du domaine Active Directory (AD).
Nitrokey 3 with PIV smart card.
Configurer l’ouverture de session par carte à puce pour l’utilisation d’Active Directory (AD)¶
La connexion par carte à puce nécessite un modèle de certificat dans l’autorité de certification (CA) du domaine. Ce modèle définit les valeurs et les contraintes des certificats d’utilisateur. Il est utilisé pour signer la demande de certificat (CSR) lors du provisionnement de la Nitrokey.
La signature d’une demande de certificat pour la connexion par carte à puce nécessite la création d’un modèle de certificat dans l’autorité de certification.
À partir de la ligne de commande, de PowerShell ou de Run, tapez
certtmpl.msc
et appuyez sur Entrée.Dans le panneau de détail, sélectionnez le modèle Smartcard Logon.
Dans la barre de menu, cliquez sur Actions → All Tasks → Duplicate Template.
Définissez les paramètres ci-dessous sur le modèle, conformément à l’onglet mentionné.
- Compatibilité
Désactiver Afficher les changements qui en résultent
Définissez Autorité de certification et Destinataire du certificat pour les clients les plus anciens du domaine qui sont censés utiliser l’ouverture de session par carte à puce.
Important
Si vous souhaitez utiliser des clés à courbe elliptique (EC), vos clients ne doivent pas être plus anciens que Windows Server 2008 et Windows Vista.
- Général
- Traitement des demandes
Définir un objectif de Signature et connexion par carte à puce.
- Cryptographie
Définir une catégorie de fournisseur de Fournisseur de stockage de clés.
Définir le nom de l’algorithme et la taille minimale de la clé.
Important
Microsoft recommends to use the RSA algorithm with a key length of
2048
Bit. If you choose to use Elliptic Curve (EC) keys you need to make additional changes on your client computers.
- Nom du sujet
Définir Fournir dans la demande.
Confirmez la création du modèle avec OK.
Après la création d’un modèle de certificat, celui-ci doit être émis pour être utilisé par les clients.
From the Command Line, PowerShell, or Run, type
certmgr.msc
and press Enter.Dans le volet de navigation, développez l’autorité de certification (CA) et naviguez jusqu’à Certificate Templates.
Dans la barre de menu, cliquez sur Action → New → Certificate Template to Issue.
Sélectionnez le modèle de certificat que vous souhaitez émettre et confirmez avec OK.
Provisionner Nitrokey 3 pour l’ouverture de session par carte à puce avec Active Directory¶
The smartcard logon requires to provision a Nitrokey for a user in Active Directory. The provisioning contains the private key and Certificate Singing Request (CSR) generation. The certificate is then written to the Nitrokey.
Avertissement
Avant de suivre les étapes ci-dessous, assurez-vous que le compte d’utilisateur Active Directory que vous souhaitez utiliser pour la connexion par carte à puce existe. Si l’heure de création du certificat est antérieure à l’heure de création du compte d’utilisateur, la connexion échouera.
Générez une clé privée et écrivez la CSR dans un fichier à l’aide de la commande ci-dessous.
nitropy nk3 piv --experimental generate-key --key 9A --algo <algorithm> --subject-name <subject-name> --subject-alt-name-upn <subject-alternative-name> --path <file>
The value of
<algorithm>
is the used algorithm with its key length, e.g.rsa2048
. The value of<subject-name>
corresponds to the value of thedistinguishedName
attribute of the Active Directory user account. In most cases it is only necessary to include the common name part of the distinguished name, e.g.CN=John Doe
. The value of<subject-alternative-name>
corresponds to the value of theuserPrincipalName
attribute of the Active Directory user account.Signer la CSR avec l’autorité de certification (CA) du domaine à l’aide de la commande ci-dessous.
certreq -attrib CertificateTemplate:<template-name> -submit <file>
La valeur de
<template-name>
est le nom du modèle de certificat pour la connexion par carte à puce. La valeur de<file>
est le fichier de demande de chant de certificat.Inscrivez le certificat signé dans le Nitrokey à l’aide de la commande ci-dessous.
nitropy nk3 piv --experimental write-certificate --key 9A --format PEM --path <file>
La valeur de
<file>
est le fichier de certificat.Associez le certificat au compte d’utilisateur Active Directory. Créez les mappages de certificats à l’aide de la commande ci-dessous.
nitropy nk3 piv --experimental get-windows-auth-mapping
Choose one of the offered certificate mappings.
Astuce
Microsoft recommande l’utilisation de la correspondance
X509IssuerSerialNumber
.Inscrivez le mappage choisi dans l’attribut
altSecurityIdentities
de l’objet utilisateur Active Directory. Vous pouvez utiliser l’application Active Directory Users and Computers ou PowerShell pour cette opération.From the Command Line, PowerShell, or Run, type
dsa.msc
and press Enter.In the menu bar click View → Advanced Features.
Sélectionnez l’objet utilisateur correspondant.
In the menu bar click Action → Properties.
Ouvrez l’onglet Éditeur d’attributs.
Sélectionnez l’attribut
altSecurityIdentities
.Click on Edit.
Insert the certificate mapping in the text field and click Add.
Appliquez la modification en cliquant sur OK.
Ouvrez PowerShell.
Ajoutez la valeur avec
Set-ADUser -Identity "<sAMAccountName>" -Add @{altSecurityIdentities="<certificate-mapping>"}
, en remplaçant<sAMAccountName>
par la valeur du nom de connexion de l’utilisateur et<certificate-mapping>
par le mappage du certificat choisi ci-dessus.
Important
Si le mappage des certificats n’est pas correctement défini, vous recevrez le message d’erreur
Logon screen message: Your credentials could not be verified.
lorsque vous tenterez de vous connecter. En outre, vous verrez le message d’événement ci-dessous dans le journal des événements du système Windows.Source
Kerberos-Key-Distribution-Center
Message
The Key Distribution Center (KDC) encountered a user certificate that was valid but could not be mapped to a user in a secure way (such as via explicit mapping, key trust mapping, or a SID). Such certificates should either be replaced or mapped directly to the user via explicit mapping. See https://go.microsoft.com/fwlink/?linkid=2189925 to learn more.
Révoquer la connexion par carte à puce pour l’utilisation d’Active Directory (AD)¶
Les certificats de connexion délivrés aux utilisateurs sont répertoriés dans les services de certificats de l’Active Directory (ADCS). Les certificats peuvent être révoqués à partir de l’ADCS, ce qui les ajoute à la liste de révocation des certificats (CRL) configurée. Ceci est nécessaire en cas de perte ou de panne de Nitrokey.
Important
Il est fortement conseillé de ne jamais laisser de certificats d’utilisateur inutilisés sans les révoquer.
Note
Il est possible de révoquer temporairement un certificat pour la raison suivante : Certificate Hold. Cette révocation peut être annulée et n’est donc pas permanente.
À partir de la ligne de commande, de PowerShell ou de Run, tapez
certsrv.msc
et appuyez sur Entrée.Dans le volet de navigation, développez l’autorité de certification (CA) et naviguez jusqu’à Issued Certificates.
Dans le volet détaillé, sélectionnez le certificat d’utilisateur que vous souhaitez révoquer.
Dans la barre de menu, cliquez sur Action → All Tasks → Revoke Certificate.
Précisez le motif de la révocation, la date et l’heure, et confirmez par Yes.
Dans le volet de navigation, allez à Certificats révoqués.
Dans la barre de menu, cliquez sur Action → All Tasks → Publish.
Sélectionnez la liste de révocation que vous souhaitez publier et confirmez avec OK.
Note
Lors de chaque tentative de connexion par carte à puce, Windows vérifie si le certificat présenté par la carte à puce figure dans une liste de révocation de certificats (CRL). Si le certificat figure dans une CRL, la connexion est refusée. Chaque CRL contient une date d’expiration. Windows met en cache les CRL recherchées et les met à jour si la CRL est sur le point d’expirer. La révocation n’est donc pas immédiate et dépend de l’expiration de la CRL dont dispose le client.
Importer un certificat de carte à puce d’utilisateur dans le magasin de certificats personnels¶
Le certificat d’utilisateur stocké sur la Nitrokey peut être importé dans le magasin de certificats personnel de l’utilisateur. Dans certaines situations, il s’agit d’une procédure obligatoire.
Assurez-vous que vous êtes connecté au compte d’utilisateur auquel le certificat correspond.
À partir de la ligne de commande, de PowerShell ou de Run, tapez
certsrv.msc
et appuyez sur Entrée.Dans le volet de navigation, développez le magasin de clés Personal et naviguez jusqu’à Certificats.
Dans la barre de menu, cliquez sur Action → All Tasks → Import.
Suivez l’assistant d’importation et fournissez le fichier de certificat d’utilisateur lorsque cela vous est demandé.
Une fois l’importation terminée, vérifiez le panneau de détail du certificat importé. Si la Nitrokey est connectée, les propriétés du certificat devraient afficher le message Vous avez une clé privée qui correspond à ce certificat. indiquant que la clé privée sur la Nitrokey a pu être identifiée.
Assurez-vous que vous êtes connecté au compte d’utilisateur auquel le certificat correspond.
Ouvrez PowerShell.
Import the certificate with
Import-Certificate -CertStoreLocation Cert:\CurrentUser\My -FilePath <path>
, replacing<file>
with the certificate file path.After the import completed check for the certificate with
Get-ChildItem Cert:\CurrentUser\My
.