フェデレーション認証サービスの設定
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モジュールをビルドします。
-
次の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。
-
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--> -
pam_krb5.soが/usr/lib64/security/の下に存在することを確認します。
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_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 はい はい はい RHEL 8.2 はい はい はい RHEL 8.1 はい はい はい RHEL 7.9 はい はい はい RHEL 7.8 はい はい はい Ubuntu 20.04 はい いいえ はい Ubuntu 18.04 はい いいえ はい Ubuntu 16.04 はい いいえ はい SLES 12.5 はい いいえ はい - 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ストアからのセッション起動に失敗します。灰色のウィンドウが表示され、数秒後に消えます。

/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ストアへのログオン試行中に次のエラーが発生します。

この問題は、FASストアがSAML認証を使用するように構成されているにもかかわらず、ADFS展開が不足している場合に発生します。
解決策
フェデレーション認証サービス用にADFS IdPを展開します。詳細については、フェデレーション認証サービスADFS展開を参照してください。
関連情報
- 一般的なFAS展開については、Federated Authentication Service のアーキテクチャの概要の記事にまとめられています。
- 「ハウツー」記事は、Federated Authentication Service の高度な構成の章で紹介されています。
既知の問題
FASを使用している場合、非英語文字を含む公開デスクトップまたはアプリセッションを起動しようとすると失敗することがあります。

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