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 HA Cloud:
Per trasmettere il certificato in un'intestazione
Impostare il nome dell'intestazione nel file container.properties del server di sessione HA Cloud:
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 HA Cloud possa leggere il valore.
NOTA:È necessario che l'autenticazione del certificato client venga effettuata tra il 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 HA Cloud 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>)
Per default, l'archivio attendibilità del server di sessione di HA Cloud contiene i certificati CA Java. In questo modo, il server di sessione di HA Cloud 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 HA Cloud:
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.