Tarjetas inteligentes

Last published : Nov 13, 2026
Puede usar una tarjeta inteligente conectada al dispositivo cliente para la autenticación al iniciar sesión en una sesión de escritorio virtual Linux. Esta función se implementa mediante la redirección de tarjetas inteligentes a través del canal virtual de tarjetas inteligentes ICA®. También puede usar la tarjeta inteligente dentro de la sesión. Los casos de uso incluyen:
  • Añadir una firma digital a un documento
  • Cifrar o descifrar un correo electrónico
  • Autenticarse en un sitio web
El VDA de Linux utiliza la misma configuración que el VDA de Windows para esta función. Para obtener más información, consulte la sección Configurar el entorno de tarjetas inteligentes de este artículo.
Nota:
No se admite el uso de una tarjeta inteligente asignada dentro de una sesión de VDA de Linux para iniciar sesión en Citrix Gateway.

Compatibilidad con distribuciones de Linux limitadas y métodos de integración de AD

  • La autenticación de paso de tarjeta inteligente admite distribuciones de Linux limitadas y métodos de integración de AD. Consulte la siguiente matriz:
    Winbind SSSD Centrify Quest
    Debian 12.15 Sí Sí Sí Sí
    Debian 13.6 Sí Sí Sí No
    RHEL 10.2/9.8/9.6 Sí Sí Sí Sí
    RHEL 8.10 Sí Sí Sí Sí
    Rocky Linux 10.2/9.8/9.6 Sí Sí Sí Sí
    Rocky Linux 8.10 Sí Sí Sí Sí
    Ubuntu 26.04 Sí Sí No No
    Ubuntu 24.04 Sí Sí Sí Sí
    Ubuntu 22.04 Sí Sí Sí Sí

Requisitos previos

La disponibilidad de la autenticación de paso de tarjeta inteligente depende de las siguientes condiciones:

Asegúrese de que OpenSC sea compatible con su tarjeta inteligente

OpenSC es un controlador de tarjeta inteligente muy utilizado en RHEL 7.4+. Como reemplazo totalmente compatible de CoolKey, OpenSC admite muchos tipos de tarjetas inteligentes (consulte Compatibilidad con tarjetas inteligentes en Red Hat Enterprise Linux).
En este artículo, la tarjeta inteligente YubiKey se utiliza como ejemplo para ilustrar la configuración. YubiKey es un dispositivo USB CCID PIV todo en uno que se puede adquirir fácilmente en Amazon u otros minoristas. El controlador OpenSC es compatible con YubiKey.
Si su organización requiere alguna otra tarjeta inteligente más avanzada, prepare una máquina física con una distribución de Linux compatible y el paquete OpenSC instalado. Para obtener información sobre la instalación de OpenSC, consulte Instalar el controlador de tarjeta inteligente. Inserte su tarjeta inteligente y ejecute el siguiente comando para verificar que OpenSC es compatible con su tarjeta inteligente:
pkcs11-tool --module opensc-pkcs11.so --list-slots

Configuración

Prepare un certificado raíz

Se utiliza un certificado raíz para verificar el certificado de la tarjeta inteligente. Siga estos pasos para descargar e instalar un certificado raíz.
  1. Obtenga un certificado raíz en formato PEM, normalmente de su servidor CA.
    Puede ejecutar un comando similar al siguiente para convertir un archivo DER (*.crt, *.cer, *.der) a PEM. En el siguiente ejemplo de comando, certnew.cer es un archivo DER.
    openssl x509 -inform der -in certnew.cer -out certnew.pem
  2. Instale el certificado raíz en el directorio openssl. El archivo certnew.pem se utiliza como ejemplo.
    cp certnew.pem <path where you install the root certificate>
    Para crear una ruta para instalar el certificado raíz, ejecute sudo mdkir -p <path where you install the root certificate>.

Configurar el entorno de la tarjeta inteligente

Puede usar el script ctxsmartlogon.sh para configurar el entorno de la tarjeta inteligente o completar la configuración manualmente.

(Opción 1) Usar el script ctxsmartlogon.sh para configurar el entorno de la tarjeta inteligente

