Autenticazione client TLS con Internet Information Services (IIS)¶
Compatible Nitrokeys |
|||||||
---|---|---|---|---|---|---|---|
✓ active |
⨯ inactive |
⨯ inactive |
⨯ inactive |
⨯ inactive |
⨯ inactive |
⨯ inactive |
⨯ inactive |
Questa guida descrive la configurazione di Windows Internet Information Services (IIS) per l’autenticazione client TLS che mappa gli utenti agli account utente locali.
Viene mostrata la configurazione come esempio con il sito Web predefinito ** di IIS. La configurazione può essere utilizzata anche per altri siti, incluso o escluso il sito predefinito.
Prerequisits¶
Nitrokey 3 with PIV client authentication certificate.
Server Windows (server web)
DNS record
certificato TLS per il record DNS. I computer client devono fidarsi di questo certificato TLS.
Installazione¶
Open the Server Manager.
In the menubar on the top click Manage → Add Roles and Features.
Seguire la procedura guidata fino al passo Server Roles.
Selezionare il ruolo Web Server (IIS) dall’elenco dei ruoli disponibili.
Seguire la procedura guidata fino al passaggio Ruoli servizi sotto Ruolo server web (IIS).
Dall’elenco dei servizi di ruolo selezionare Web Server → Sicurezza → IIS Client Certificate Mapping Authentication.
Seguire la procedura guidata per l’installazione. L’installazione deve essere completata prima di poter iniziare la configurazione.
Configurazione¶
Aprire Internet Information Services (IIS) Manager (
InetMgr.exe
).Selezionare ed espandere il server Web che si desidera configurare nella struttura ad albero Connections a sinistra.
Dal pannello centrale aprire Configuration Editor. Aprite la sezione
system.webServer/security/authentication/iisClientCertificateMappingAuthentication
e sbloccatela facendo clic su Sblocca sezione nel riquadro Azioni a destra.Espandere il sito Sites sotto il server web e selezionare il sito da configurare.
Nel riquadro Actions a destra fare clic su Bindings….
Fare clic su Add… per visualizzare l’editor dei binding. Impostare il tipo su https e il nome host in base al record DNS e all’attributo Subject Alternative Name (SAN) del certificato TLS. Attivare la casella di controllo Disabilita TLS 1.3 su TCP. Nel campo Certificato SSL selezionare il rispettivo certificato. Confermare la configurazione con un clic su OK.
Suggerimento
Per comprendere il requisito di disabilitare TLS 1.3 e per le istruzioni di configurazione su come utilizzarlo con TLS 1.3 abilitato, fate riferimento a questo post del blog del supporto 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>` __.
Dal pannello centrale aprire Impostazioni SSL. Attivate la casella di controllo Require SSL e il pulsante di opzione sotto Client certificates è impostato su Require. Confermare la configurazione facendo clic su Apply nel riquadro Actions a destra.
Dal riquadro centrale aprire Autenticazione. Assicurarsi che tutti gli altri metodi di autenticazione siano disattivati per il sito. Il IIS Client Certificate Mapping Authentication non sarà mai visibile in questo elenco. Tornare alla radice del sito.
Importante
Se è abilitato un altro tipo di autenticazione, la mappatura del certificato client non funzionerà.
Dal pannello centrale aprite Configuration Editor. Aprire la sezione
system.webServer/security/authentication/iisClientCertificateMappingAuthentication
daApplicationHost.config <location path='Default web site'/>
. Impostare la chiaveenabled
suTrue
e assicurarsi che una o entrambe le chiavimanyToOneCertificateMappingsEnabled
eoneToOneCertificateMappingsEnabled
siano abilitate.Le mappature utente devono essere scritte nelle chiavi
manyToOneMappings
ooneToOneMappings
. La chiave da utilizzare dipende dalla mappatura desiderata. Informazioni sulla mappatura e spiegazioni più dettagliate sulla configurazione sono disponibili su Microsoft Learn.Per modificare una chiave, fare clic sul pulsante … alla fine del campo di testo del valore. Si aprirà l’editor di raccolte ** . Per creare una nuova mappatura, fare clic su Aggiungi nel riquadro Azioni a destra.
Mappatura da molti a uno
Compilare i campi come indicato nella tabella seguente.
Key
Valore
enabled
True
name
<name-for-the-collection>
password
<user-password>
permissionMode
Allow
userName
<username>
Il campo
name
è usato come identificatore della collezione e i campiuserName
epassword
richiedono il nome utente e la password dell’utente locale che si desidera mappare. Il camporules
deve contenere la descrizione dei certificati consentiti o negati. Per modificare la chiave delle regole, fare clic sul pulsante … alla fine del campo di testo del valore. Si aprirà una nuova finestra del Collection Editor. Per creare una nuova regola, fare clic su Aggiungi nel riquadro Azioni a destra.Compilare i campi come indicato nella tabella seguente.
Key
Valore
certificateField
Subject
certificateSubField
O
compareCaseSensitive
True
matchCriteria
<criteria-value-of-o-field-in-certificate-subject>
Chiudere le finestre di Collection Editor.
Mappatura One to One
Compilare i campi come indicato nella tabella seguente.
Key
Valore
certificate
<base64-encoded-certificate>
enabled
True
password
<user-password>
userName
<username>
Il certificato codificato Base64 per il campo
certificate
può essere ottenuto da Nitrokey con Nitropia e il comandonitropy nk3 piv --experimental read-certificate --format PEM --key 9A
. I campiuserName
epassword
richiedono il nome utente e la password dell’utente locale che si vuole mappare.Chiudere la finestra Collection Editor.
Confermare la configurazione facendo clic su Apply nel riquadro Actions a destra.
Il sito è ora configurato per l’autenticazione client TLS utilizzando la mappatura dell’account utente locale.