Linux Virtual Delivery Agent

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

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

注:

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

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

  • 2206 リリース以降、ctxsetup.sh の CTX_XDL_FAS_LIST を介して Linux VDA 側で FAS ポートをカスタマイズできます。詳しくは、お使いのディストリビューションに基づいた Linux VDA のインストールに関する記事を参照してください。

Linux VDA での FAS の構成

RHEL 8.x および Rocky Linux 8.x での FAS サポート

FAS は pam_krb5 モジュールに依存しますが、これは RHEL 8.x および Rocky Linux 8.x では非推奨です。マルチセッション OS モードで提供される RHEL 8.x および Rocky Linux 8.x マシンで FAS を使用する場合は、次の手順が必要です。シングルセッション OS (VDI) モードで提供される RHEL 8.x および 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. RHEL 8.x および Rocky Linux 8.x で 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-->
    

FAS サーバーの設定

新規の Linux VDA インストールで FAS を使用するには、ctxinstall.sh または ctxsetup.sh を実行するときに、各 FAS サーバーの FQDN を入力します。

注:

FAS サーバーは AD グループポリシーを介して構成されます。ドメイン GPO での FAS ポリシー設定については、「グループポリシーの構成」を参照してください。

Linux VDA は AD グループポリシーをサポートしていないため、代わりにセミコロン区切りの FAS サーバーのリストを指定できます。次の点に注意してください。

  • リストの順序は、AD グループポリシーで構成されているものと同じである必要があります。

  • サーバーアドレスが削除された場合は、その空白を <none> テキスト文字列で埋め、サーバーアドレスのインデックスを変更せずに保持します。

既存の Linux VDA インストールをアップグレードするには、ctxsetup.sh を再実行して FAS サーバーを設定できます。または、次のコマンドを実行して 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

service ctxjproxy restart

service ctxvda restart
<!--NeedCopy-->

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

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

証明書のインストール

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

注:

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

次のコマンドと同様に実行して、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」を参照してください。

正しい 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

service ctxjproxy restart

service ctxvda restart
<!--NeedCopy-->

制限事項

  • FAS は、限られた Linux プラットフォームと AD 統合方法をサポートしています。次のマトリックスを参照してください。

      Winbind SSSD Centrify PBIS
    Amazon Linux 2 はい はい はい はい
    Debian 11.3 はい はい はい はい
    RHEL 9.1/9.0 はい はい いいえ いいえ
    RHEL 8.7/8.6/8.4 はい はい はい はい
    RHEL 7.9, CentOS 7.9 はい はい はい はい
    Rocky Linux 9.1/9.0 はい はい いいえ いいえ
    Rocky Linux 8.7/8.6 はい はい いいえ いいえ
    SUSE 15.4 はい はい はい いいえ
    Ubuntu 22.04/20.04 はい はい はい はい
  • FASはまだロック画面をサポートしていません。セッション内でロックボタンをクリックすると、FASを使用してそのセッションに再度ログオンすることはできません。
  • このリリースは、Federated Authentication Service architectural overviewの記事にまとめられている一般的な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環境に存在する可能性のある一般的な構成の問題を確認することもできます。詳細については、XDPingを参照してください。

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未構成

この問題は、FASストアがSAML認証を使用するように構成されているにもかかわらず、ADFS展開が存在しない場合に発生します。

解決策

Federated Authentication Service用にADFS IdPを展開します。詳細については、Federated Authentication Service ADFS展開を参照してください。

関連情報

既知の問題

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

非英語文字を含むセッションの起動失敗

回避策

CAツールでManage Templatesを右クリックし、Citrix_SmartcardLogonテンプレートをBuild from this Active Directory informationからSupply in the requestに変更します。

要求で提供するオプション

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