Nota:
El script ctxsmartlogon.sh añade información de PKINIT al reino predeterminado. Puede cambiar esta configuración a través del archivo de configuración /etc/krb5.conf.
Antes de usar tarjetas inteligentes por primera vez, ejecute el script ctxsmartlogon.sh para configurar el entorno de la tarjeta inteligente.
Sugerencia:
Si ha utilizado SSSD para la unión a un dominio, reinicie el servicio SSSD después de ejecutar ctxsmartlogon.sh. Para RHEL 8 y versiones posteriores, como PAM_KRB5 se ha movido al repositorio EPEL, el script intentará habilitar EPEL en esas distribuciones.
sudo /opt/Citrix/VDA/sbin/ctxsmartlogon.sh
Los resultados son similares a los siguientes:
Ejecutando el script ctxsmartlogon.sh y seleccionando sí
Nota:
Si utiliza Quest como método de unión a un dominio, debe especificar el nombre de host del Centro de distribución de claves (KDC). Por ejemplo:
Se requiere especificar el nombre de host del KDC
También puede deshabilitar las tarjetas inteligentes ejecutando el script ctxsmartlogon.sh:
sudo /opt/Citrix/VDA/sbin/ctxsmartlogon.sh
Los resultados se parecen a los siguientes:
Ejecutar el script ctxsmartlogon.sh y seleccionar no

(Opción 2) Configurar el entorno de la tarjeta inteligente manualmente

El VDA de Linux utiliza el mismo entorno de tarjeta inteligente que el VDA de Windows. En este entorno, se deben configurar varios componentes, incluidos el controlador de dominio, la entidad de certificación (CA) de Microsoft, los Servicios de información de Internet, Citrix StoreFront y la aplicación Citrix Workspace. Para obtener información sobre la configuración basada en la tarjeta inteligente YubiKey, consulte el artículo del Centro de conocimientos CTX206156.
Antes de pasar al siguiente paso, asegúrese de que:
  • Ha configurado todos los componentes correctamente.
  • Ha descargado la clave privada y el certificado de usuario en la tarjeta inteligente.
  • Puede iniciar sesión correctamente en el VDA con la tarjeta inteligente.
Instalar los paquetes PC/SC Lite
PCSC Lite es una implementación de la especificación Personal Computer/Smart Card (PC/SC) en Linux. Proporciona una interfaz de tarjeta inteligente de Windows para comunicarse con tarjetas inteligentes y lectores. La redirección de tarjetas inteligentes en el VDA de Linux se implementa a nivel de PC/SC.
Ejecute el siguiente comando para instalar los paquetes PC/SC Lite:
RHEL y Rocky Linux:
yum install -y pcsc-lite pcsc-lite-ccid pcsc-lite-libs
Ubuntu y Debian:
apt-get install -y libpcsclite1 libccid
Instalar el controlador de la tarjeta inteligente
OpenSC es un controlador de tarjeta inteligente muy utilizado. Si OpenSC no está instalado, ejecute el siguiente comando para instalarlo:
RHEL y Rocky Linux:
yum install -y opensc
Ubuntu y Debian:
apt-get install -y opensc
Instalar los módulos PAM para la autenticación con tarjeta inteligente
Ejecute el siguiente comando para instalar los módulos pam_krb5 y krb5-pkinit.
RHEL y Rocky Linux:
yum install -y krb5-pkinit pam_krb5
Ubuntu:
apt-get install -y libpam-krb5 krb5-pkinit
Debian:
apt-get install -y libpam-krb5 krb5-pkinit
El módulo pam\_krb5 es un módulo de autenticación conectable. Las aplicaciones compatibles con PAM pueden usar pam\_krb5 para comprobar contraseñas y obtener tickets de concesión de tickets del Centro de distribución de claves (KDC). El módulo krb5-pkinit contiene el complemento PKINIT que permite a los clientes obtener credenciales iniciales del KDC mediante una clave privada y un certificado.
Configurar el módulo pam\_krb5
El módulo pam\_krb5 interactúa con el KDC para obtener tickets Kerberos mediante certificados en la tarjeta inteligente. Para habilitar la autenticación pam_krb5 en PAM, ejecute el siguiente comando:
authconfig --enablekrb5 --update
En el archivo de configuración /etc/krb5.conf, agregue la información de PKINIT según el dominio real.
Nota:
La opción pkinit_cert_match especifica las reglas de coincidencia que debe cumplir el certificado del cliente antes de que se utilice para intentar la autenticación PKINIT. La sintaxis de las reglas de coincidencia es:
regla-componente…
donde operador-de-relación puede ser &&, lo que significa que todas las reglas de componente deben coincidir, o \|\|, lo que significa que solo una regla de componente debe coincidir.
Aquí tiene un ejemplo de un archivo krb5.conf genérico:
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

 }
