Smartcards
-
Sie können eine mit dem Clientgerät verbundene Smartcard zur Authentifizierung verwenden, wenn Sie sich bei einer virtuellen Linux-Desktopsitzung anmelden. Diese Funktion wird durch die Smartcard-Umleitung über den virtuellen ICA®-Smartcard-Kanal implementiert. Sie können die Smartcard auch innerhalb der Sitzung verwenden. Anwendungsfälle sind:
- Hinzufügen einer digitalen Signatur zu einem Dokument
- Verschlüsseln oder Entschlüsseln einer E-Mail
- Authentifizierung bei einer Website
Der Linux VDA verwendet für diese Funktion dieselbe Konfiguration wie der Windows VDA. Weitere Informationen finden Sie im Abschnitt Smartcard-Umgebung konfigurieren in diesem Artikel.
-
Hinweis:
Die Verwendung einer zugeordneten Smartcard innerhalb einer Linux VDA-Sitzung zur Anmeldung bei Citrix Gateway wird nicht unterstützt.
Unterstützung für ausgewählte Linux-Distributionen und AD-Integrationsmethoden
-
Die Smartcard-Pass-Through-Authentifizierung unterstützt ausgewählte Linux-Distributionen und AD-Integrationsmethoden. Siehe folgende Matrix:
Winbind SSSD Centrify Quest Debian 12.12 Ja Ja Ja Ja Debian 13 Ja Ja Ja Nein RHEL 10/9.7/9.6/9.4 Ja Ja Ja Ja -
RHEL 8.10 Ja Ja Ja Ja -
Rocky Linux 10/9.7/9.6/9.4 Ja Ja Ja Ja Rocky Linux 8.10 Ja Ja Ja Ja Ubuntu 24.04 Ja Ja Ja Ja Ubuntu 22.04 Ja Ja Ja Ja
Voraussetzungen
Die Verfügbarkeit der Smartcard-Pass-Through-Authentifizierung hängt von den folgenden Bedingungen ab:
-
Ihr Linux VDA kann sich beim Delivery Controller™ registrieren, und Sie können die veröffentlichten Linux-Desktopsitzungen mit Windows-Anmeldeinformationen öffnen.
-
Es werden von OpenSC unterstützte Smartcards verwendet. Weitere Informationen finden Sie unter Sicherstellen, dass OpenSC Ihre Smartcard unterstützt.
Sicherstellen, dass OpenSC Ihre Smartcard unterstützt
OpenSC ist ein weit verbreiteter Smartcard-Treiber unter RHEL 7.4+. Als vollständig kompatibler Ersatz für CoolKey unterstützt OpenSC viele Arten von Smartcards (siehe Smart Card Support in Red Hat Enterprise Linux).
In diesem Artikel wird die YubiKey-Smartcard als Beispiel zur Veranschaulichung der Konfiguration verwendet. YubiKey ist ein All-in-One-USB-CCID-PIV-Gerät, das einfach bei Amazon oder anderen Einzelhändlern erworben werden kann. Der OpenSC-Treiber unterstützt YubiKey.
Wenn Ihr Unternehmen eine andere, fortschrittlichere Smartcard benötigt, bereiten Sie eine physische Maschine mit einer unterstützten Linux-Distribution und dem installierten OpenSC-Paket vor. Informationen zur OpenSC-Installation finden Sie unter Smartcard-Treiber installieren. Stecken Sie Ihre Smartcard ein und führen Sie den folgenden Befehl aus, um zu überprüfen, ob OpenSC Ihre Smartcard unterstützt:
pkcs11-tool --module opensc-pkcs11.so --list-slots
<!--NeedCopy-->
Konfiguration
Stammzertifikat vorbereiten
Ein Stammzertifikat wird verwendet, um das Zertifikat auf der Smartcard zu überprüfen. Führen Sie die folgenden Schritte aus, um ein Stammzertifikat herunterzuladen und zu installieren.
-
Besorgen Sie sich ein Stammzertifikat im PEM-Format, typischerweise von Ihrem CA-Server.
Sie können einen ähnlichen Befehl wie den 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 Verzeichnis
openssl. 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.
Smartcard-Umgebung konfigurieren
Sie können das Skript ctxsmartlogon.sh verwenden, um die Smartcard-Umgebung zu konfigurieren, oder die Konfiguration manuell vornehmen.
-
(Option 1) Konfigurieren der Smartcard-Umgebung mit dem Skript ctxsmartlogon.sh
-
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. Für RHEL 8 und höher, da PAM_KRB5 in das EPEL-Repository verschoben wurde, versucht das Skript, EPEL in diesen Distributionen zu aktivieren.
sudo /opt/Citrix/VDA/sbin/ctxsmartlogon.sh
<!--NeedCopy-->
Die Ergebnisse ähneln den folgenden:

