Logon del client con Active Directory

Compatible Nitrokeys

3A/C/Mini

Passkey

HSM 2

Pro 2

FIDO2

Storage 2

Start

U2F

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.

In futuro, questo provisioning manuale potrà essere automatizzato attraverso un MiniDriver di Windows.

Prerequisiti

La configurazione richiede l’accesso amministrativo ai computer che eseguono Active Directory Directory Services (ADDS) e Active Directory Certificate Services (ADCS). Sul computer client è richiesto solo l’accesso al rispettivo account utente utilizzato per l’accesso.

  • Windows server (supported versions are Windows Server 2016, 2019, 2022, 2025 in Standard and Enterprise editions)
    • Ruolo ADDS installato e configurato.

    • Ruolo ADCS installato e Enterprise-CA con certificato root configurato.
      • Per ogni controller di dominio (DC) devono essere emessi i certificati Domain Controller, Domain Controller Authentication e Kerberos Authentication.

      • Se i client escono dalla rete aziendale, assicuratevi che le liste di revoca dei certificati (CRL) complete e delta pubblicate siano recuperabili dalle reti esterne.

  • Windows client (le versioni supportate sono Windows 10, 11 nelle edizioni Professional e Enterprise)
    • Il client deve essere un membro del dominio Active Directory (AD).

  • Nitrokey 3 with PIV smart card.

Configurare l’accesso con smartcard per l’uso con Active Directory (AD)

L’accesso tramite smartcard richiede un modello di certificato nell’autorità di certificazione (CA) del dominio. Questo modello definisce i valori e i vincoli dei certificati utente. Viene utilizzato per firmare la richiesta di certificato (CSR) durante il provisioning di Nitrokey.

  1. La firma di una richiesta di certificato per l’accesso tramite smartcard richiede la creazione di un modello di certificato nell’autorità di certificazione.

    1. Dalla riga di comando, da PowerShell o da Esegui, digitare certtmpl.msc e premere Invio.

    2. Nel riquadro dei dettagli selezionare il modello Smartcard Logon.

    3. Nella barra dei menu fare clic su Actions → All Tasks → Duplicate Template.

    4. Impostare le impostazioni sottostanti sul modello, in base alla scheda citata.

      Compatibilità
      • Disabilita Mostra le modifiche risultanti

      • Impostare Autorità di certificazione e Destinatario del certificato ai client più vecchi del dominio che si suppone utilizzino l’accesso tramite smartcard.

        Importante

        Se si desidera utilizzare chiavi a curva ellittica (EC), i client non devono essere più vecchi di Windows Server 2008 e Windows Vista.

      Generale
      • Impostare un nome di visualizzazione del modello **** .

      • Impostare il periodo di validità **** e il periodo di rinnovo **** .

      Gestione delle richieste
      • Impostare uno scopo di Signature e smartcard logon.

      Crittografia
      • Impostare una categoria di provider di Key Storage Provider.

      • Impostare il nome di un algoritmo e la dimensione minima della chiave.

        Importante

        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.

      Nome del soggetto
      • Impostare Fornitura nella richiesta.

    5. Confermare la creazione del modello con OK.

  2. Dopo la creazione di un modello di certificato, il modello deve essere emesso per essere utilizzato dai client.

    1. From the Command Line, PowerShell, or Run, type certmgr.msc and press Enter.

    2. Nel riquadro di navigazione espandere l’Autorità di certificazione (CA) e navigare in Modelli di certificato.

    3. Nella barra dei menu fare clic su Action → New → Certificate Template to Issue.

    4. Selezionare il modello di certificato che si desidera emettere e confermare con OK.

Provisionare Nitrokey 3 per l’accesso tramite smartcard con 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.

Avvertimento

