Unterstützung für Smartcards
Sie können eine mit dem Clientgerät verbundene Smartcard zur Authentifizierung verwenden, wenn Sie sich bei einer Linux-Virtual-Desktop-Sitzung anmelden. Diese Funktion wird durch Smartcard-Umleitung über den virtuellen ICA®-Smartcard-Kanal implementiert. Sie können die Smartcard auch innerhalb der Sitzung verwenden. Anwendungsfälle sind das Hinzufügen einer digitalen Signatur zu einem Dokument, das Verschlüsseln oder Entschlüsseln einer E-Mail oder die Authentifizierung bei einer Website, die eine Smartcard-Authentifizierung erfordert.
-
Der Linux VDA verwendet für diese Funktion dieselbe Konfiguration wie der Windows VDA. Weitere Informationen finden Sie im Abschnitt Konfigurieren der Smartcard-Umgebung in diesem Artikel.
-
Die Verfügbarkeit der Pass-Through-Authentifizierung mittels Smartcards hängt von den folgenden Bedingungen ab:
- Der Linux VDA ist auf RHEL 7.7 installiert.
- Es werden von CoolKey unterstützte Smartcards verwendet.
- Citrix Workspace™-App für Windows wird verwendet.
Hinweis:
Die Verwendung einer zugeordneten Smartcard innerhalb einer Linux-VDA-Sitzung zur Anmeldung bei Citrix Gateway wird nicht offiziell unterstützt.
Installieren der Linux VDA-Software auf RHEL 7.7
Installieren Sie die Linux VDA-Software mit dem RPM-Paketmanager oder der einfachen Installation. Siehe den Abschnitt Installationsübersicht.
Nach Abschluss der VDA-Installation überprüfen Sie, ob sich der VDA beim Delivery Controller™ registrieren kann und die veröffentlichten Linux-Desktopsitzungen erfolgreich mit Kennwortauthentifizierung gestartet werden können.
Sicherstellen, dass CoolKey Ihre Smartcard unterstützt
CoolKey ist ein weit verbreiteter Smartcard-Treiber unter RHEL. CoolKey unterstützt vier Arten von Smartcards: CoolKey-Karten, CAC, PIV und PKCS#15. Die Anzahl der offiziell unterstützten und validierten Karten ist jedoch weiterhin begrenzt (siehe Smart Card Support in Red Hat Enterprise Linux).
In diesem Artikel wird die YubiKey 4 Smartcard als Beispiel zur Veranschaulichung der Konfiguration verwendet. YubiKey 4 ist ein All-in-One-USB-CCID-PIV-Gerät, das einfach bei Amazon oder anderen Einzelhändlern erworben werden kann. Der CoolKey-Treiber unterstützt YubiKey 4.

Wenn Ihre Organisation eine andere, fortschrittlichere Smartcard benötigt, bereiten Sie eine physische Maschine mit RHEL 7.7 und installiertem CoolKey-Paket vor. Informationen zur CoolKey-Installation finden Sie unter Installieren des Smartcard-Treibers. Stecken Sie Ihre Smartcard ein und führen Sie den folgenden Befehl aus, um zu überprüfen, ob CoolKey Ihre Smartcard unterstützt:
pkcs11-tool --module libcoolkeypk11.so --list-slots
<!--NeedCopy-->
Wenn CoolKey Ihre Smartcard unterstützt, ähnelt die Befehlsausgabe der folgenden, die Slot-Informationen enthält.
s
Konfiguration
Vorbereiten eines Stammzertifikats
Ein Stammzertifikat wird verwendet, um das Zertifikat auf der Smartcard zu überprüfen. Gehen Sie wie folgt vor, um ein Stammzertifikat herunterzuladen und zu installieren.
-
Besorgen Sie sich ein Stammzertifikat im PEM-Format, typischerweise von Ihrem CA-Server.
Sie können einen Befehl ähnlich dem folgenden ausführen, um eine DER-Datei (*.crt, *.cer, *.der) in PEM zu konvertieren. Im folgenden Befehlsbeispiel ist certnew.cer eine DER-Datei.
openssl x509 -inform der -in certnew.cer -out certnew.pem <!--NeedCopy--> -
Installieren Sie das Stammzertifikat im
openssl-Verzeichnis. Die Datei certnew.pem wird als Beispiel verwendet.cp certnew.pem <path where you install the root certificate> <!--NeedCopy-->Um einen Pfad für die Installation des Stammzertifikats zu erstellen, führen Sie
sudo mdkir -p <path where you install the root certificate>aus.
Konfigurieren der NSS-Datenbank
Das Linux VDA-Anmeldemodul greift über die NSS-Datenbank auf Smartcards und Zertifikate zu. Gehen Sie wie folgt vor, um die NSS-Datenbank zu konfigurieren.
-
Fügen Sie das zuvor erwähnte Stammzertifikat zur NSS-Datenbank hinzu.
certutil -A -n "My Corp Root" -t "CT,C,C" -a -d /etc/pki/nssdb -i /etc/pki/CA/certs/certnew.pem <!--NeedCopy--> -
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob das Stammzertifikat erfolgreich zur NSS-Datenbank hinzugefügt wurde.
certutil -L -d /etc/pki/nssdb <!--NeedCopy-->Die Befehlsausgabe ähnelt der folgenden, wenn das Stammzertifikat erfolgreich hinzugefügt wurde.