El archivo de configuración se parece al siguiente después de añadir la información de PKINIT.
Información de PKINIT añadida
Configurar la autenticación PAM
Los archivos de configuración de PAM indican qué módulos se utilizan para la autenticación PAM. Para añadir pam_krb5 como módulo de autenticación, agregue la siguiente línea al archivo /etc/pam.d/smartcard-auth:
auth [success=done ignore=ignore default=die] pam_krb5.so preauth_options=X509_user_identity=PKCS11:<path to the pkcs11 driver>/opensc-pkcs11.so
El archivo de configuración se parece al siguiente después de la modificación si se utiliza SSSD.
Archivo de configuración modificado si se utiliza SSSD

(Opcional) Inicio de sesión único mediante tarjetas inteligentes

El inicio de sesión único (SSO) es una función de Citrix que implementa la autenticación de paso a través con el inicio de escritorios y aplicaciones virtuales. Esta función reduce el número de veces que los usuarios escriben su PIN. Para usar SSO con Linux VDA, configure la aplicación Citrix Workspace. La configuración es la misma que con Windows VDA. Para obtener más información, consulte el artículo del Centro de conocimientos CTX133982.
Habilite la autenticación con tarjeta inteligente de la siguiente manera al configurar la directiva de grupo en la aplicación Citrix Workspace™.
Habilitar la autenticación con tarjeta inteligente en la aplicación Workspace

Inicio de sesión rápido con tarjeta inteligente

La tarjeta inteligente rápida es una mejora con respecto a la redirección de tarjetas inteligentes basada en HDX PC/SC existente. Mejora el rendimiento cuando se utilizan tarjetas inteligentes en entornos WAN de alta latencia. Para obtener más información, consulte Tarjetas inteligentes.
El VDA de Linux admite la tarjeta inteligente rápida en las siguientes versiones de la aplicación Citrix Workspace:
  • Citrix Receiver para Windows 4.12
  • Citrix Workspace app 1808 para Windows y versiones posteriores

Habilitar el inicio de sesión rápido con tarjeta inteligente en el cliente

El inicio de sesión rápido con tarjeta inteligente está habilitado de forma predeterminada en el VDA y deshabilitado de forma predeterminada en el cliente. En el cliente, para habilitar el inicio de sesión rápido con tarjeta inteligente, incluya el siguiente parámetro en el archivo default.ica del sitio de StoreFront asociado:
[WFClient]
SmartCardCryptographicRedirection=On

Deshabilitar el inicio de sesión rápido con tarjeta inteligente en el cliente

Para deshabilitar el inicio de sesión rápido con tarjeta inteligente en el cliente, elimine el parámetro SmartCardCryptographicRedirection del archivo default.ica del sitio de StoreFront asociado.

Ejecutar XDPing

Después de completar los pasos anteriores, puede usar la herramienta XDPing de Linux para comprobar si hay problemas de configuración comunes que puedan existir en su entorno de VDA de Linux.

Uso

Iniciar sesión en el VDA de Linux mediante una tarjeta inteligente

Puede usar una tarjeta inteligente para iniciar sesión en el VDA de Linux tanto en escenarios de SSO como sin SSO.
  • En el escenario de SSO, inicia sesión en StoreFront™ automáticamente mediante el certificado de tarjeta inteligente y el PIN almacenados en caché. Cuando inicia una sesión de escritorio virtual de Linux en StoreFront, el PIN se pasa al VDA de Linux para la autenticación con tarjeta inteligente.
  • En el escenario sin SSO, se le pide que seleccione un certificado y escriba un PIN para iniciar sesión en StoreFront.
    Escribir un PIN para iniciar sesión en StoreFront
Cuando inicia una sesión de escritorio virtual de Linux en StoreFront, aparece un cuadro de diálogo para iniciar sesión en el VDA de Linux, como se muestra a continuación. El nombre de usuario se extrae del certificado de la tarjeta inteligente y debe volver a escribir el PIN para la autenticación de inicio de sesión.
Este comportamiento es el mismo que con el VDA de Windows.
Autenticación de inicio de sesión

Volver a conectar a una sesión mediante una tarjeta inteligente

Para volver a conectar a una sesión, asegúrese de que la tarjeta inteligente esté conectada al dispositivo cliente. De lo contrario, aparece una ventana de almacenamiento en caché gris en el lado del VDA de Linux y se cierra rápidamente porque la reautenticación falla si la tarjeta inteligente no está conectada. En este caso, no se proporciona ninguna otra indicación para recordarle que conecte la tarjeta inteligente.
En el lado de StoreFront, sin embargo, si no hay una tarjeta inteligente conectada al volver a conectarse a una sesión, la web de StoreFront podría mostrar una alerta como la siguiente:
Insertar una tarjeta inteligente

Limitación

Configuración de extracción de tarjetas inteligentes

Para especificar el comportamiento cuando se extrae la tarjeta inteligente de un usuario que ha iniciado sesión del lector de tarjetas inteligentes durante una sesión, modifique la siguiente clave del Registro en el VDA de Linux:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\LocalPolicies\SecurityOptions
Nombre del valor Tipo Predeterminado Descripción
SCardRemoveOption REG_DWORD 0x00000000 Esta configuración determina qué ocurre cuando se extrae la tarjeta inteligente de un usuario que ha iniciado sesión del lector de tarjetas inteligentes durante una sesión. Las opciones son las siguientes.
\^ \^ \^ 0 Ninguna acción
\^ \^ \^ 1 Cierre de sesión forzado: El usuario cierra sesión automáticamente al retirar la tarjeta inteligente.
\^ \^ \^ 2 desconectar Session: La sesión se desconecta sin cerrar la sesión del usuario al retirar la tarjeta inteligente. El usuario puede volver a insertar la tarjeta inteligente para reconectar la sesión más tarde.
\^ \^ \^ 3 Bloquear estación de trabajo: El escritorio virtual se bloquea. El usuario puede volver a insertar la tarjeta inteligente e introducir el código PIN para desbloquear la pantalla.
SCardRemoveActionDelaySeconds REG_DWORD 15 Si la opción de eliminación se establece como Cierre de sesión forzado o desconectar Session, puede especificar un retraso de varios segundos antes de que se realice la acción. Con esta configuración, aparece un cuadro de mensaje en la sesión del usuario después de retirar la tarjeta inteligente, indicando que la sesión se cerrará forzosamente o se desconectará después de los segundos especificados. Si vuelve a insertar la tarjeta inteligente antes de ese tiempo, la sesión continúa sin interrupciones.

Limitaciones

El VDA de Linux solo admite un lector de tarjetas inteligentes a la vez.

Compatibilidad con otras tarjetas inteligentes y la biblioteca PKCS#11

Citrix ofrece una solución genérica de redirección de tarjetas inteligentes. Aunque solo la tarjeta inteligente OpenSC aparece en nuestra lista de compatibilidad, puede intentar usar otras tarjetas inteligentes y la biblioteca PKCS#11. Para cambiar a su tarjeta inteligente específica o a la biblioteca PKCS#11:
  1. Reemplace todas las instancias de opensc-pkcs11.so con su biblioteca PKCS#11.
  2. Para establecer la ruta de su biblioteca PKCS#11 en el registro, ejecute el siguiente comando:
    /opt/Citrix/VDA/bin/ctxreg update -k "HKLM\System\CurrentControlSet\Control\Citrix\VirtualChannels\Scard" -v "PKCS11LibPath" -d "PATH"
    donde PATH apunta a su biblioteca PKCS#11, como /usr/lib64/pkcs11/opensc-pkcs11.so
  3. Deshabilite el inicio de sesión rápido con tarjeta inteligente en el cliente.