Linux Virtual Delivery Agent

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

Linux VDA にログオンするユーザーの認証には、フェデレーション認証サービス (FAS) を使用できます。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 での FAS サポート

FAS は pam_krb5 モジュールに依存していますが、これは RHEL 8 では非推奨です。RHEL 8 で FAS を使用するには、次のように pam_krb5 モジュールをビルドします。

  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 に 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 を入力します。Linux VDA は AD グループポリシーをサポートしていないため、代わりにセミコロンで区切られた FAS サーバーのリストを指定できます。サーバーアドレスが削除された場合は、その空白を <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 (AD 上) から CA 証明書を取得する」の手順で 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 の実行

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

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 ホスト名を指定します。

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

その後、スクリプトは krb5-pkinit および pam_krb5 パッケージをインストールし、関連する構成ファイルを設定します。

制限事項

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

      Winbind SSSD Centrify PBIS
    Amazon Linux 2 はい はい はい はい
    Debian 11.3, Debian 10.9 はい いいえ いいえ いいえ
    RHEL 8.4 はい はい はい はい
    RHEL 8.2 はい はい はい はい
    RHEL 7.9 / CentOS 7.9 はい はい はい はい
    SLES 15.3 はい いいえ はい いいえ
    SLES 15.2 はい いいえ はい いいえ
    Ubuntu 20.04 はい いいえ はい いいえ
    Ubuntu 18.04 はい いいえ はい いいえ
  • FAS はまだロック画面をサポートしていません。セッションでロックボタンをクリックすると、FAS を使用してセッションに再度ログオンすることはできません。
  • このリリースは、フェデレーション認証サービスのアーキテクチャの概要の記事にまとめられている一般的な FAS 展開のみをサポートしており、Windows 10 Azure AD Join は含まれていません。

トラブルシューティング

FAS のトラブルシューティングを行う前に、Linux VDA が正しくインストールおよび構成されており、パスワード認証を使用して共通ストアで非 FAS セッションが正常に起動できることを確認してください。

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

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展開が不足している場合にこの問題が発生します。

解決策

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

関連情報

既知の問題

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

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

回避策

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

要求で提供オプション

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