Linux Virtual Delivery Agent

Service d’authentification fédérée

Vous pouvez utiliser le service d’authentification fédérée (FAS) pour authentifier les utilisateurs qui ouvrent une session sur un Linux VDA. Le Linux VDA utilise le même environnement Windows que le VDA Windows pour la fonctionnalité d’ouverture de session de FAS. Pour plus d’informations sur la configuration de l’environnement Windows pour FAS, consultez Service d’authentification fédérée. Cet article fournit des informations supplémentaires spécifiques au Linux VDA.

Remarque :

  • Le Linux VDA ne prend pas en charge la stratégie Comportement en session.

  • Le Linux VDA utilise des connexions courtes pour transmettre des données avec des serveurs FAS.

Distributions prises en charge

FAS prend en charge des distributions Linux limitées et des méthodes de jonction de domaines. Reportez-vous à la matrice suivante :

  Winbind SSSD Centrify PBIS
Amazon Linux 2 Oui Oui Oui Oui
Debian 11.7/11.3 Oui Oui Oui Oui
RHEL 9.2/9.0 Oui Oui Non Non
RHEL 8.8/8.6 Oui Oui Oui Oui
RHEL 7.9, CentOS 7.9 Oui Oui Oui Oui
Rocky Linux 9.2/9.0 Oui Oui Non Non
Rocky Linux 8.8/8.6 Oui Oui Non Non
SUSE 15.5 Oui Oui Oui Non
Ubuntu 22.04/20.04 Oui Oui Oui Oui

Configurer FAS sur le Linux VDA

Prise en charge de FAS sur RHEL/Rocky Linux 8.x et versions ultérieures

FAS dépend du module pam_krb5, qui est obsolète sur RHEL/Rocky Linux 8.x et versions ultérieures. Les étapes suivantes sont requises si vous souhaitez utiliser le FAS sur des machines RHEL/Rocky Linux 8.x ou version ultérieure fournies en mode OS multi-session. Si vous utilisez le FAS sur les machines RHEL/Rocky Linux 8.x et versions ultérieures fournies en mode OS mono-session (VDI), vous pouvez ignorer les étapes suivantes.

  1. Téléchargez le code source pam_krb5-2.4.8-6 à partir du site Web suivant :

    https://centos.pkgs.org/7/centos-x86_64/pam_krb5-2.4.8-6.el7.x86_64.rpm.html.

  2. Créez et installez le module pam_krb5.

    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-->
    
  3. Vérifiez que pam_krb5.so existe sous /usr/lib64/security/.

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

Installation des certificats

Pour la vérification des certificats des utilisateurs, installez le certificat d’autorité de certification racine et tous les certificats intermédiaires sur le VDA. Par exemple, pour installer le certificat CA racine, vous pouvez obtenir le certificat racine AD depuis l’étape précédente (Récupérer le certificat CA à partir de l’autorité de certification Microsoft (sur AD)) ou le télécharger à partir du serveur de l’autorité de certification racine http://CA-SERVER/certsrv.

Remarque :

Les commandes suivantes s’appliquent également à la configuration d’un certificat intermédiaire.

Par exemple, pour convertir un fichier DER (.crt, .cer, .der) en PEM, exécutez une commande similaire à la suivante :

sudo openssl x509 -inform der -in root.cer -out root.pem
<!--NeedCopy-->

Installez ensuite le certificat d’autorité de certification racine dans le répertoire openssl en exécutant la commande suivante :

sudo cp root.pem /etc/pki/CA/certs/
<!--NeedCopy-->

Remarque :

ne placez pas le certificat d’autorité de certification racine sous le chemin d’accès /root. Sinon, le FAS ne dispose pas de l’autorisation de lecture sur le certificat CA racine.

Exécuter ctxfascfg.sh

Exécutez le script ctxfascfg.sh pour configurer FAS :

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