Hinweis:
Wenn Sie Quest als Methode für den Domänenbeitritt verwenden, müssen Sie den Hostnamen des Key Distribution Center (KDC) angeben. Zum Beispiel:
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:

(Option 2) 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), die Internet Information Services, Citrix StoreFront und die Citrix Workspace-App. Informationen zur Konfiguration basierend auf der YubiKey-Smartcard finden Sie im Knowledge Center-Artikel CTX206156.
Bevor Sie mit dem nächsten Schritt fortfahren, stellen Sie sicher, dass:
- Sie alle Komponenten korrekt konfiguriert haben.
- Sie den privaten Schlüssel und das Benutzerzertifikat auf die Smartcard heruntergeladen haben.
- Sie sich erfolgreich mit der Smartcard am 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:
RHEL 9.x/8.x, Rocky Linux 9.x/8.x:
yum install pcsc-lite pcsc-lite-ccid pcsc-lite-libs
<!--NeedCopy-->
Ubuntu 24.04, Ubuntu 22.04, Debian 12.x, Debian 11.11:
apt-get install -y libpcsclite1 libccid
<!--NeedCopy-->
Installieren des Smartcard-Treibers
OpenSC ist ein weit verbreiteter Smartcard-Treiber. Wenn OpenSC nicht installiert ist, führen Sie den folgenden Befehl aus, um es zu installieren:
RHEL 9.x/8.x, Rocky Linux 9.x/8.x:
yum install opensc
<!--NeedCopy-->
Ubuntu 24.04, Ubuntu 22.04, Debian 12.x, Debian 11.11:
- apt-get install -y opensc
<!--NeedCopy-->
Installieren der PAM-Module für die Smartcard-Authentifizierung
Führen Sie den folgenden Befehl aus, um die Module pam_krb5 und krb5-pkinit zu installieren.
RHEL 9.x/8.x, Rocky Linux 9.x/8.x:
yum install krb5-pkinit
<!--NeedCopy-->
Ubuntu 24.04, Ubuntu 22.04:
apt-get install libpam-krb5 krb5-pkinit
<!--NeedCopy-->
Debian 12.x, Debian 11.11:
apt-get install -y libpam-krb5 krb5-pkinit
<!--NeedCopy-->
Das pam_krb5-Modul ist ein steckbares Authentifizierungsmodul. PAM-fähige Anwendungen können pam_krb5 verwenden, um Passwörter zu überprüfen und Ticket-Granting-Tickets vom Key Distribution Center (KDC) zu erhalten. Das krb5-pkinit-Modul 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.
Konfigurieren des pam_krb5-Moduls
Das pam_krb5-Modul interagiert mit dem KDC, um Kerberos-Tickets mithilfe 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 Client-Zertifikat entsprechen muss, bevor es für einen PKINIT-Authentifizierungsversuch verwendet wird. Die Syntax der Abgleichsregeln lautet:
[relation-operator] component-rule …
wobei relation-operator entweder && sein kann, was bedeutet, dass alle Komponentenregeln übereinstimmen müssen, oder **
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.

Konfigurieren der PAM-Authentifizierung
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:<path to the pkcs11 driver>/opensc-pkcs11.so
Die Konfigurationsdatei sieht nach der Änderung wie folgt aus, wenn SSSD verwendet wird.

