Autenticazione X.509
L'autenticazione client X.509 consente ai client di autenticarsi con i server utilizzando certificati anziché nome utente e password, sfruttando lo standard dell'infrastruttura a chiave pubblica (PKI) X.509.
MSS fornisce ulteriori informazioni sulla configurazione di X.509.
Abilitazione dell'autenticazione client X.509
-
Quando l'utente accede al client Web mediante TLS, il browser invia un certificato al server di sessione identificando l'utente finale e completando l'handshake TLS.
-
Il server di sessione fa riferimento al proprio archivio attendibilità per verificare il certificato del client e la relativa attendibilità.
-
Quando la negoziazione TLS è stata completata, ossia l'utente finale è considerato attendibile dal server di sessione, questo invia il certificato pubblico dell'utente finale a MSS per ulteriore convalida.
-
Anche MSS conferma l'attendibilità del certificato dell'utente finale confrontandolo con il proprio archivio attendibilità.
-
Quando MSS termina la convalida, l'utente finale sarà stato autenticato correttamente.
La catena completa dei certificati del client deve essere presente negli archivi attendibilità del server di sessione e di MSS oppure deve essere firmata da un'autorità di certificazione presente in tali archivi.
Il browser determina il certificato del client da inviare utilizzando una configurazione specifica del browser o della smart card.
Passaggi di base
-
Confermare l'attendibilità dei certificati nel server di sessione e in MSS se questa operazione non è stata ancora eseguita.
-
Riavviare i server.
-
Configurare X.509 in MSS Administrative Console.
Confermare l'attendibilità del certificato in MSS e nel server di sessione
-
Confermare l'attendibilità del certificato in MSS
È possibile che l'archivio attendibilità di MSS contenga già il certificato dell'autorità di firma. Questo accade spesso con autorità di firma del certificato note e, in questo caso, ignorare questo passaggio.
Per verificare:
-
Aprire Administrative Console, fare clic su Configure Settings (Configura impostazioni) e aprire la scheda Trusted Certificates (Certificati attendibili). Aprire Trusted Root Certificate Authorities (Autorità di certificazione fonti attendibili) per visualizzare un elenco dei certificati disponibili.
-
Se il certificato non è presente nell'elenco, è necessario installare la CA radice di firma in MSS, attenendosi alle istruzioni e alla documentazione in Administrative Console.
-
Confermare l'attendibilità del certificato nel server di sessione
Per installare il certificato nel server di sessione:
Importare il certificato in
<directory-installazione>\sessionserver\etc
:
keytool -importcert -file <cert-file> -alias <alias-to-store-cert-under>
-keystore trustcerts.bcfks -storetype bcfks -providername BCFIPS
-providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider
-providerpath ../lib/bc-fips-*.jar
-storepass changeit
Riavviare tutti i server
Per rendere effettiva la configurazione, è necessario riavviare tutti i server.
Configurazione di X.509 con failover LDAP in MSS Administrative Console
Una volta importati i certificati, è possibile abilitare X.509 con l'opzione Fallback to LDAP authentication (Fallback all'autenticazione LDAP) in Management and Security Server Administrative Console | Configure Settings (Configura impostazioni) | Authentication & Authorization (Autenticazione e autorizzazione). Per le descrizioni delle opzioni di configurazione, vedere la Guida online di Administrative Console.
Abilitazione dell'autenticazione X.509 mediante un sistema di bilanciamento del carico configurato per l'interruzione TLS
In questa configurazione, il bilanciamento del carico fornisce l'autenticazione dell'utente finale convalidando il certificato client. Tuttavia, il certificato client deve ancora essere inviato a tutti i sistemi MSS per identificare l'utente in entrata.
Se il bilanciamento del carico è configurato per interrompere la connessione TLS, è possibile aggiungere il certificato dell'utente a un'intestazione HTTP, estratta dal server di sessione, quindi passare a MSS per l'autorizzazione. Per trasmettere il certificato in un'intestazione, è necessario innanzitutto impostare il nome dell'intestazione nel file container.properties
del server di sessione HACloud:
Per trasmettere il certificato in un'intestazione
-
Impostare il nome dell'intestazione nel file container.properties del server di sessione HACloud:
x509.header.client.cert=X-SSL-Client-Cert
-
Impostare il valore dell'intestazione sul certificato dell'utente nella configurazione del bilanciamento del carico. Ad esempio, se si utilizza un BigIP iRule:
HTTP::header insert X-SSL-Client-Cert [URI::encode $client_cert]
In questo modo si presuppone che
$client _cert
sia stato impostato sul certificato dell'utente in formato PEM. Se il certificato dell'utente è in formato DER, utilizzare la codifica Base64:HTTP::header insert X-SSL-Client-Cert [b64encode $client_cert]
La codifica del certificato assicura che il valore dell'intestazione sia una riga di testo ASCII. Questo è necessario affinché il server di sessione di HACloud possa leggere il valore.
Nota
È tuttora necessario che l'autenticazione del certificato client venga effettuata tra il sistema di bilanciamento del carico e il server di sessione. È necessario configurare il bilanciamento del carico per inviare il certificato al server di sessione e che la CA del bilanciamento del carico sia presente nell'archivio attendibilità del server di sessione.
-
Una volta configurato il bilanciamento del carico per inviare il relativo certificato al server di sessione di HACloud e il certificato dell'utente da trasmettere nell'intestazione, riavviare il server di sessione.
La connessione a un certificato o a una smart card tramite il bilanciamento del carico comporterà la corretta autenticazione e l'autorizzazione come l'utente rappresentato dal certificato. Per verificare il corretto funzionamento, impostare il livello di log del server di sessione su DEBUG ed esaminare il file sessionserver.log per voci come queste:
Attempting to extract certificate from X-SSL-Client-Cert header (Tentativo di estrazione del certificato dall'intestazione X-SSL-Client-Cert).
User <DN value> has been preauthenticated from <IP address> (Il <valore DN> dell'utente è stato preautenticato dall'<indirizzo IP>)
Altre configurazioni
Per default, l'archivio attendibilità del server di sessione di HACloud contiene i certificati CA Java. In questo modo, il server di sessione di HACloud accetterà tutti i certificati client firmati dalle CA conosciute. Per assicurare che solo i bilanciamenti del carico desiderati vengano collegati al server di sessione, è necessario rimuovere i certificati CA Java dall'archivio attendibilità e verificare che qui siano installati solo i certificati necessari.
Per filtrare i certificati client consentiti per DN dell'emittente, impostare le seguenti proprietà nel file container.properties
del server di sessione HACloud:
X509.client.cert.issuer=<Valore DN>
X509.client.cert.subject=<Valore DN del soggetto>
X509.client.cert.serial=<Numero di serie>
X509.client.cert.sha1=<Impronta digitale SHA1>
X509.client.cert.sha256=<Impronta digitale SHA256>
I valori DN devono corrispondere esattamente al DN dell'oggetto o all'emittente del certificato del bilanciamento del carico. Il valore del numero di serie deve essere un valore decimale (base 10). È necessario immettere i valori delle impronte digitali SHA1 e SHA256 in formato esadecimale. Se si imposta una di queste proprietà, vengono verificati gli attributi del certificato in entrata per garantire che corrispondano ai valori delle proprietà specificati. L'autorizzazione avrà esito negativo se i valori non corrispondono.