Utilizzo dell'autenticazione X.509 mediante il 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, è comunque necessario inviare il certificato client 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

  1. Impostare il nome dell'intestazione nel file container.properties del server di sessione HA Cloud:

    x509.header.client.cert=X-SSL-Client-Cert
  2. 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.

  3. 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 zfe.log per individuare le voci seguenti:

Attempting to extract certificate from X-SSL-Client-Cert header.
User <DN value> has been preauthenticated from <IP address>
(Tentativo di estrarre il certificato dall'intestazione X-SSL-Client-Cert.
Il <valore DN> dell'utente è stato preautenticato dall'<indirizzo IP>)

Altre configurazioni

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 in base al DN dell'emittente, impostare la proprietà seguente nel file container.properties del server di sessione di HA Cloud:

X509.client.cert.issuer=<valore DN>

Durante l'impostazione di questo valore, è necessario che il valore DN dell'emittente corrisponda esattamente al DN dell'emittente del certificato del bilanciamento del carico. Una volta impostato il valore dell'emittente, viene eseguito un ulteriore controllo per garantire che gli emittenti corrispondano. In caso contrario, l'autorizzazione avrà esito negativo.