Prima di seguire i passaggi seguenti, accertarsi che l’account utente di Active Directory che si desidera utilizzare per l’accesso tramite smartcard esista. Se l’ora di creazione del certificato è precedente all’ora di creazione dell’account utente, l’accesso non sarà possibile.

  1. Generare una chiave privata e scrivere il CSR su file con il comando seguente.

    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 the distinguishedName 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 the userPrincipalName attribute of the Active Directory user account.

  2. Firmare il CSR con l’autorità di certificazione (CA) del dominio con il comando seguente.

    certreq -attrib CertificateTemplate:<template-name> -submit <file>
    

    Il valore di <template-name> è il nome del modello di certificato per l’accesso tramite smartcard. Il valore di <file> è il file di richiesta del certificato di canto.

  3. Scrivete il certificato firmato su Nitrokey con il comando seguente.

    nitropy nk3 piv --experimental write-certificate --key 9A --format PEM --path <file>
    

    Il valore di <file> è il file del certificato.

  4. Mappare il certificato con l’account utente di Active Directory. Creare le mappature dei certificati con il comando seguente.

    nitropy nk3 piv --experimental get-windows-auth-mapping
    

    Choose one of the offered certificate mappings.

    Suggerimento

    Microsoft raccomanda l’uso della mappatura X509IssuerSerialNumber.

    Scrivere la mappatura scelta nell’attributo altSecurityIdentities dell’oggetto utente di Active Directory. Per questa operazione è possibile utilizzare l’applicazione Active Directory Users and Computers o PowerShell.

    1. From the Command Line, PowerShell, or Run, type dsa.msc and press Enter.

    2. In the menu bar click View → Advanced Features.

    3. Selezionare il rispettivo oggetto utente.

    4. In the menu bar click Action → Properties.

    5. Aprire la scheda Attribute Editor.

    6. Selezionare l’attributo altSecurityIdentities.

    7. Click on Edit.

    8. Insert the certificate mapping in the text field and click Add.

    9. Applicare la modifica con un clic su OK.

    Importante

    Se la mappatura del certificato non è impostata correttamente, quando si tenta di accedere si riceve il messaggio di errore Logon screen message: Your credentials could not be verified.. Inoltre, nel registro eventi di sistema di Windows verrà visualizzato il messaggio di evento riportato di seguito.

    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.
    

Revocare l’accesso con smartcard per l’uso con Active Directory (AD)

I certificati di accesso degli utenti emessi sono elencati nell’Active Directory Certificate Services (ADCS). Dall’ADCS è possibile revocare i certificati, aggiungendoli alla Certificate Revocation List (CRL) configurata. Questa operazione è necessaria in caso di perdita o rottura di Nitrokey.

Importante

Si consiglia vivamente di non lasciare mai i certificati utente inutilizzati senza revocarli.

Nota

È possibile revocare temporaneamente un certificato con il motivo Certificate Hold. Questa revoca può essere revocata e non è quindi permanente.

  1. Dalla riga di comando, da PowerShell o da Esegui, digitare certsrv.msc e premere Invio.

  2. Nel riquadro di navigazione espandere l’autorità di certificazione (CA) e navigare in Issued Certificates.

  3. Nel riquadro dei dettagli selezionare il certificato utente che si desidera revocare.

  4. Nella barra dei menu fare clic su Action → All Tasks → Revoke Certificate.

  5. Specificare il motivo della revoca, la data e l’ora e confermare con .

  6. Nel riquadro di navigazione, navigare in Certificati revocati.

  7. Nella barra dei menu fare clic su Action → All Tasks → Publish.

  8. Selezionare l’elenco di revoche che si desidera pubblicare e confermare con OK.

Nota

Durante ogni tentativo di accesso con smartcard, Windows controlla se il certificato presentato dalla smartcard è presente in una lista di revoca dei certificati (CRL). Se il certificato è presente in una CRL, l’accesso viene negato. Ogni CRL contiene una validità che ne determina la scadenza. Windows memorizza nella cache le CRL recuperate e le aggiorna se la CRL sta per scadere. Pertanto, la revoca non è immediata e dipende dalla scadenza della CRL in possesso del client.

Importare un certificato smartcard dell’utente nell’archivio certificati personale

Il certificato utente memorizzato su Nitrokey può essere importato nell’archivio certificati personale dell’utente. In alcune situazioni questa è una procedura necessaria.

  1. Assicuratevi di aver effettuato l’accesso all’account utente a cui corrisponde il certificato.

  2. Dalla riga di comando, da PowerShell o da Esegui, digitare certsrv.msc e premere Invio.

  3. Nel riquadro di navigazione espandere l’archivio chiavi Personal e spostarsi su Certificates.

  4. Nella barra dei menu fare clic su Action → All Tasks → Import.

  5. Seguire la procedura guidata di importazione e fornire il file del certificato utente quando richiesto.

  6. Al termine dell’importazione, controllare il riquadro dei dettagli del certificato importato. Se Nitrokey è connessa, le proprietà del certificato dovrebbero mostrare il messaggio Si dispone di una chiave privata corrispondente a questo certificato. indicando che è stato possibile identificare la chiave privata su Nitrokey.