-
Überprüfen Sie, ob CoolKey in der NSS PKCS#11-Bibliothek installiert ist.
modutil -list -dbdir /etc/pki/nssdb <!--NeedCopy-->Die Befehlsausgabe ähnelt der folgenden, wenn das CoolKey-Modul installiert ist.

Wenn das CoolKey-Modul nicht installiert ist, führen Sie den folgenden Befehl aus, um das Modul manuell zu installieren, und überprüfen Sie dann die Installation erneut.
modutil -add "CoolKey PKCS #11 Module" -libfile libcoolkeypk11.so -dbdir /etc/pki/nssdb <!--NeedCopy--> -
Konfigurieren Sie das pam_pkcs11-Modul.
Das pam_pkcs11-Modul stützt sich auf die lokale VDA-Konfiguration, um Benutzerzertifikate zu überprüfen. Das von pam_pkcs11 verwendete Standard-Stammzertifikat befindet sich unter /etc/pam_pkcs11/cacerts/. Jedes Stammzertifikat in diesem Pfad hat einen Hash-Link. Führen Sie die folgenden Befehle aus, um das vorbereitete Stammzertifikat zu installieren und pam_pkcs11 zu konfigurieren.
yum install pam_pkcs11 mkdir /etc/pam_pkcs11/cacerts/ cp certnew.pem /etc/pam_pkcs11/cacerts/ cacertdir_rehash /etc/pam_pkcs11/cacerts <!--NeedCopy-->
Konfigurieren der Smartcard-Umgebung
Sie können das Skript ctxsmartlogon.sh verwenden, um die Smartcard-Umgebung zu konfigurieren, oder die Konfiguration manuell vornehmen.
-
Verwenden Sie das Skript ctxsmartlogon.sh, um die Smartcard-Umgebung zu konfigurieren
Hinweis:
Das Skript ctxsmartlogon.sh fügt PKINIT-Informationen zum Standard-Realm hinzu. Sie können diese Einstellung über die Konfigurationsdatei /etc/krb5.conf ändern.
Bevor Sie Smartcards zum ersten Mal verwenden, führen Sie das Skript ctxsmartlogon.sh aus, um die Smartcard-Umgebung zu konfigurieren.
Tipp:
Wenn Sie SSSD für den Domänenbeitritt verwendet haben, starten Sie den SSSD-Dienst neu, nachdem Sie ctxsmartlogon.sh ausgeführt haben.
sudo /opt/Citrix/VDA/sbin/ctxsmartlogon.sh <!--NeedCopy-->Die Ergebnisse ähneln den folgenden:

Sie können Smartcards auch deaktivieren, indem Sie das Skript ctxsmartlogon.sh ausführen:
sudo /opt/Citrix/VDA/sbin/ctxsmartlogon.sh <!--NeedCopy-->Die Ergebnisse ähneln den folgenden:

