Linux Virtual Delivery Agent 2201

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

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

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

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

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 の実行

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 を選択した場合のキー配布センター (KDC) のホスト名を指定します。

  • CTX_FAS_PKINIT_KDC_HOSTNAME: PKINIT KDC ホスト名を指定します。特に指定がない限り、CTX_FAS_KDC_HOSTNAME と同じです。

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

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

制限事項

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

      Winbind SSSD Centrify PBIS
    Amazon Linux 2 Yes Yes Yes Yes
    RHEL 8.4 Yes Yes Yes Yes
    RHEL 8.3 Yes Yes Yes Yes
    RHEL 8.2 Yes Yes Yes Yes
    RHEL 8.1 Yes Yes Yes Yes
    RHEL 7.9 / CentOS 7.9 Yes Yes Yes Yes
    RHEL 7.8 / CentOS 7.8 Yes Yes Yes Yes
    SLES 15.3 Yes No Yes No
    SLES 15.2 Yes No Yes No
    SLES 12.5 Yes No Yes No
    Ubuntu 20.04 Yes No Yes No
    Ubuntu 18.04 Yes No Yes No
    Ubuntu 16.04 Yes No Yes No
  • 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 ストアからのセッション起動に失敗します。灰色のウィンドウが表示され、数秒後に消えます。

Invalid logon due to incorrect root CA certificate configuration

/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 ログオンページでユーザー名とパスワードを入力した後、次のエラーが発生する可能性があります。

Shadow account mapping error

このエラーは、ADFS ユーザーが正常に検証されたものの、AD にシャドウユーザーが構成されていないことを示します。

解決策

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

ADFS が構成されていません

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

ADFSが構成されていません

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

解決策

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

関連情報

既知の問題

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

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

回避策

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

要求で提供オプション

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