Linux Virtual Delivery Agent 2103

Pass-Through-Authentifizierung mittels Smartcards

Benutzer 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 Smartcard-Umleitung über den virtuellen ICA®-Smartcard-Kanal implementiert. Benutzer 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 und die Authentifizierung an 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 Smartcard-Umgebung konfigurieren in diesem Artikel.

  • Die Verfügbarkeit der Pass-Through-Authentifizierung mittels Smartcards ist von den folgenden Bedingungen abhängig:

  • Der Linux-VDA ist auf RHEL 7 oder RHEL 8 installiert.
  • Von OpenSC unterstützte Smartcards werden verwendet.
  • Die 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.

Smartcard-Unterstützung unter RHEL 8

Die Smartcard-Authentifizierung hängt vom Modul pam_krb5 ab, das unter RHEL 8 veraltet ist. Um die Smartcard-Authentifizierung unter RHEL 8 zu verwenden, erstellen Sie das Modul pam_krb5 wie folgt:

  1. Laden Sie den pam_krb5-2.4.8-6-Quellcode von https://centos.pkgs.org/7/centos-x86_64/pam_krb5-2.4.8-6.el7.x86_64.rpm.html herunter.

  2. Erstellen und installieren Sie das Modul pam_krb5 unter RHEL 8.

    yum install -y opensc pcsc-lite pcsc-lite-libs pcsc-lite-ccid nss-tools
    yum install gcc krb5-devel pam-devel autoconf libtool
    rpm2cpio pam_krb5-2.4.8-6.el7.src.rpm | cpio –div
    tar xvzf pam_krb5-2.4.8.tar.gz
    cd pam_krb5-2.4.8
    ./configure --prefix=/usr
    make
    make install
    <!--NeedCopy-->
    
  3. Überprüfen Sie, ob pam_krb5.so unter /usr/lib64/security/ vorhanden ist.

    ls -l /usr/lib64/security | grep pam_krb5
    <!--NeedCopy-->
    

Installieren der Linux-VDA-Software unter RHEL 7, RHEL 8

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 der VDA sich beim Delivery Controller™ registrieren kann und die veröffentlichten Linux-Desktopsitzungen erfolgreich mit Kennwortauthentifizierung gestartet werden können.

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 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 OpenSC-Treiber unterstützt YubiKey 4.

Abbildung von YubiKey 4

Wenn Ihre Organisation eine andere, fortschrittlichere Smartcard benötigt, bereiten Sie eine physische Maschine mit RHEL 7 oder RHEL 8 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

Konfiguration

Stammzertifikat vorbereiten

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.

  1. 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-->
    
  2. 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 <Pfad, in dem Sie das Stammzertifikat installieren> aus.

Smartcard-Umgebung konfigurieren

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.

     sudo /opt/Citrix/VDA/sbin/ctxsmartlogon.sh
     <!--NeedCopy-->
    

    Die Ergebnisse ähneln den folgenden:

    Abbildung der Ausführung des ctxsmartlogon.sh-Skripts zum Aktivieren

    Um Smartcards zu deaktivieren:

     sudo /opt/Citrix/VDA/sbin/ctxsmartlogon.sh
     <!--NeedCopy-->
    

    Die Ergebnisse ähneln den folgenden:

    Abbildung der Ausführung des ctxsmartlogon.sh-Skripts zum Deaktivieren

  • Smartcard-Umgebung manuell konfigurieren

    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 Internetinformationsdienste, 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.

PC/SC Lite-Pakete installieren

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-->

Smartcard-Treiber installieren

OpenSC ist ein weit verbreiteter Smartcard-Treiber unter RHEL. Wenn OpenSC nicht installiert ist, führen Sie den folgenden Befehl aus, um es zu installieren.

-  yum install opensc
<!--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.

RHEL 7:

yum install pam_krb5 krb5-pkinit
<!--NeedCopy-->
  • RHEL 8:
yum install krb5-pkinit
<!--NeedCopy-->

Das pam_krb5-Modul ist ein steckbares Authentifizierungsmodul, das PAM-fähige Anwendungen verwenden können, um Passwörter zu überprüfen und Ticket-Granting Tickets vom Key Distribution Center (KDC) abzurufen. Das krb5-pkinit-Modul enthält das PKINIT-Plug-in, das Clients ermöglicht, anfängliche Anmeldeinformationen vom KDC mithilfe eines privaten Schlüssels und eines Zertifikats abzurufen.

Konfigurieren des pam_krb5-Moduls

Das pam_krb5-Modul interagiert mit dem KDC, um Kerberos-Tickets mithilfe von Zertifikaten auf der Smartcard abzurufen. 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 den Versuch der PKINIT-Authentifizierung verwendet wird. Die Syntax der Abgleichsregeln lautet:

[Beziehungsoperator] Komponentenregel …

wobei Beziehungsoperator entweder && sein kann, was bedeutet, dass alle Komponentenregeln übereinstimmen müssen, oder ||, was bedeutet, dass nur eine Komponentenregel übereinstimmen muss.

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.

Hinzugefügte PKINIT-Informationen

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:/usr/lib64/pkcs11/opensc-pkcs11.so

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

Geänderte Konfigurationsdatei, wenn Winbind verwendet wird

(Optional) Single Sign-On mithilfe von 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.

Aktivieren der Smartcard-Authentifizierung in der Workspace-App

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 standardmäßig auf dem Client 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

Anmelden am Linux VDA mithilfe einer Smartcard

Benutzer können eine Smartcard verwenden, um sich sowohl in SSO- als auch in Nicht-SSO-Szenarien am Linux VDA anzumelden.

  • Im SSO-Szenario werden Benutzer automatisch bei StoreFront™ angemeldet, indem das zwischengespeicherte Smartcard-Zertifikat und die PIN verwendet werden. Wenn Benutzer eine virtuelle Linux-Desktopsitzung in StoreFront starten, wird die PIN zur Smartcard-Authentifizierung an den Linux VDA übergeben.
  • Im Nicht-SSO-Szenario werden Benutzer aufgefordert, ein Zertifikat auszuwählen und eine PIN einzugeben, um sich bei StoreFront anzumelden.

    Bild der PIN-Eingabe zur Anmeldung bei StoreFront

Wenn Benutzer eine virtuelle Linux-Desktopsitzung in StoreFront starten, wird ein Dialogfeld zur Anmeldung am Linux VDA wie folgt angezeigt. Der Benutzername wird aus dem Zertifikat auf der Smartcard extrahiert, und Benutzer müssen die PIN zur Anmeldeauthentifizierung erneut eingeben.

Dieses Verhalten ist dasselbe wie beim Windows VDA.

Anmeldeauthentifizierung

Wiederverbinden mit einer Sitzung mithilfe einer Smartcard

Um eine Sitzung wiederherzustellen, 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 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 jedoch, wenn eine Smartcard nicht angeschlossen ist, wenn Sie versuchen, eine Sitzung wiederherzustellen, kann die StoreFront-Webseite eine Warnung wie folgt anzeigen.

Bild des Einsteckens einer Smartcard

Einschränkung

Smartcard-Entfernungsrichtlinie

Der Linux VDA verwendet derzeit 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 OpenSC-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:

  1. Ersetzen Sie alle Instanzen von opensc-pkcs11.so durch Ihre PKCS#11-Bibliothek.

  2. 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, wie z. B. /usr/lib64/pkcs11/opensc-pkcs11.so

  3. Deaktivieren Sie die schnelle Smartcard-Anmeldung auf dem Client.

Pass-Through-Authentifizierung mittels Smartcards