Pour configurer la redirection de carte à puce sur une machine virtuelle (VM) RHEL 9.x/8.x, installez les bibliothèques dont dépend la fonctionnalité et le certificat d'autorité de certification (CA) racine pour prendre en charge l'authentification approuvée des cartes à puce.
Procédure
- Installez les bibliothèques requises.
yum install -y opensc pcsc-lite pcsc-lite-libs pcsc-lite-ccid nss-tools
- Activez le service pcscd.
systemctl enable pcscd
systemctl start pcscd
- Assurez-vous que le fichier de configuration /etc/sssd/sssd.conf contient les lignes suivantes, qui activent l'authentification de la carte à puce.
[pam]
pam_cert_auth = True
- Copiez le certificat d'autorité de certification requis sur /etc/sssd/pki/sssd_auth_ca_db.pem.
openssl x509 -inform der -in certificate.cer -out certificate.pem
cp certificate.pem /etc/sssd/pki/sssd_auth_ca_db.pem
- Pour vérifier l'état de la carte à puce, exécutez les commandes pkcs11-tool suivantes et assurez-vous qu'elles renvoient la sortie correcte.
pkcs11-tool -L
pkcs11-tool --login -O
pkcs11-tool --test --login
- Copiez les pilotes requis et ajoutez les fichiers de bibliothèque nécessaires au répertoire nssdb.
- Exécutez des commandes semblables à l'exemple suivant.
Ces exemples de commandes montrent comment ajouter
libcmP11.so, le fichier de pilote de la carte Gemalto PIV 2.0, au répertoire
nssdb. À la place de
libcmP11.so, vous pouvez remplacer le fichier de pilote par votre carte à puce.
cp libcmP11.so /usr/lib64/
mkdir -p /etc/pki/nssdb
certutil -N -d /etc/pki/nssdb
certutil -A -n rootca -i certificate.pem -t "CT,CT,CT" -d /etc/pki/nssdb
modutil -dbdir /etc/pki/nssdb/ -add "piv card 2.0" -libfile /usr/lib64/libcmP11.so
- Vérifiez que le certificat attendu est correctement chargé en exécutant la commande suivante.
# certutil -L -d /etc/pki/nssdb
Vérifiez que la commande renvoie un résultat semblable à l'exemple suivant.
Certificate Nickname
rootca
- Vérifiez que les bibliothèques attendues sont correctement ajoutées en exécutant la commande suivante.
modutil -dbdir /etc/pki/nssdb -list
Vérifiez que la commande renvoie un résultat semblable à l'exemple suivant.
Listing of PKCS #11 Modules
–-----------------------------------------------------------
1. NSS Internal PKCS #11 Module
slots: 2 slots attached
status: loaded
slot: NSS Internal Cryptographic Services
token: NSS Generic Crypto Services
slot: NSS User Private Key and Certificate Services
token: NSS Certificate DB
2. piv card 2.0
library name: /usr/lib/libcmP11.so
slots: There are no slots attached to this module
status: loaded
–-----------------------------------------------------------
- Créez le fichier /usr/share/p11-kit/modules/libcmP11.module. Ajoutez le contenu suivant au fichier.
# This file describes how to load the opensc module
# See: http://p11-glue.freedesktop.org/doc/p11-kit/config.html
# This is a relative path, which means it will be loaded from
# the p11-kit default path which is usually $(libdir)/pkcs11.
# Doing it this way allows for packagers to package opensc for
# 32-bit and 64-bit and make them parallel installable
module: /usr/lib64/libcmP11.so
priority: 99
Note : (RHEL 9.x) Vous devez également supprimer le fichier
/usr/share/p11-kit/modules/p11-kit-trust.module du système. En outre, si vous n'utilisez pas
opensc, vous devez supprimer le fichier
/usr/share/p11-kit/modules/opensc.module.
- Pour prendre en charge la fonctionnalité SSO par carte à puce, configurez le fichier /etc/vmware/viewagent-greeter.conf. Reportez-vous à la section Définir des options dans des fichiers de configuration sur un poste de travail Linux.
- Installez le module Horizon Agent, avec la redirection de carte à puce activée.
Note : Si vous obtenez un message d'erreur vous demandant d'installer la bibliothèque PC/SC Lite par défaut, désinstallez la bibliothèque PC/SC Lite personnalisée actuellement présente sur la machine et installez la bibliothèque PC/SC Lite par défaut à l'aide de la commande suivante.
yum reinstall pcsc-lite-libs pcsc-lite
Vous pouvez ensuite exécuter le programme d'installation d'Horizon Agent.
- Si vous utilisez une bibliothèque PC/SC Lite personnalisée, configurez les options pcscd.maxReaderContext et pcscd.readBody dans le fichier /etc/vmware/config.
- Redémarrez la machine virtuelle et reconnectez-vous.