Avec la fonctionnalité d'authentification par certificat du périphérique client, vous pouvez configurer l'authentification par certificat pour les systèmes clients sur Horizon Client pour Linux. Unified Access Gateway authentifie les systèmes clients. La bibliothèque SoftHSM2 gère la distribution et le déploiement des certificats sur le système client. Une fois l'authentification du périphérique effectuée, l'utilisateur doit toujours exécuter l'authentification de l'utilisateur.
Conditions préalables
Cette fonction a les exigences suivantes :
- Unified Access Gateway 2.6 ou version ultérieure
- Horizon 7 version 7.5 ou version ultérieure
- Le système client est équipé d'un certificat d'autorité de certification (CA) racine qu'Unified Access Gateway accepte
Pour plus d'informations sur la configuration d'Unified Access Gateway, reportez-vous à la Documentation d'Unified Access Gateway.
Configurer le système client Linux pour l'authentification par certificat de périphérique
Pour configurer l'authentification par certificat de périphérique, vous devez effectuer ces tâches générales :
- Installez la bibliothèque SoftHSM2 sur le système.
- Créez un jeton cryptographique pour la bibliothèque SoftHSM2.
- Préparez le certificat de périphérique et les clés publique et privée.
- Importez le certificat et le fichier de clés dans la base de données SoftHSM2.
- Configurez la bibliothèque SoftHSM2 qu'Horizon Client utilisera.
La procédure suivante fournit des instructions pour terminer la configuration sur un système client Linux général. Des étapes spécifiques peuvent varier en fonction de votre distribution Linux.
- Installez la bibliothèque SoftHSM2 sur le système client Linux en utilisant l'une des méthodes suivantes.
- Méthode 1 : utiliser les outils de gestion de modules.
Par exemple, sur un système Ubuntu, vous pouvez exécuter la commande suivante.
sudo apt-get install softhsm2
- Méthode 2 : compiler et installer la bibliothèque SoftHSM2 manuellement.
- Clonez le référentiel de code source SoftHSM2 sur le système.
git clone https://github.com/opendnssec/SoftHSMv2.git
- Compilez, configurez et installez la bibliothèque SoftHSM2 à partir du code source cloné.
Note : Horizon Client installe sa propre bibliothèque OpenSSL et utilise également la bibliothèque OpenSSL liée à SoftHSM2. Pour éviter tout conflit lors de l'exécution, assurez-vous que vous liez SoftHSM2 à la même bibliothèque OpenSSL installée par Horizon Client.
Dans l'exemple de commande suivant, <path to OpenSSL library> doit contenir le chemin d'accès « include » et « lib ».
cd SoftHSMv2/ sh autogen.sh ./configure --with-crypto-backend=openssl --with-openssl=<path to OpenSSL library> make sudo make install
- Clonez le référentiel de code source SoftHSM2 sur le système.
- Méthode 1 : utiliser les outils de gestion de modules.
- Créez un jeton cryptographique pour la bibliothèque SoftHSM2.
Par défaut, SoftHSM2 dispose d'un emplacement de jeton. Lorsque vous initialisez un jeton dans le premier emplacement, cela ajoute automatiquement un second emplacement. Les emplacements suivants sont ajoutés à mesure que vous initialisez un nouveau jeton dans chaque emplacement.
- Exécutez la commande pour créer le jeton.
softhsm2-util --init-token --slot 0 --label "<your token label>"
- Notez l'ID d'emplacement renvoyé par la commande de création d'un jeton. Vous aurez besoin de cet ID d'emplacement ultérieurement lorsque vous importerez des fichiers de clé et de certificat de périphérique X.509 dans la base de données SoftHSM2.
- Exécutez la commande pour créer le jeton.
- Préparez le certificat de périphérique X.509 et les clés publique et privée.
- Obtenez le certificat de terminal au format PFX qui contient la clé privée.
- Convertissez le fichier PFX en fichier de clés au format PEM. Par exemple, la commande suivante transforme client.pfx en client-keys.pem.
openssl pkcs12 -in client.pfx -nocerts -nodes -out client-keys.pem
- Convertissez le fichier de clés PEM en fichier de clés PKCS8.
openssl pkcs8 -in client-keys.pem -topk8 -nocrypt -out client-keys.pk8
- Convertissez le fichier PFX en un certificat X.509 au format DER.
openssl pkcs12 -in client.pfx -nokeys -nodes -out client-cert.pem openssl x509 -outform der -in client-cert.pem -out client-cert.der
- Importez le fichier de clés et de certificat X.509 dans la base de données de certificats SoftHSM2.
- Importez le fichier de clés dans la base de données SoftHSM2.
Par exemple, la commande suivante importe le fichier client-key.pk8. Remplacez <your token label> et <slot ID> par les valeurs obtenues à l'étape 2.
softhsm2-util --import client-key.pk8 --token "<your token label>" --slot <slot ID> --label "client" --id 0001
- Importez le certificat X.509 dans la base de données SoftHSM2.
Par exemple, la commande suivante importe le fichier client-cert.der. Remplacez <softhsm2-pin> par le code PIN requis pour accéder à la base de données SoftHSM2.
pkcs11-tool --module /usr/local/lib/softhsm/libsofthsm2.so -l -p <softhsm2-pin> --write-object client-cert.der --type cert --id 0001
- Vérifiez que le certificat X.509, la clé publique et la clé privée sont tous stockés dans la base de données SoftHSM2.
pkcs11-tool --module /usr/local/lib/softhsm/libsofthsm2.so -l -p <softhsm2-pin> --token-label "<your token label>" --list-objects
- Importez le fichier de clés dans la base de données SoftHSM2.
- Configurez la bibliothèque SoftHSM2 qu'Horizon Client utilisera.
sudo mkdir /usr/lib/vmware/view/pkcs11 sudo ln -s /usr/local/lib/softhsm/libsofthsm2.so /usr/lib/vmware/view/pkcs11/libsofhsm2.so
Prise en charge du mode de conformité FIPS
Si vous souhaitez utiliser l'authentification par certificat de périphérique dans un environnement conforme à FIPS (Federal Information Processing Standard), effectuez d'abord les étapes décrites dans Activation du mode compatible FIPS. Ensuite, effectuez la procédure de configuration décrite dans la section précédente, Configurer le système client Linux pour l'authentification par certificat de périphérique, avec la modification suivante.
cd SoftHSMv2/ sh autogen.sh ./configure --with-crypto-backend=openssl --with-openssl=<path to OpenSSL library> --enable-fips make sudo make install