(Optional) Single Sign-On mit Smartcards
Single Sign-On (SSO) ist eine Citrix-Funktion, die die Pass-Through-Authentifizierung bei virtuellen Desktop- 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.
XDPing ausführen
Nachdem Sie die vorhergehenden Schritte ausgeführt haben, können Sie das Linux-Tool XDPing verwenden, um häufige Konfigurationsprobleme in Ihrer Linux VDA-Umgebung zu überprüfen.
Verwendung
Anmeldung am Linux VDA mit einer Smartcard
Sie können eine Smartcard verwenden, um sich in SSO- und Nicht-SSO-Szenarien am Linux VDA anzumelden.
- Im SSO-Szenario werden Sie automatisch mit dem zwischengespeicherten Smartcard-Zertifikat und der PIN bei StoreFront™ angemeldet. 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 mithilfe einer Smartcard
Um eine Wiederverbindung mit einer Sitzung herzustellen, stellen Sie sicher, dass die Smartcard mit dem Clientgerät verbunden ist. Andernfalls wird auf der Linux VDA-Seite ein graues Caching-Fenster angezeigt und schnell wieder geschlossen, da die erneute Authentifizierung 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 jedoch, wenn eine Smartcard beim Wiederverbinden mit einer Sitzung nicht angeschlossen ist, die StoreFront-Weboberfläche eine Warnung wie folgt anzeigen:

Einschränkung
Einstellungen für die Smartcard-Entfernung
Um das Verhalten festzulegen, wenn die Smartcard eines angemeldeten Benutzers während einer Sitzung aus dem Smartcard-Lesegerät entfernt wird, bearbeiten Sie den folgenden Registrierungsschlüssel auf dem Linux VDA:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\LocalPolicies\SecurityOptions
| Wertname | Typ | Standard | Beschreibung |
|---|---|---|---|
| SCardRemoveOption | REG_DWORD | 0x00000000 | Diese Einstellung bestimmt, was passiert, wenn die Smartcard eines angemeldeten Benutzers während einer Sitzung aus dem Smartcard-Lesegerät entfernt wird. Die Optionen sind wie folgt |
| 0 Keine Aktion | |||
| 1 Abmeldung erzwingen: Der Benutzer wird bei Entfernen der Smartcard automatisch abgemeldet. | |||
| 2 Sitzung trennen: Die Sitzung wird getrennt, ohne den Benutzer bei Entfernen der Smartcard abzumelden. Der Benutzer kann die Smartcard erneut einstecken, um die Sitzung später wieder zu verbinden. | |||
| 3 Arbeitsstation sperren: Der virtuelle Desktop wird gesperrt. Der Benutzer kann anschließend die Smartcard erneut einstecken und den PIN-Code eingeben, um den Bildschirm zu entsperren. | |||
| SCardRemoveActionDelaySeconds | REG_DWORD | 15 | Wenn die Entfernungsoption auf Abmeldung erzwingen oder Sitzung trennen eingestellt ist, können Sie eine Verzögerung von mehreren Sekunden festlegen, bevor die Aktion ausgeführt wird. Mit dieser Einstellung wird nach dem Entfernen der Smartcard ein Meldungsfeld in der Benutzersitzung angezeigt, das darauf hinweist, dass die Sitzung nach den angegebenen Sekunden zwangsweise abgemeldet oder getrennt wird. Wenn Sie die Smartcard vor Ablauf dieser Zeit erneut einstecken, wird die Sitzung ohne Unterbrechung fortgesetzt. |
Einschränkungen
Der Linux VDA unterstützt jeweils nur ein Smartcard-Lesegerät.
Unterstützung für andere Smartcards und die PKCS#11-Bibliothek
Citrix bietet eine generische Smartcard-Umleitungslösung. Obwohl nur die OpenSC-Smartcard auf unserer Supportliste aufgeführt ist, können Sie versuchen, andere Smartcards und die PKCS#11-Bibliothek zu verwenden. Um zu Ihrer spezifischen Smartcard oder der PKCS#11-Bibliothek zu wechseln:
-
Ersetzen Sie alle Instanzen von
opensc-pkcs11.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-->wobei PATH auf Ihre PKCS#11-Bibliothek verweist, z. B.
/usr/lib64/pkcs11/opensc-pkcs11.so -
Deaktivieren Sie die schnelle Smartcard-Anmeldung auf dem Client.
