Pour configurer la redirection de carte à puce sur une machine virtuelle (VM) SLED/SLES, installez les bibliothèques dont dépend la fonctionnalité et le certificat d'autorité de certification racine pour prendre en charge l'authentification approuvée des cartes à puce. En outre, vous devez modifier certains fichiers de configuration pour terminer la configuration de l'authentification.

Certains exemples de la procédure utilisent des valeurs d'espace réservé pour représenter des entités dans votre configuration réseau, telles que le nom DNS de votre domaine AD. Remplacez les valeurs d'espace réservé par des informations spécifiques à votre configuration, comme décrit dans le tableau suivant.

Valeur d'espace réservé Description
dns_IP_ADDRESS Adresse IP de votre serveur de nom DNS
mydomain.com Nom DNS de votre domaine AD
MYDOMAIN.COM Nom DNS de votre domaine AD en majuscules
MYDOMAIN Nom DNS du groupe de travail ou domaine NT qui inclut votre serveur Samba, en majuscules
ads-hostname Nom d'hôte de votre serveur AD
ads-hostname.mydomain.com Nom de domaine complet (FQDN) de votre serveur AD
mytimeserver.mycompany.com Nom DNS de votre serveur de temps NTP
AdminUser Nom d'utilisateur de l'administrateur de VM

Conditions préalables

Effectuez la procédure décrite dans la section Intégrer une machine virtuelle SLED/SLES à Active Directory pour la redirection de carte à puce.

Procédure

  1. Installez la bibliothèque PAM et d'autres modules requis.
    sudo zypper install pam_pkcs11 mozilla-nss mozilla-nss-tools pcsc-lite pcsc-ccid opensc pcsc-tools

    Vous devrez peut-être activer des extensions telles que PackageHub pour installer tous les modules précédents.

  2. Installez un certificat d'autorité de certification racine.
    1. Téléchargez un certificat d'autorité de certification racine et enregistrez-le dans /tmp/certificate.cer sur le système. Reportez-vous à Exportation du certificat d'autorité de certification de racine.
    2. Installez les ancres d'approbation dans la base de données NSS.
      sudo mkdir /etc/pam_pkcs11/nssdb
      sudo certutil -N -d /etc/pam_pkcs11/nssdb
      sudo certutil -L -d /etc/pam_pkcs11/nssdb
      sudo certutil -A -n rootca -i certificate.pem -t "CT,CT,CT" -d /etc/pam_pkcs11/nssdb
    3. Installez les pilotes requis.
      sudo modutil -add "opensc lib" -libfile /usr/lib64/opensc-pkcs11.so -dbdir /etc/pam_pkcs11/nssdb/
  3. Modifiez le fichier /etc/pam_pkcs11/pam_pkcs11.conf, comme indiqué dans l'exemple suivant.
    use_pkcs11_module = opensc;
    ...
    pkcs11_module opensc {
         module = /usr/lib64/opensc-pkcs11.so;
         description = "OpenSC PKCS#11 module";
         slot_num = 0;
         nss_dir = /etc/pam_pkcs11/nssdb;
         crl_dir = /etc/pam_pkcs11/crls;
         support_threads = false;
         cert_policy = ca,signature;
         token_type = "Smart card";
    }
    ...
    use_mappers = cn, null;                         
    ...
    mapper cn {
         debug = false;
         module = internal;
         ignorecase = true;
         mapfile = file:///etc/pam_pkcs11/cn_map;         
    }
  4. Modifiez le fichier de configuration /etc/pam_pkcs11/cn_map de sorte qu'il comprenne la ligne suivante.
    ads-hostname -> ads-hostname
  5. Modifiez la configuration PAM.
    1. Pour qu'il soit possible de configurer l'authentification par carte à puce, désactivez d'abord l'outil pam_config.
      sudo find /etc/pam.d/ -type l -iname "common-*" -delete
      sudo for X in /etc/pam.d/common-*-pc; do cp -ivp $X ${X:0:-3}; done
    2. Créez un fichier nommé common-auth-smartcard dans le répertoire /etc/pam.d/. Ajoutez le contenu suivant au fichier.
      auth    required        pam_env.so
      auth    sufficient      pam_pkcs11.so
      auth    optional        pam_gnome_keyring.so
      auth    [success=1 default=ignore]      pam_unix.so nullok_secure try_first_pass
      auth    required        pam_winbind.so  use_first_pass
    3. Remplacez la ligne auth include common-auth par la ligne auth include common-auth-smartcard dans les deux fichiers /etc/pam.d/gdm et /etc/pam.d/xscreensaver.
  6. Pour configurer le service pcscd de manière qu'il démarre automatiquement après le redémarrage de la VM, modifiez le fichier pcscd.service.
    1. Ajoutez la ligne WantedBy=multi-user.target à /usr/lib/systemd/system/pcscd.service afin que le fichier soit semblable à l'exemple suivant.
      [Unit]
      Description=PC/SC Smart Card Daemon
      Requires=pcscd.socket
      
      [Service]
      ExecStart=/usr/sbin/pcscd --foreground --auto-exit
      ExecReload=/usr/sbin/pcscd --hotplug
      
      [Install]
      Also=pcscd.socket
      WantedBy=multi-user.target
    2. Après avoir modifié le fichier pcscd.service, exécutez la commande suivante.
      sudo systemctl enable pcscd
    Note : Si le service pcscd ne démarre pas après le redémarrage de la VM, la première connexion par le biais de pam_pkcs11 échoue.
  7. Désactivez le pare-feu.
    sudo rcSuSEfirewall2 stop
    sudo chkconfig SuSEfirewall2_setup off
    sudo chkconfig SuSEfirewall2_init off
    Note : La redirection de carte à puce échoue parfois lorsque le pare-feu est activé.
  8. Pour prendre en charge la fonctionnalité Single Sign-On (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.
  9. Installez le module Horizon Agent, avec la redirection de carte à puce activée.
    sudo ./install_viewagent.sh -m yes
    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.
    sudo zypper install -f -y pcsc-lite libpcsclite1

    Vous pouvez ensuite exécuter le programme d'installation d'Horizon Agent.

  10. 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.
  11. Redémarrez la VM et reconnectez-vous.