Um die Smartcard-Umleitung auf einer virtuellen Maschine (VM) unter RHEL 7.x zu konfigurieren, müssen Sie die Bibliotheken, von denen die Funktion abhängt, sowie das für die Authentifizierung erforderliche Stammzertifikat der Zertifizierungsstelle (CA) installieren. Außerdem müssen Sie einige Konfigurationsdateien bearbeiten, um des Einrichten der Authentifizierung abzuschließen.

Gehen Sie wie folgt vor, um die Smartcard-Umleitung auf einer RHEL 7.x-VM einzurichten.

In einigen der Beispiele im Verfahren werden Platzhalterwerte verwendet, um Entitäten in Ihrer Netzwerkkonfiguration darzustellen, z. B. den DNS-Namen Ihrer Active Directory-Domäne. Ersetzen Sie die Platzhalterwerte durch spezifische Informationen für Ihre Konfiguration, wie in der folgenden Tabelle gezeigt.

Platzhalterwert Beschreibung
dns_IP_ADDRESS IP-Adresse Ihres DNS-Namenservers
mydomain.com DNS-Name Ihrer Active Directory-Domäne
MYDOMAIN.COM DNS-Name Ihrer Active Directory-Domäne in Großbuchstaben
MYDOMAIN DNS-Name der Arbeitsgruppe oder NT-Domäne, in der sich Ihr Samba-Server befindet, in Großbuchstaben
ads-hostname Hostname Ihres AD-Servers
Hinweis: Wenn Sie die vSphere-Konsole verwenden, um sich bei einer RHEL 7.x-VM anzumelden, auf dem Horizon Agent installiert ist und die Smartcard-Umleitung aktiviert ist, kann eine verzögerte Abmeldezeit von zwei Minuten oder länger auftreten. Diese verzögerte Abmeldung tritt nur bei der vSphere-Konsole auf. Die RHEL 7.x-Abmeldeerfahrung von Horizon Client ist nicht betroffen.

Voraussetzungen

Integrieren einer virtuellen RHEL 7.x-Maschine in Active Directory für die Smartcard-Umleitung

