Linux Virtual Delivery Agent

フェデレーテッド認証サービス

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

注:

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

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

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

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

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

Linux VDAでのFASの構成

RHEL/Rocky Linux 8.x以降でのFASサポート

FASは、RHEL/Rocky Linux 8.x以降では非推奨となっているpam_krb5モジュールに依存しています。マルチセッションOSモードで提供されるRHEL/Rocky Linux 8.x以降のマシンでFASを使用する場合は、次の手順が必要です。シングルセッションOS(VDI)モードで提供されるRHEL/Rocky Linux 8.x以降のマシンでのFASについては、次の手順をスキップできます。

  1. 次のWebサイトからpam_krb5-2.4.8-6ソースコードをダウンロードします:

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

  2. 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. /usr/lib64/security/の下にpam_krb5.soが存在することを確認します。

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

証明書のインストール

  • ユーザーの証明書を検証するために、ルートCA証明書とすべての中間証明書をVDAにインストールします。たとえば、ルート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の実行

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

-  sudo /opt/Citrix/VDA/sbin/ctxfascfg.sh
<!--NeedCopy-->
  • ctxfascfg.shはサイレントモードで実行できます。サイレントモードでスクリプトを実行する前に、次の環境変数を設定します:

  • CTX_FAS_ADINTEGRATIONWAY=winbind | sssd | centrify | pbis:Active Directory統合方法を示します。CTX_EASYINSTALL_ADINTEGRATIONWAYが指定されている場合、これと同じになります。CTX_EASYINSTALL_ADINTEGRATIONWAYが指定されていない場合、CTX_FAS_ADINTEGRATIONWAYは独自の値を設定します。

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

  • CTX_FAS_KDC_HOSTNAME:PBISを選択した場合のKey Distribution Center(KDC)のホスト名を指定します。

  • CTX_FAS_PKINIT_KDC_HOSTNAME:特に指定がない限り、CTX_FAS_KDC_HOSTNAMEと同じPKINIT KDCホスト名を指定します。複数の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パッケージをインストールし、関連する構成ファイルを設定します。

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はまだロック画面をサポートしていません。セッションでロックボタンをクリックすると、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-->

解決策

ルート 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 情報から構築] から [要求で提供] に変更します。

要求で提供オプション