Vous pouvez exécuter ctxfascfg.sh en mode silencieux. Avant d’exécuter le script en mode silencieux, définissez les variables d’environnement suivantes :

  • CTX_FAS_ADINTEGRATIONWAY=winbind | sssd | centrify | pbis : indique la méthode d’intégration d’Active Directory, qui est CTX_EASYINSTALL_ADINTEGRATIONWAY lorsque CTX_EASYINSTALL_ADINTEGRATIONWAY est spécifié. Si CTX_EASYINSTALL_ADINTEGRATIONWAY n’est pas spécifié, CTX_FAS_ADINTEGRATIONWAY utilise son propre paramètre de valeur.

  • CTX_FAS_CERT_PATH =<certificate path> : spécifie le chemin complet qui stocke le certificat racine et tous les certificats intermédiaires.

  • CTX_FAS_KDC_HOSTNAME : spécifie le nom d’hôte du centre de distribution de clés (KDC) lorsque vous sélectionnez PBIS.

  • CTX_FAS_PKINIT_KDC_HOSTNAME : spécifie le nom d’hôte KDC PKINIT, qui correspond à CTX_FAS_KDC_HOSTNAME, sauf indication contraire. Si vous disposez de plusieurs Delivery Controllers, ajoutez les noms d’hôte de tous les KDC du domaine à pkinit_kdc_hostname dans le fichier /etc/krb5.conf. Pour obtenir davantage d’informations, veuillez consulter l’article CTX322129 du centre de connaissances.

  • CTX_FAS_SERVER_LIST=’list-fas-servers’ : les serveurs du service d’authentification fédérée (FAS) sont configurés via la stratégie de groupe AD. Pour plus d’informations sur la définition de la stratégie FAS sur l’objet de stratégie de groupe du domaine, consultez Configurer la stratégie de groupe. Le Linux VDA ne prend pas en charge la stratégie de groupe AD mais vous pouvez fournir une liste de serveurs FAS séparés par des points-virgules. La séquence doit être la même que celle configurée dans la stratégie de groupe AD. Si une adresse de serveur est supprimée, remplissez son espace vide avec la chaîne de texte ’<none>‘ et ne modifiez pas l’ordre des adresses de serveur. Pour communiquer correctement avec les serveurs FAS, assurez-vous d’ajouter un numéro de port conforme à celui spécifié sur les serveurs FAS, par exemple CTX_XDL_FAS_LIST=’fas_server_1_url:port_number; fas_server_2_url: port_number; fas_server_3_url: port_number’.

    Pour mettre à niveau une installation Linux VDA existante, vous pouvez exécuter les commandes suivantes pour configurer les serveurs FAS et redémarrer le service ctxvda afin que vos paramètres soient pris en compte.

     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
    
     systemctl restart ctxjproxy
    
     systemctl restart ctxvda
     <!--NeedCopy-->
    

    Pour mettre à jour les serveurs FAS via ctxreg, exécutez les commandes suivantes :

     sudo /opt/Citrix/VDA/bin/ctxreg update -k "HKLM\Software\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService" -v "Addresses" -d "<Your-FAS-Server-List>"
    
     systemctl restart ctxjproxy
    
     systemctl restart ctxvda
     <!--NeedCopy-->
    

Choisissez la méthode d’intégration Active Directory correcte, puis tapez le chemin correct des certificats (par exemple, /etc/pki/CA/certs/).

Le script installe ensuite les packages krb5-pkinit et pam_krb5 et définit les fichiers de configuration pertinents.

Désactiver FAS

Pour désactiver FAS sur le Linux VDA, supprimez tous les serveurs FAS de ConfDB à l’aide des commandes suivantes :

sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\Software\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService" -t "REG_SZ" -v "Addresses" -d "" --force

systemctl restart ctxjproxy

systemctl restart ctxvda
<!--NeedCopy-->

