Linux Virtual Delivery Agent

フェデレーション認証サービス

フェデレーション認証サービス(FAS)を使用して、Linux VDAにログオンするユーザーを認証することができます。 Linux VDAは、FASログオン機能にWindows VDAと同じWindows環境を使用します。 FAS用のWindows環境の構成については、「フェデレーション認証サービス」を参照してください。 この記事では、Linux VDAに固有の追加情報を提供します。

  • Linux VDAは、In-session Behaviorポリシーをサポートしていません。

  • Linux VDAは、短い接続を使用してFASサーバーとデータを送信します。

サポートされているディストリビューション

FASは、限定的なLinux ディストリビューションとドメイン参加方法をサポートします。 次のマトリックスを参照してください:

  Winbind SSSD Centrify PBIS Quest
Debian 12.9/11.11 はい はい はい はい いいえ
RHEL 9.5/9.4/9.2 はい はい はい いいえ はい
RHEL 8.10/8.8 はい はい はい はい はい
Rocky Linux 9.5/9.4/9.2 はい はい はい いいえ いいえ
Rocky Linux 8.10/8.8 はい はい はい いいえ いいえ
SUSE 15.6 はい はい はい いいえ いいえ
Ubuntu 24.04 はい はい はい いいえ いいえ
Ubuntu 22.04 はい はい はい はい はい

Linux VDAでのFASの構成

証明書のインストール

