フェデレーション認証サービス
フェデレーション認証サービス (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 インストール記事を参照してください。
サポートされるディストリビューション
FAS は、限られた Linux ディストリビューションとドメイン参加方法をサポートしています。次のマトリックスを参照してください。
| Winbind | SSSD | Centrify | PBIS | |
|---|---|---|---|---|
| Amazon Linux 2 | はい | はい | はい | はい |
| Debian 11.3 | はい | はい | はい | はい |
| RHEL 9.2/9.0 | はい | はい | いいえ | いいえ |
| RHEL 8.8/8.6 | はい | はい | はい | はい |
| RHEL 7.9, CentOS 7.9 | はい | はい | はい | はい |
| Rocky Linux 9.2/9.0 | はい | はい | いいえ | いいえ |
| Rocky Linux 8.8/8.6 | はい | はい | いいえ | いいえ |
| SUSE 15.4 | はい | はい | はい | いいえ |
| Ubuntu 22.04/20.04 | はい | はい | はい | はい |
Linux VDA での FAS の構成
RHEL 8.x/9.x および Rocky Linux 8.x/9.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 については、次の手順をスキップできます。
-
次の 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.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--> -
/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 (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 を選択したときに、Key Distribution Center (KDC) のホスト名を指定します。
-
CTX_FAS_PKINIT_KDC_HOSTNAME: PKINIT KDC ホスト名を指定します。特に指定がない限り、CTX_FAS_KDC_HOSTNAME と同じです。複数の 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 はまだロック画面をサポートしていません。セッションでロックボタンをクリックすると、FAS を使用してセッションに再度ログオンすることはできません。
- このリリースでは、フェデレーション認証サービスアーキテクチャの概要の記事にまとめられている一般的な 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 ストアからのセッション起動に失敗します。灰色のウィンドウが表示され、数秒後に消えます。

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

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

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