Limitation

  • FAS ne prend pas encore en charge l’écran de verrouillage. Si vous cliquez sur le bouton de verrouillage dans une session, vous ne pouvez plus vous reconnecter à la session en utilisant FAS.
  • Cette version ne prend en charge que les déploiements FAS courants décrits dans l’article Vue d’ensemble de l’architecture du Service d’authentification fédérée, dont Windows 10 Azure AD Join est exclu.

Dépannage

Avant de dépanner le FAS, assurez-vous que :

  • Le Linux VDA est correctement installé et configuré.
  • Une session non FAS peut être lancée avec succès sur le magasin commun à l’aide de l’authentification par mot de passe.

Si les sessions non FAS fonctionnent correctement, définissez le niveau de journalisation HDX de la classe Login sur VERBOSE et le niveau de journalisation VDA sur TRACE. Pour plus d’informations sur l’activation de la consignation de trace pour Linux VDA, consultez l’article du centre de connaissances CTX220130.

Vous pouvez également utiliser l’outil Linux XDPing pour vérifier les problèmes de configuration courants susceptibles de survenir dans votre environnement VDA Linux.

Erreur de configuration du serveur FAS

Le lancement d’une session à partir du magasin FAS échoue.

Vérifiez /var/log/xdl/hdx.log et recherchez le journal des erreurs semblable au suivant :

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

Solution

Exécutez la commande suivante pour vérifier que la valeur de Registre Citrix « HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService » est définie sur <Your-FAS-Server-List>.

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep "UserCredentialService"
<!--NeedCopy-->

Si le paramètre existant est incorrect, suivez l’étape précédente Définir les serveurs FAS pour le définir à nouveau.

Configuration du certificat d’autorité de certification incorrecte

Le lancement d’une session à partir du magasin FAS échoue. Une fenêtre grise apparaît et disparaît quelques secondes plus tard.

Ouverture de session non valide en raison d'une configuration incorrecte du certificat d'autorité de certification racine

Vérifiez /var/log/xdl/hdx.log et recherchez le journal des erreurs semblable au suivant :

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

Solution

Vérifiez que vous avez correctement défini le chemin complet qui stocke le certificat d’autorité de certification racine et tous les certificats intermédiaires dans /etc/krb5.conf. Le chemin d’accès complet est similaire au suivant :


 [realms]

EXAMPLE.COM = {

    ......

    pkinit_anchors = DIR:/etc/pki/CA/certs/

    ......

}  
<!--NeedCopy-->

Si le paramètre existant est incorrect, suivez l’étape précédente Installation des certificats pour le définir à nouveau.

Vous pouvez également vérifier si le certificat d’autorité de certification racine est valide.

Erreur de mappage du compte fictif

FAS est configuré par l’authentification SAML. L’erreur suivante peut survenir après qu’un utilisateur ADFS entre le nom d’utilisateur et le mot de passe sur la page de connexion ADFS.

Erreur de mappage du compte fictif

Cette erreur indique que l’utilisateur ADFS a été vérifié, mais qu’aucun utilisateur fictif n’est configuré sur AD.

Solution

Définissez le compte fictif sur AD.

ADFS non configuré

L’erreur suivante se produit lors d’une tentative d’ouverture de session au magasin FAS :

ADFS non configuré

Le problème se produit lorsque vous configurez le magasin FAS pour utiliser l’authentification SAML mais que le déploiement ADFS est manquant.

Solution

Déployez le fournisseur d’identité ADFS du Service d’authentification fédérée. Pour plus d’informations, consultez la section Déploiement ADFS du Service d’authentification fédérée.

Informations connexes

Problèmes connus

Lorsque FAS est utilisé, la tentative de lancement d’une session de bureau ou d’application publiée avec des caractères non anglais peut échouée.

Échec de lancement de sessions avec une langue autre que l'anglais

Solution

Cliquez avec le bouton droit sur Manage Templates dans l’outil d’autorité de certification pour modifier le modèle Citrix_SmartcardLogon à partir de Build from this Active Directory information vers Supply in the request :

Option Supply in the request