ユーザーの証明書を検証するには、ルートCA証明書とすべての中間証明書をVDAにインストールします。 たとえば、ルートCA証明書をインストールするには、前述の「Microsoft CAからのCA証明書の取得(ADで)」の手順でADルート証明書を取得するか、またはルートCAサーバー(http://CA-SERVER/certsrv)からダウンロードします。

次のコマンドは、中間証明書の構成にも適用されます。

たとえば、DERファイル(.crt、.cer、*.der)をPEMに変換するには、次のようなコマンドを実行します:

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

続いて、次のようなコマンドを実行して、ルートCA証明書をopensslディレクトリにインストールします:

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

ルートCA証明書を/rootパス下に配置しないでください。 配置すると、FASにはルートCA証明書への読み取り権限がなくなります。

ctxfascfg.shの実行

ctxfascfg.shスクリプトを実行してFASを構成します:

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

ctxfascfg.shをサイレントモードで実行できます。 スクリプトをサイレントモードで実行する前に、次の環境変数を設定します:

  • CTX_FAS_ADINTEGRATIONWAY=winbind | sssd | centrify | pbis | quest:Active Directoryの統合方式を指定。CTX_EASYINSTALL_ADINTEGRATIONWAYが指定されている場合、CTX_EASYINSTALL_ADINTEGRATIONWAYと同じ値です。 If CTX_EASYINSTALL_ADINTEGRATIONWAYが指定されていない場合、CTX_FAS_ADINTEGRATIONWAYは独自の値を使用します。

  • CTX_FAS_CERT_PATH =<certificate path>:ルート証明書とすべての中間証明書を格納するフルパスを指定します。

  • CTX_FAS_KDC_HOSTNAME:PBISおよびQuestを選択するときに、キー配布センター(KDC)のホスト名を指定します。

  • CTX_FAS_PKINIT_KDC_HOSTNAME:PKINIT KDCホスト名を指定します。特に指定しない限りCTX_FAS_KDC_HOSTNAMEと同じです。 複数のDelivery Controllerがある場合は、ドメインのすべてのKDCのホスト名を/etc/krb5.confファイルのpkinit_kdc_hostnameに追加します。 詳しくは、Knowledge CenterのCTX322129を参照してください。

  • CTX_FAS_SERVER_LIST=’list-fas-servers’ – フェデレーション認証サービス(FAS)サーバーは、ADグループポリシーにより構成されます。 ドメインGPOでのFASポリシー設定について詳しくは、「グループポリシーの構成」を参照してください。 Linux VDAはADグループポリシーをサポートしていません。代わりに、セミコロンで区切られたFASサーバーの一覧を使用できます。 シーケンスは、ADグループポリシーで設定したものと同じである必要があります。 いずれかのサーバーアドレスが削除された場合は、その空白を’<none>‘のテキスト文字列で埋めます。サーバーアドレスの順序は変更しないでください。 FASサーバーと適切に通信するには、FASサーバーで指定されているポート番号と一致するポート番号を追加してください。例:「CTX_XDL_FAS_LIST=’fas_server_1_url:port_number; fas_server_2_url: port_number; fas_server_3_url: port_number’」。

    既存のLinux VDAインストールをアップグレードするには、次のコマンドを実行してFASサーバーを設定し、ctxvdaサービスを再起動して設定を有効にすることができます。

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

    ctxregを使用してFASサーバーを更新するには、次のコマンドを実行します:

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

正しいActive Directory統合方法を選択し、証明書の正しいパスを入力します(例:/etc/pki/CA/certs/)。

次に、このスクリプトはkrb5-pkinitパッケージとpam_krb5パッケージをインストールし、関連する構成ファイルを設定します。 RHEL 8以降の場合、PAM_KRB5がEPELリポジトリに移動されると、スクリプトはそれらのディストリビューションでEPELを有効にしようとします。

FASの無効化

Linux VDAでFASを無効にするには、次のコマンドを使用してConfDBからすべてのFASサーバーを削除します:

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

FAS SSO失敗時のセカンダリ認証を有効にする

Linux VDAは、FASシングルサインオン(SSO)が失敗した場合に特にセカンダリ認証方法を提供することで、ログインの復元性を強化します。 この機能により、FAS SSOで問題が発生した場合、ユーザーはパスワード認証のために資格情報を手動で入力するよう求められます。 この機能を有効にするには、次のコマンドを実行します:

  create -k "HKLM\System\CurrentControlSet\Control\Citrix\AccessControl\Login\Global" -t "REG_DWORD" -v "SecondaryAuthEnabled" -d "0x00000001" --force
<!--NeedCopy-->

制限事項

  • 現在、FASはロック画面をサポートしていません。 セッションでロックボタンをクリックすると、FASを使用してセッションに再度ログオンすることはできません。
  • このリリースでは、「フェデレーション認証サービスのアーキテクチャの概要」の記事で説明している一般的なFAS環境のみがサポートされており、Windows 10 Azure AD Joinは含まれません。

トラブルシューティング

FASのトラブルシューティングを行う前に、次のことを確認してください:

  • Linux VDAが正しくインストールされ、構成されています。
  • FAS以外のセッションは、パスワード認証を使用して共通ストアで正常に起動できます。

FAS以外のセッションが適切に機能している場合は、LoginクラスのHDXログレベルをVERBOSEに設定し、VDAログレベルをTRACEに設定します。 Linux VDAのトレースログを有効にする方法については、Knowledge CenterのCTX220130の記事を参照してください。

Linux XDPingツールを使用してLinux VDA環境に一般的な構成の問題がないか確認することもできます。

FASサーバー構成エラー

FASストアからセッションを起動すると失敗します。

/var/log/xdl/hdx.logを確認し、次のようなエラーログを探します:

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

解決策

次のコマンドを実行して、Citrixレジストリ値「HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService」が<Your-FAS-Server-List>に設定されていることを確認します。

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

既存の設定が間違っている場合は、前述の「FASサーバーの設定」の手順に従って再設定します。

間違ったCA証明書の構成

FASストアからセッションを起動すると失敗します。 灰色のウィンドウが表示され、数秒後に消えます。

間違ったルートCA証明書の構成による無効なログオン

/var/log/xdl/hdx.logを確認し、次のようなエラーログを探します:

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

解決策

/etc/krb5.confにルートCA証明書とすべての中間証明書を格納するフルパスが正しく設定されていることを確認します。 フルパスは次のようになります:


   [realms]

  EXAMPLE.COM = {

      ......

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

      ......

  }  
<!--NeedCopy-->

既存の設定が間違っている場合は、前述の「証明書のインストール」の手順に従って再設定します。

または、ルートCA証明書が有効かどうかを確認します。

シャドウアカウントマッピングエラー

FASはSAML認証により構成されます。 ADFSユーザーがADFSログオンページでユーザー名とパスワードを入力すると、次のエラーが発生することがあります。

シャドウアカウントマッピングエラー

このエラーは次のことを意味します:

  • ADFSユーザーが正常に確認されたが、ADにシャドウユーザーが構成されていない。

解決策

ADにシャドウアカウントを設定します。

ADFSが構成されていない

FASストアへのログオン中に次のエラーが発生します:

ADFSが構成されていない

この問題は、ADFSが展開されていない状態で、FASストアがSAML認証を使用するよう構成した場合に発生します。

解決策

フェデレーション認証サービス用のADFS IdPの展開 詳しくは、「フェデレーション認証サービスのADFSの展開」を参照してください。

関連情報

既知の問題

FASが使用されている場合、英語以外の文字を使用して公開デスクトップまたはアプリセッションを開始しようとすると、失敗することがあります。

英語以外の文字を使用したセッションの開始に失敗した場合

回避方法

CAツールの[テンプレートの管理]を右クリックし、[Citrix_SmartcardLogon]テンプレート上で[Active Directoryの情報から構築する][要求に含まれる]に変更します:

[要求に含まれる]オプション