-
Manuelles Konfigurieren der Smartcard-Umgebung
Der Linux VDA verwendet dieselbe Smartcard-Umgebung wie der Windows VDA. In dieser Umgebung müssen mehrere Komponenten konfiguriert werden, darunter der Domänencontroller, die Microsoft-Zertifizierungsstelle (CA), Internet Information Services, Citrix StoreFront und die Citrix Workspace-App. Informationen zur Konfiguration basierend auf der YubiKey 4 Smartcard finden Sie im Knowledge Center-Artikel CTX206156.
-
Bevor Sie mit dem nächsten Schritt fortfahren, stellen Sie sicher, dass alle Komponenten korrekt konfiguriert sind, der private Schlüssel und das Benutzerzertifikat auf die Smartcard heruntergeladen wurden und Sie sich erfolgreich mit der Smartcard beim Windows VDA anmelden können.
Installieren der PC/SC Lite-Pakete
PCSC Lite ist eine Implementierung der Personal Computer/Smart Card (PC/SC)-Spezifikation unter Linux. Es bietet eine Windows-Smartcard-Schnittstelle für die Kommunikation mit Smartcards und Lesegeräten. Die Smartcard-Umleitung im Linux VDA wird auf PC/SC-Ebene implementiert.
Führen Sie den folgenden Befehl aus, um die PC/SC Lite-Pakete zu installieren.
yum install pcsc-lite pcsc-lite-ccid pcsc-lite-libs
<!--NeedCopy-->
CoolKey ist ein weit verbreiteter Smartcard-Treiber unter RHEL. Wenn CoolKey nicht installiert ist, führen Sie den folgenden Befehl aus, um ihn zu installieren.
yum install coolkey
<!--NeedCopy-->
PAM-Module für die Smartcard-Authentifizierung installieren
Führen Sie den folgenden Befehl aus, um die Module pam_krb5 und krb5-pkinit zu installieren.
yum install pam_krb5 krb5-pkinit
<!--NeedCopy-->
Das Modul pam_krb5 ist ein steckbares Authentifizierungsmodul, das PAM-fähige Anwendungen verwenden können, um Kennwörter zu überprüfen und Ticket-Granting Tickets vom Key Distribution Center (KDC) zu erhalten. Das Modul krb5-pkinit enthält das PKINIT-Plug-In, das Clients ermöglicht, anfängliche Anmeldeinformationen vom KDC unter Verwendung eines privaten Schlüssels und eines Zertifikats zu erhalten.
pam_krb5-Modul konfigurieren
Das Modul pam_krb5 interagiert mit dem KDC, um Kerberos-Tickets unter Verwendung von Zertifikaten auf der Smartcard zu erhalten. Um die pam_krb5-Authentifizierung in PAM zu aktivieren, führen Sie den folgenden Befehl aus:
authconfig --enablekrb5 --update
<!--NeedCopy-->
Fügen Sie in der Konfigurationsdatei /etc/krb5.conf PKINIT-Informationen entsprechend dem tatsächlichen Realm hinzu.
Hinweis:
Die Option pkinit_cert_match gibt Abgleichsregeln an, denen das Clientzertifikat entsprechen muss, bevor es für einen PKINIT-Authentifizierungsversuch verwendet wird. Die Syntax der Abgleichsregeln lautet:
[relation-operator] component-rule …Dabei kann
relation-operatorentweder&&(bedeutet, dass alle Komponentenregeln übereinstimmen müssen) oder||(bedeutet, dass nur eine Komponentenregel übereinstimmen muss) sein.
Hier ist ein Beispiel für eine generische krb5.conf-Datei:
EXAMPLE.COM = {
kdc = KDC. EXAMPLE.COM
auth_to_local = RULE:[1:$1@$0]
pkinit_anchors = FILE:<path where you install the root certificate>/certnew.pem
pkinit_kdc_hostname = KDC.EXAMPLE.COM
pkinit_cert_match = ||<EKU>msScLogin,<KU>digitalSignature
pkinit_eku_checking = kpServerAuth
}
<!--NeedCopy-->
Die Konfigurationsdatei sieht nach dem Hinzufügen der PKINIT-Informationen wie folgt aus.

PAM-Authentifizierung konfigurieren
PAM-Konfigurationsdateien geben an, welche Module für die PAM-Authentifizierung verwendet werden. Um pam_krb5 als Authentifizierungsmodul hinzuzufügen, fügen Sie die folgende Zeile zur Datei /etc/pam.d/smartcard-auth hinzu:
auth [success=done ignore=ignore default=die] pam_krb5.so preauth_options=X509_user_identity=PKCS11:/usr/lib64/pkcs11/libcoolkeypk11.so
Die Konfigurationsdatei sieht nach der Änderung wie folgt aus, wenn SSSD verwendet wird.

Die Konfigurationsdatei sieht nach der Änderung wie folgt aus, wenn Winbind verwendet wird.

Die Konfigurationsdatei sieht nach der Änderung wie folgt aus, wenn Centrify verwendet wird.

(Optional) Single Sign-On mit Smartcards
Single Sign-On (SSO) ist eine Citrix-Funktion, die die Pass-Through-Authentifizierung bei virtuellen Desktops und Anwendungsstarts implementiert. Diese Funktion reduziert die Häufigkeit, mit der Benutzer ihre PIN eingeben müssen. Um SSO mit dem Linux VDA zu verwenden, konfigurieren Sie die Citrix Workspace-App. Die Konfiguration ist dieselbe wie beim Windows VDA. Weitere Informationen finden Sie im Knowledge Center-Artikel CTX133982.
Aktivieren Sie die Smartcard-Authentifizierung wie folgt, wenn Sie die Gruppenrichtlinie in der Citrix Workspace-App konfigurieren.