Prozedur

  1. Installieren Sie die erforderlichen Bibliotheken.
    yum install nss-tools nss-pam-ldapd esc pam_pkcs11 pam_krb5 opensc pcsc-lite-ccid authconfig 
          authconfig-gtk krb5-libs krb5-workstation krb5-pkinit pcsc-lite pcsc-lite-libs
    
  2. Installieren Sie ein Stamm-CA-Zertifikat.
    1. Laden Sie ein Stamm-CA-Zertifikat herunter und speichern Sie es in /tmp/certificate.cer auf Ihrem Desktop. Siehe How to export Root Certification Authority Certificate.
    2. Übertragen Sie das heruntergeladene Stamm-CA-Zertifikat in eine .pem-Datei.
      openssl x509 -inform der -in /tmp/certificate.cer -out /tmp/certificate.pem
    3. Verwenden Sie den Befehl certutil, um das Stamm-CA-Zertifikat in der Systemdatenbank /etc/pki/nssdb zu installieren.
      Ersetzen Sie „root CA cert“ im folgenden Beispielbefehl durch den Namen des Stamm-CA-Zertifikats in der Systemdatenbank.
      certutil -A -d /etc/pki/nssdb -n "root CA cert" -t "CT,C,C" -i /tmp/certificate.pem
    4. Kopieren Sie das Stamm-CA-Zertifikat in das Verzeichnis /etc/pam_pkcs11/cacerts.
      mkdir -p /etc/pam_pkcs11/cacerts
      
      cp /tmp/certificate.pem /etc/pam_pkcs11/cacerts
  3. Navigieren Sie zu Anwendungen > Verschiedene > Authentifizierung, aktivieren Sie das Kontrollkästchen Smartcard-Unterstützung aktivieren und klicken Sie auf Anwenden.
  4. Kopieren Sie die Smartcard-Treiber und die Treiberbibliothek in die Systemdatenbank /etc/pki/nssdb.
    cp libcmP11.so /usr/lib64/
    modutil -add "piv card 2.0" -libfile /usr/lib64/libcmP11.so -dbdir /etc/pki/nssdb/
    Hinweis: Den Treiber libcmP11.so erhalten Sie bei Ihrem Smartcard-Anbieter.
  5. Bearbeiten Sie die Einstellung module in der Konfigurationsdatei /etc/pam_pkcs11/pam_pkcs11.conf, wie im folgenden Beispiel.
    pkcs11_module coolkey {
          module = libcmP11.so;                
          description = "Cool Key";
          slot_num = 0;
          ca_dir = /etc/pam_pkcs11/cacerts; 
          nss_dir = /etc/pki/nssdb;
          cert_policy = ca, signature;
    }
  6. Bearbeiten Sie die Datei /etc/pam_pkcs11/cn_map, damit sie die im folgenden Beispiel gezeigten Inhalte enthält. Welche konkreten Inhalte Sie einfügen müssen, entnehmen Sie den im Smartcard-Zertifikat aufgeführten Benutzerinformationen.
    user sc -> user-sc
  7. Bearbeiten Sie die Konfigurationsdatei /etc/krb5.conf/, wie im folgenden Beispiel.
    [libdefaults]
          dns_lookup_realm = false
          ticket_lifetime = 24h
          renew_lifetime = 7d
          forwardable = true
          rdns = false
          default_realm = MYDOMAIN.COM
          default_ccache_name = KEYRING:persistent:%{uid}
    
    [realms]
          MYDOMAIN.COM = {
                kdc = ads-hostname
                admin_server = ads-hostname
                default_domain = ads-hostname
                pkinit_anchors = FILE:/etc/pki/nssdb/certificate.pem
                pkinit_cert_match = <KU>digitalSignature
                pkinit_kdc_hostname = ads-hostname
          }
    
    [domain_realm]
          .mydomain.com = MYDOMAIN.COM
          mydomain.com = MYDOMAIN.COM
  8. Bearbeiten Sie die Konfigurationsdatei /etc/pam.d/system-auth, damit sie die im folgenden Beispiel gezeigte Zeile enthält. Stellen Sie sicher, dass der Inhalt in einer einzelnen Zeile ohne Zeilenumbruch angezeigt wird.
    auth  optional  pam_krb5.so use_first_pass no_subsequent_prompt preauth_options=X509_user_identity=PKCS11:/usr/lib64/libcmP11.so
  9. Bearbeiten Sie die Konfigurationsdatei /etc/pam.d/smartcard-auth, damit sie die im folgenden Beispiel gezeigte Zeile enthält. Stellen Sie sicher, dass der Inhalt in einer einzelnen Zeile ohne Zeilenumbruch angezeigt wird.
    auth  optional  pam_krb5.so use_first_pass no_subsequent_prompt preauth_options=X509_user_identity=PKCS11:/usr/lib64/libcmP11.so
  10. Um die Smartcard-SSO-Funktion (Single Sign-On) zu unterstützen, konfigurieren Sie die Datei /etc/vmware/viewagent-greeter.conf. Siehe Einstellen der Optionen in Konfigurationsdateien auf einem Linux-Desktop.
  11. Starten Sie den PC/SC-Daemon neu.
    chkconfig pcscd on
    service pcscd start
  12. Installieren Sie das Paket Horizon Agent mit aktivierter Smartcard-Umleitung.
    sudo ./install_viewagent.sh -m yes
    Hinweis: Wenn Sie eine Fehlermeldung erhalten, die Sie auffordert, die Standard-PC/SC-Lite-Bibliothek zu installieren, deinstallieren Sie die benutzerdefinierte PC/SC-Lite-Bibliothek, die derzeit auf der Maschine vorhanden ist, und installieren Sie die Standard-PC/SC-Lite-Bibliothek mithilfe des folgenden Befehls.
    yum reinstall pcsc-lite-libs pcsc-lite

    Anschließend können Sie das Horizon Agent-Installationsprogramm ausführen.

  13. Wenn Sie eine benutzerdefinierte PC/SC Lite-Bibliothek verwenden, konfigurieren Sie die Optionen pcscd.maxReaderContext und pcscd.readBody in der Datei /etc/vmware/config.
  14. Starten Sie die RHEL 7.x-VM neu und melden Sie sich erneut an.