Linux Virtual Delivery Agent 2104

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

Linux VDAは、FASを使用してCitrix Virtual Apps and Desktops環境にログオンすることをサポートしています。FASログオン機能には、Windows VDAと同じWindows環境を使用します。FASのWindows環境の設定については、「フェデレーション認証サービス」を参照してください。この記事では、Linux VDAに特化した追加情報を提供します。

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

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

Linux VDAでのFASの設定

RHEL 8/CentOS 8でのFASサポート

FASは、RHEL 8/CentOS 8で非推奨となっているpam_krb5モジュールに依存します。RHEL 8/CentOS 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/CentOS 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の実行中にCTX_XDL_FAS_LISTを求められたときに、各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をサイレントモードで実行できるように、2つの環境変数が追加されています。

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

  • CTX_FAS_CERT_PATH =<certificate path> – ルート証明書とすべての中間証明書が保存されている完全なパスを指定します。

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

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

制限事項

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

      Winbind SSSD Centrify
    RHEL 8.3 / CentOS 8.3 Yes Yes Yes
    RHEL 8.2 / CentOS 8.2 Yes Yes Yes
    RHEL 8.1 / CentOS 8.1 Yes Yes Yes
    RHEL 7.9 / CentOS 7.9 Yes Yes Yes
    RHEL 7.8 / CentOS 7.8 Yes Yes Yes
    Ubuntu 20.04 Yes No Yes
    Ubuntu 18.04 Yes No Yes
    Ubuntu 16.04 Yes No Yes
    SLES 12.5 Yes No Yes
  • 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-->

解決策

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

Supply in the requestオプション

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