Uso de la autenticación X.509 mediante un equilibrador de carga configurado para la finalización de TLS

En esta configuración, el equilibrador de carga proporciona autenticación de usuario final al validar su certificado de cliente. Sin embargo, el certificado de cliente debe enviarse a todos los sistemas de MSS para poder identificar al usuario de entrada.

Si el equilibrador de carga se ha configurado para finalizar la conexión TLS, el certificado del usuario puede añadirse a un encabezado HTTP; el servidor de sesión puede extraerlo y, a continuación, transferirlo a MSS para la autorización. Para transferir el certificado en un encabezado, defina primero el nombre del encabezado en el archivo container.properties del servidor de sesión de HA Cloud:

Para transferir el certificado en un encabezado

  1. Defina el nombre del encabezado en el archivo container.properties del servidor de sesión de HA Cloud:

    x509.header.client.cert=X-SSL-Client-Cert
  2. Defina el valor de encabezado en el certificado del usuario, en la configuración del equilibrador de carga. Por ejemplo, mediante una iRule de BigIP:

    HTTP::header insert X-SSL-Client-Cert [URI::encode $client_cert]

    En este caso, se presupone que $client_cert se ha definido en el certificado del usuario en formato PEM. Si el certificado del usuario está en formato DER, utilice la codificación Base64:

    HTTP::header insert X-SSL-Client-Cert [b64encode $client_cert]

    La codificación del certificado garantiza que el valor del encabezado sea una línea de texto ASCII. Esto es necesario para que el servidor de sesión de HA Cloud lea el valor.

    NOTA:La autenticación del certificado de cliente debe realizarse entre el equilibrador de carga y el servidor de sesión. El equilibrador de carga debe configurarse para que envíe su certificado al servidor de sesión y la CA del equilibrador de carga debe estar presente en el almacén de confianza del servidor de sesión.

  3. Después de configurar el equilibrador de carga para que envíe su certificado al servidor de sesión de HA Cloud y de configurar el certificado del usuario para que se transfiera en el encabezado, reinicie el servidor de sesión.

Si se conecta con un certificado o una tarjeta inteligente a través del equilibrador de carga, la autenticación y la autorización como el usuario representado por el certificado se completarán correctamente. Para verificar el funcionamiento correcto, defina el nivel de registro del servidor de sesión en DEBUG (depuración) y examine el archivo sessionserver.log en busca de entradas como las siguientes:

Attempting to extract certificate from X-SSL-Client-Cert header.
  User <DN value> has been preauthenticated from <IP address>. (Intentando extraer el certificado del encabezado X-SSL-Client-cert. El valor <valor de DN> del usuario se ha autenticado previamente desde <dirección IP>).

Configuración adicional

Por defecto, el almacén de confianza del servidor de sesión de HA Cloud contiene los certificados de CA de Java. Por lo tanto, el servidor de sesión de HA Cloud aceptará cualquier certificado de cliente firmado por CA conocidas. Para garantizar que solo los equilibradores de carga deseados se conecten al servidor de sesión, debe eliminar los certificados de CA de Java del almacén de confianza y asegurarse de que solo los certificados necesarios estén instalados en el almacén de confianza.

Para filtrar los certificados de cliente permitidos por nombre completo (DN) del emisor, defina las siguientes propiedades del archivo container.properties del servidor de sesión de HA Cloud:

X509.client.cert.issuer=<Valor de DN>
   X509.client.cert.subject=<Valor de DN del asunto>
   X509.client.cert.serial=<Número de serie>
   X509.client.cert.sha1=<Huella SHA1>
   X509.client.cert.sha256=<Huella SHA256>

Los valores de DN deben coincidir exactamente con el emisor de certificado o el nombre completo (DN) del asunto del equilibrador de carga. El valor de número de serie debe ser un valor decimal (base 10). Los valores de huella SHA1 y SHA256 se deben especificar en formato hexadecimal. Una vez que se haya definido alguna de estas propiedades, se comprobarán los atributos del certificado entrante para garantizar que coincidan con los valores de propiedades especificados. No se podrá completar la autorización si alguno de estos valores no coinciden.