Servicio de autenticación federada
Puedes usar el Servicio de autenticación federada (FAS) para autenticar a los usuarios que inician sesión en un VDA de Linux. El VDA de Linux usa el mismo entorno de Windows que el VDA de Windows para la función de inicio de sesión de FAS. Para obtener información sobre cómo configurar el entorno de Windows para FAS, consulta Servicio de autenticación federada. Este artículo proporciona información adicional específica para el VDA de Linux.
Nota:
El VDA de Linux no es compatible con la directiva de comportamiento en la sesión.
El VDA de Linux usa conexiones cortas para transmitir datos con los servidores FAS.
A partir de la versión 2206, puedes personalizar el puerto de FAS en el lado del VDA de Linux mediante CTX_XDL_FAS_LIST en ctxsetup.sh. Para obtener más información, consulta el artículo de instalación del VDA de Linux según tu distribución.
Configurar FAS en el VDA de Linux
Compatibilidad de FAS con RHEL 8 y Rocky Linux 8
FAS depende del módulo pam_krb5, que está obsoleto en RHEL 8 y Rocky Linux 8. Se requieren los siguientes pasos si quieres usar FAS en máquinas RHEL 8 y Rocky Linux 8 distribuidas en modo de SO multisecuencia. Para FAS en máquinas RHEL 8 y Rocky Linux 8 distribuidas en modo de SO de sesión única (VDI), puedes omitir los siguientes pasos.
-
Descarga el código fuente de pam_krb5-2.4.8-6 del siguiente sitio web:
https://centos.pkgs.org/7/centos-x86_64/pam_krb5-2.4.8-6.el7.x86_64.rpm.html.
-
Compila e instala el módulo pam_krb5 en RHEL 8 y Rocky Linux 8.
yum install make 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--> -
Verifica que pam_krb5.so existe en /usr/lib64/security/.
ls -l /usr/lib64/security | grep pam_krb5 <!--NeedCopy-->
Configurar servidores FAS
Para usar FAS en una instalación nueva de Linux VDA, escribe el FQDN de cada servidor FAS cuando ejecutes ctxinstall.sh o ctxsetup.sh. Como el VDA de Linux no es compatible con la directiva de grupo de AD, puedes proporcionar una lista de servidores FAS separada por punto y coma. Si se elimina alguna dirección de servidor, rellena su espacio en blanco con la cadena de texto <none> y no modifiques el orden de las direcciones de los servidores.
Para actualizar una instalación existente de Linux VDA, puedes volver a ejecutar ctxsetup.sh para configurar los servidores FAS. O puedes ejecutar los siguientes comandos para configurar los servidores FAS y reiniciar el servicio ctxvda para que tu configuración surta efecto.
sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\Software\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService" -t "REG_SZ" -v "Addresses" -d "<Your-FAS-Server-List>" --force
service ctxjproxy restart
service ctxvda restart
<!--NeedCopy-->
Para actualizar los servidores FAS mediante ctxreg, ejecuta los siguientes comandos:
sudo /opt/Citrix/VDA/bin/ctxreg update -k "HKLM\Software\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService" -v "Addresses" -d "<Your-FAS-Server-List>"
service ctxjproxy restart
service ctxvda restart
<!--NeedCopy-->
-
Instalar certificados
- Para la verificación de los certificados de los usuarios, instala el certificado de CA raíz y todos los certificados intermedios en el VDA. Por ejemplo, para instalar el certificado de CA raíz, obtén el certificado raíz de AD del paso anterior Recuperar el certificado de CA de la CA de Microsoft (en AD), o descarga su formato DER del servidor de CA raíz
http://CA-SERVER/certsrv.
Nota:
Los siguientes comandos también se aplican a la configuración de un certificado intermedio.
Convierte un archivo DER (.crt, .cer, .der) a PEM ejecutando un comando similar al siguiente:
sudo openssl x509 -inform der -in root.cer -out root.pem
<!--NeedCopy-->
- Luego, instala el certificado de CA raíz en el directorio
opensslejecutando un comando similar al siguiente:
sudo cp root.pem /etc/pki/CA/certs/
<!--NeedCopy-->
Nota:
No coloques el certificado de CA raíz en la ruta /root. De lo contrario, FAS no tendrá permiso de lectura para el certificado de CA raíz.
Ejecutar ctxfascfg.sh
- Ejecuta el script ctxfascfg.sh para configurar FAS:
sudo /opt/Citrix/VDA/sbin/ctxfascfg.sh
<!--NeedCopy-->
Se agregan variables de entorno para que ctxfascfg.sh se pueda ejecutar en modo silencioso:
-
CTX_FAS_ADINTEGRATIONWAY=winbind | sssd | centrify | pbis: Indica el método de integración de Active Directory, que es igual a
CTX_EASYINSTALL_ADINTEGRATIONWAYcuando se especificaCTX_EASYINSTALL_ADINTEGRATIONWAY. Si no se especificaCTX_EASYINSTALL_ADINTEGRATIONWAY,CTX_FAS_ADINTEGRATIONWAYusa su propio valor. -
CTX_FAS_CERT_PATH =<certificate path>: Especifica la ruta completa que almacena el certificado raíz y todos los certificados intermedios.
-
CTX_FAS_KDC_HOSTNAME: Especifica el nombre de host del Centro de distribución de claves (KDC) cuando seleccionas PBIS.
-
CTX_FAS_PKINIT_KDC_HOSTNAME: Especifica el nombre de host de PKINIT KDC, que es igual a CTX_FAS_KDC_HOSTNAME a menos que se especifique lo contrario. Si tienes varios Delivery Controllers, agrega los nombres de host de todos los KDC del dominio a pkinit_kdc_hostname en el archivo /etc/krb5.conf. Para obtener más información, consulta el artículo del Centro de conocimientos CTX322129.
Elige el método de integración de Active Directory correcto y luego escribe la ruta correcta de los certificados (por ejemplo, /etc/pki/CA/certs/).
Luego, el script instala los paquetes krb5-pkinit y pam_krb5 y establece los archivos de configuración relevantes.
Deshabilitar FAS
Para deshabilitar FAS en el VDA de Linux, elimina todos los servidores FAS de ConfDB usando los siguientes comandos:
sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\Software\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService" -t "REG_SZ" -v "Addresses" -d "" --force
service ctxjproxy restart
service ctxvda restart
<!--NeedCopy-->
Limitación
-
FAS es compatible con plataformas Linux limitadas y métodos de integración de AD. Consulta la siguiente matriz:
Winbind SSSD Centrify PBIS Amazon Linux 2 Sí Sí Sí Sí Debian 11.3 Sí Sí Sí Sí RHEL 9.0 Sí Sí No No RHEL 8.6, RHEL 8.4 Sí Sí Sí Sí RHEL 7.9 / CentOS 7.9 Sí Sí Sí Sí Rocky Linux 9.0 Sí Sí No No Rocky Linux 8 Sí Sí No No SLES 15.3 Sí Sí Sí No Ubuntu 22.04, Ubuntu 20.04, Ubuntu 18.04 Sí Sí Sí Sí - FAS aún no es compatible con la pantalla de bloqueo. Si haces clic en el botón de bloqueo en una sesión, no podrás volver a iniciar sesión en ella usando FAS.
- Esta versión solo es compatible con las implementaciones comunes de FAS resumidas en el artículo Descripción general de la arquitectura del servicio de autenticación federada y no incluye Windows 10 Azure AD Join.
Solución de problemas
Antes de solucionar problemas de FAS, asegúrate de que el VDA de Linux esté instalado y configurado correctamente y de que se pueda iniciar una sesión sin FAS correctamente en el almacén común mediante la autenticación con contraseña.
Si las sesiones sin FAS funcionan correctamente, establece el nivel de registro HDX de la clase Login en VERBOSE y el nivel de registro VDA en TRACE. Para obtener información sobre cómo habilitar el registro de seguimiento para el VDA de Linux, consulta el artículo del Knowledge Center CTX220130.
Error de configuración del servidor FAS
No se puede iniciar una sesión desde el almacén de FAS.
Comprueba /var/log/xdl/hdx.log y busca el registro de errores similar al siguiente:
2021-01-28 01:42:16.164 <P26422:S4> citrix-ctxlogin: validate_user: [Logon Type] Federated Authentication Logon.
2021-01-28 01:42:16.164 <P26422:S4> citrix-ctxlogin: validate_fas: entry
- 2021-01-28 01:42:16.164 <P26422:S4> citrix-ctxlogin: connect_fas: start connect to server 0
2021-01-28 01:42:16.164 <P26422:S4> citrix-ctxlogin: connect_fas0: failed to connect: Connection refused.
2021-01-28 01:42:16.164 <P26422:S4> citrix-ctxlogin: validate_fas: failed to connect to server [0], please confirm if fas service list is well configurated in condb
2021-01-28 01:42:16.164 <P26422:S4> citrix-ctxlogin: validate_fas: exit, 43
2021-01-28 01:42:16.164 <P26422:S4> citrix-ctxlogin: validate_user: failed to validate fas credential
2021-01-28 01:42:16.164 <P26422:S4> citrix-ctxlogin: LoginBoxValidate: failed validation of user 'user1@CTXDEV.LOCAL', INVALID_PARAMETER
<!--NeedCopy-->
Solución
Ejecuta el siguiente comando para verificar que el valor del registro de Citrix “HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService” esté establecido en <Tu-Lista-de-Servidores-FAS>.
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep "UserCredentialService"
<!--NeedCopy-->
Si la configuración existente es incorrecta, sigue el paso anterior Configurar servidores FAS para volver a configurarla.
Configuración incorrecta del certificado de CA
No se puede iniciar una sesión desde el almacén de FAS. Aparece una ventana gris y desaparece varios segundos después.