Schnelle Smartcard-Anmeldung
Die schnelle Smartcard ist eine Verbesserung gegenüber der bestehenden HDX PC/SC-basierten Smartcard-Umleitung. Sie verbessert die Leistung, wenn Smartcards in WAN-Umgebungen mit hoher Latenz verwendet werden. Weitere Informationen finden Sie unter Smartcards.
Der Linux VDA unterstützt schnelle Smartcards in den folgenden Versionen der Citrix Workspace-App:
- Citrix Receiver für Windows 4.12
- Citrix Workspace-App 1808 für Windows und höher
Schnelle Smartcard-Anmeldung auf dem Client aktivieren
Die schnelle Smartcard-Anmeldung ist standardmäßig auf dem VDA aktiviert und auf dem Client standardmäßig deaktiviert. Um die schnelle Smartcard-Anmeldung auf dem Client zu aktivieren, fügen Sie den folgenden Parameter in die Datei default.ica der zugehörigen StoreFront-Site ein:
[WFClient]
SmartCardCryptographicRedirection=On
<!--NeedCopy-->
Schnelle Smartcard-Anmeldung auf dem Client deaktivieren
Um die schnelle Smartcard-Anmeldung auf dem Client zu deaktivieren, entfernen Sie den Parameter SmartCardCryptographicRedirection aus der Datei default.ica der zugehörigen StoreFront-Site.
Verwendung
Am Linux VDA mit einer Smartcard anmelden
Sie können eine Smartcard verwenden, um sich sowohl in SSO- als auch in Nicht-SSO-Szenarien am Linux VDA anzumelden.
- Im SSO-Szenario werden Sie automatisch bei StoreFront™ angemeldet, indem das zwischengespeicherte Smartcard-Zertifikat und die PIN verwendet werden. Wenn Sie eine virtuelle Linux-Desktopsitzung in StoreFront starten, wird die PIN zur Smartcard-Authentifizierung an den Linux VDA übergeben.
-
Im Nicht-SSO-Szenario werden Sie aufgefordert, ein Zertifikat auszuwählen und eine PIN einzugeben, um sich bei StoreFront anzumelden.

Wenn Sie eine virtuelle Linux-Desktopsitzung in StoreFront starten, wird ein Dialogfeld für die Anmeldung am Linux VDA wie folgt angezeigt. Der Benutzername wird aus dem Zertifikat auf der Smartcard extrahiert, und Sie müssen die PIN erneut für die Anmeldeauthentifizierung eingeben.
Dieses Verhalten ist dasselbe wie beim Windows VDA.

Wiederverbindung mit einer Sitzung über eine Smartcard
Um die Verbindung zu einer Sitzung wiederherzustellen, stellen Sie sicher, dass die Smartcard mit dem Clientgerät verbunden ist. Andernfalls erscheint ein graues Caching-Fenster auf der Linux VDA-Seite und schließt sich schnell, da die Reauthentifizierung ohne angeschlossene Smartcard fehlschlägt. In diesem Fall wird keine weitere Aufforderung angezeigt, die Sie daran erinnert, die Smartcard anzuschließen.
Auf der StoreFront-Seite kann es jedoch vorkommen, dass die StoreFront-Webseite eine Warnung wie die folgende anzeigt, wenn keine Smartcard angeschlossen ist, wenn Sie versuchen, die Verbindung zu einer Sitzung wiederherzustellen.

Einschränkung
Smartcard-Entfernungsrichtlinie
Der Linux VDA verwendet nur das Standardverhalten für die Smartcard-Entfernung. Wenn Sie die Smartcard nach erfolgreicher Anmeldung am Linux VDA entfernen, bleibt die Sitzung weiterhin verbunden und der Sitzungsbildschirm wird nicht gesperrt.
Unterstützung für andere Smartcards und die PKCS#11-Bibliothek
Obwohl nur die CoolKey-Smartcard auf unserer Supportliste aufgeführt ist, können Sie versuchen, andere Smartcards und die PKCS#11-Bibliothek zu verwenden, da Citrix eine generische Smartcard-Umleitungslösung bereitstellt. Um zu Ihrer spezifischen Smartcard oder der PKCS#11-Bibliothek zu wechseln:
-
Ersetzen Sie alle Instanzen von
libcoolkeypk11.sodurch Ihre PKCS#11-Bibliothek. -
Um den Pfad Ihrer PKCS#11-Bibliothek in der Registrierung festzulegen, führen Sie den folgenden Befehl aus:
/opt/Citrix/VDA/bin/ctxreg update -k "HKLM\System\CurrentControlSet\Control\Citrix\VirtualChannels\Scard" -v "PKCS11LibPath" -d "PATH" <!--NeedCopy-->Dabei verweist PATH auf Ihre PKCS#11-Bibliothek, z. B. /usr/lib64/pkcs11/libcoolkeypk11.so
-
Deaktivieren Sie die schnelle Smartcard-Anmeldung auf dem Client.