Logon del client con Active Directory#

Questo documento spiega come utilizzare l’applicazione PIV di Nitrokey 3 per l’accesso tramite smartcard con Active Directory.

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

Avvertimento

L’applicazione PIV di Nitrokey 3 è attualmente considerata instabile e non è disponibile nelle versioni stabili del firmware. Per ottenere questa funzionalità è necessario installare un firmware di prova. I successivi aggiornamenti del firmware possono comportare la perdita di dati e chiavi crittografiche. Per ulteriori informazioni, consultare la documentazione sull’aggiornamento del firmware.

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.

  • Server Windows (le versioni supportate sono Windows Server 2016, 2019, 2022 in tutte le edizioni)
    • 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 con applicazione PIV.

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 consiglia di utilizzare l’algoritmo RSA con una lunghezza di chiave di 2048 Bit. Se si sceglie di utilizzare chiavi a curva ellittica (EC), è necessario apportare ulteriori modifiche ai computer client.

      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. 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 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#

L’accesso tramite smartcard richiede il provisioning di una Nitrokey per un utente in Active Directory. Il provisioning contiene la chiave privata e la generazione della Certificate Singing Request (CSR). Il certificato viene quindi scritto sulla 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.

Importante

Se l’applicazione PIV su Nitrokey non è stata utilizzata in precedenza, eseguire prima un’inizializzazione con nitropy nk3 piv init.

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

    nitropy nk3 piv generate-key --key 9A --algo <algorithm> --subject-name <subject-name> --subject-alt-name-upn <subject-alternative-name> --out-file <file>
    

    Il valore di <algorithm> è l’algoritmo utilizzato con la relativa lunghezza della chiave, ad esempio rsa2048. I valori di <subject-name> e <subject-alternative-name> corrispondono tipicamente agli attributi commonName e userPrincipalName dell’account utente di Active Directory.

  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 write-certificate --format PEM --path <file>
    

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

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.