Comprueba /var/log/xdl/hdx.log y busca el registro de errores similar al siguiente:
2021-01-28 01:47:46.210 <P30656:S5> citrix-ctxlogin: get_logon_certificate: entry
2021-01-28 01:47:46.210 <P30656:S5> citrix-ctxlogin: check_caller: current process: pid [30656], name [/opt/Citrix/VDA/bin/ctxlogin]
2021-01-28 01:47:46.210 <P30656:S5> citrix-ctxlogin: get_public_certificate: entry
2021-01-28 01:47:46.211 <P30656:S5> citrix-ctxlogin: query_fas: waiting for response...
2021-01-28 01:47:46.270 <P30656:S5> citrix-ctxlogin: query_fas: query to server success
2021-01-28 01:47:46.270 <P30656:S5> citrix-ctxlogin: get_public_certificate: exit
2021-01-28 01:47:46.270 <P30656:S5> citrix-ctxlogin: fas_base64_decode: input size 1888
2021-01-28 01:47:46.271 <P30656:S5> citrix-ctxlogin: fas_base64_decode: output size 1415
2021-01-28 01:47:46.271 <P30656:S5> citrix-ctxlogin: get_logon_certificate: get logon certificate success
2021-01-28 01:47:46.271 <P30656:S5> citrix-ctxlogin: cache_certificate: cache certificate success
2021-01-28 01:47:46.271 <P30656:S5> citrix-ctxlogin: get_logon_certificate: exit, 0
2021-01-28 01:47:48.060 <P30656:S5> citrix-ctxlogin: validate_user: pam_authenticate err,can retry for user user1@CTXDEV.LOCAL
<!--NeedCopy-->
Solución
Verifica que hayas configurado correctamente en /etc/krb5.conf la ruta completa que almacena el certificado de CA raíz y todos los certificados intermedios. La ruta completa es similar a la siguiente:
[realms]
EXAMPLE.COM = {
......
pkinit_anchors = DIR:/etc/pki/CA/certs/
......
}
<!--NeedCopy-->
Si la configuración existente es incorrecta, sigue el paso anterior Instalar certificados para volver a configurarla.
Alternativamente, comprueba si el certificado de CA raíz es válido.
Error de asignación de cuenta de sombra
FAS está configurado mediante autenticación SAML. El siguiente error podría ocurrir después de que un usuario de ADFS introduzca el nombre de usuario y la contraseña en la página de inicio de sesión de ADFS.

Este error indica que el usuario de ADFS se ha verificado correctamente, pero no hay ningún usuario de sombra configurado en AD.
Solución
Configura la cuenta de sombra en AD.
ADFS no configurado
El siguiente error ocurre durante un intento de inicio de sesión en el almacén de FAS:

El problema ocurre cuando el almacén de FAS está configurado para usar la autenticación SAML, pero falta la implementación de ADFS.
Solución
Implementa el IdP de ADFS para el Servicio de autenticación federada. Para obtener más información, consulta Implementación de ADFS del Servicio de autenticación federada.
Información relacionada
- Las implementaciones comunes de FAS se resumen en el artículo Descripción general de la arquitectura del servicio de autenticación federada.
- Los artículos “Cómo hacer” se presentan en el capítulo Configuración avanzada del servicio de autenticación federada.
Problema conocido
Cuando FAS está en uso, es posible que no puedas iniciar una sesión de escritorio o aplicación publicada con caracteres no ingleses.

Solución alternativa
Haz clic con el botón derecho en Administrar plantillas en la herramienta de CA para cambiar la plantilla Citrix_SmartcardLogon de Crear a partir de esta información de Active Directory a Suministrar en la solicitud:
