リナックス バーチャル デリバリー エージェント

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

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

注:

  • Linux VDAは、セッション内動作ポリシーをサポートしていません。

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

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

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

  Winbind SSSD Centrify PBIS Quest
Debian 12.12 Yes Yes Yes Yes Yes
Debian 13 Yes Yes Yes Yes No
RHEL 10/9.7/9.6/9.4 Yes Yes Yes No Yes
RHEL 8.10 Yes Yes Yes Yes Yes
Rocky Linux 10/9.7/9.6/9.4 Yes Yes Yes No Yes
Rocky Linux 8.10 Yes Yes Yes No Yes
SUSE 15.7 Yes Yes Yes No Yes
Ubuntu 24.04 Yes Yes Yes No Yes
Ubuntu 22.04 Yes Yes Yes Yes Yes

注:

  1. ドメイン参加方法がQuestの場合、krb5.confが存在しない可能性があります。そのようなシナリオでは、まず「krb5-pkinit」と「libpam-krb5」を手動でインストールし(これによりKerberos情報が求められ、krb5.confに書き込まれます)、その後fasスクリプト「/opt/Citrix/VDA/sbin/ctxfascfg.sh」を実行してください。

  2. rhel9およびrocky9の場合、お客様は「AD-SUPPORT」暗号化ポリシーを有効にする必要があります(Kerberos認証中にADによって使用される場合、SHA1も必要になる場合があります)。コマンドは次のとおりです。

    update-crypto-policies --set DEFAULT:AD-SUPPORT

    update-crypto-policies --set DEFAULT:AD-SUPPORT:SHA1

  3. For Debian 11, users may need to configure the digest method to ‘SHA256’ manually. Command as follow: /opt/Citrix/VDA/bin/ctxreg create -k “HKLM\Software\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService” -t “REG_SZ” -v “DigestMethod” -d “SHA256” –force

Linux VDA でのフェデレーション認証サービス (FAS) の構成

証明書をインストールする

ユーザーの証明書を検証するために、VDAにルートCA証明書とすべての中間証明書をインストールします。たとえば、ルートCA証明書をインストールするには、前の「Microsoft CA (AD上) からCA証明書を取得する」の手順から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 スクリプトを実行する

FASを構成するには、ctxfascfg.shスクリプトを実行します。

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に等しくなります。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’ – Federated Authentication Service (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 を使用してセッションに再度ログオンすることはできません。
  • このリリースでは、Federated Authentication Service のアーキテクチャ概要 の記事にまとめられている一般的な 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-->

解決策

Run the following command to verify that the Citrix registry value “HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService” is set to <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-->

解決策

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


 [realms]

EXAMPLE.COM = {

    ......

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

    ......

}
<!--NeedCopy-->

既存の設定が正しくない場合は、前の証明書のインストールの手順に従って再度設定してください。

または、ルートCA証明書が有効であるかを確認してください。

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

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

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

このエラーは、次のことを示しています。

  • ADFSユーザーは正常に検証されましたが、ADにシャドウユーザーが構成されていません。

解決策

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

ADFSが構成されていません

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

ADFSが構成されていません

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

解決策

フェデレーション認証サービス用にADFS IdPを展開します。詳細については、フェデレーション認証サービス ADFS展開を参照してください。

関連する情報

既知の問題

FASを使用している場合、非英語文字を含む公開デスクトップまたはアプリセッションを起動しようとすると失敗することがあります。

非英語文字を含むセッションの起動に失敗する様子

回避策

CAツールでテンプレートの管理を右クリックし、Citrix_SmartcardLogonテンプレートをこのActive Directory情報から構築から要求で提供に変更します。

リクエストで提供するオプション