フェデレーテッド認証サービス
フェデレーテッド認証サービス (FAS) を使用して、Linux VDAにログオンするユーザーを認証できます。Linux VDAは、FASログオン機能に関して、Windows VDAと同じWindows環境を使用します。FASのWindows環境の構成については、「フェデレーテッド認証サービス」を参照してください。この記事では、Linux VDAに固有の追加情報を提供します。
注:
Linux VDAは、セッション内動作ポリシーをサポートしていません。
Linux VDAは、FASサーバーとのデータ転送にショート接続を使用します。
サポートされるディストリビューション
FASは、限られたLinuxディストリビューションとドメイン参加方法をサポートしています。次のマトリックスを参照してください。
| Winbind | SSSD | Centrify | PBIS | |
|---|---|---|---|---|
| Amazon Linux 2 | Yes | Yes | Yes | Yes |
| Debian 11.7/11.3 | Yes | Yes | Yes | Yes |
| RHEL 9.2/9.0 | Yes | Yes | No | No |
| RHEL 8.8/8.6 | Yes | Yes | Yes | Yes |
| RHEL 7.9, CentOS 7.9 | Yes | Yes | Yes | Yes |
| Rocky Linux 9.2/9.0 | Yes | Yes | No | No |
| Rocky Linux 8.8/8.6 | Yes | Yes | No | No |
| SUSE 15.5 | Yes | Yes | Yes | No |
| Ubuntu 22.04/20.04 | Yes | Yes | Yes | Yes |
Linux VDAでのFASの構成
RHEL/Rocky Linux 8.x以降でのFASサポート
FASは、RHEL/Rocky Linux 8.x以降では非推奨となっているpam_krb5モジュールに依存しています。マルチセッションOSモードで提供されるRHEL/Rocky Linux 8.x以降のマシンでFASを使用する場合は、次の手順が必要です。シングルセッションOS(VDI)モードで提供されるRHEL/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。
-
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-->
証明書のインストール
-
ユーザーの証明書を検証するために、ルートCA証明書とすべての中間証明書をVDAにインストールします。たとえば、ルートCA証明書をインストールするには、前述のMicrosoft CA(AD上)からCA証明書を取得する手順からADルート証明書を取得するか、ルートCAサーバー
http://CA-SERVER/certsrvからダウンロードします。 -
注:
-
次の一連のコマンドは、中間証明書の構成にも適用されます。
たとえば、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:特に指定がない限り、
CTX_FAS_KDC_HOSTNAMEと同じPKINIT KDCホスト名を指定します。複数のDelivery Controllerがある場合は、ドメインのすべてのKDCのホスト名を/etc/krb5.confファイルのpkinit_kdc_hostnameに追加します。詳しくは、Knowledge Centerの記事「CTX322129」を参照してください。 -
CTX_FAS_SERVER_LIST=’list-fas-servers’ – フェデレーテッド認証サービス(FAS)サーバーは、ADグループポリシーを介して構成されます。ドメインGPOでのFASポリシー設定については、「グループポリシーの構成」を参照してください。Linux VDAはADグループポリシーをサポートしていませんが、代わりにFASサーバーのセミコロン区切りリストを提供できます。シーケンスは、ADグループポリシーで構成されているものと同じである必要があります。サーバーアドレスが削除された場合は、その空白を’<none>‘テキスト文字列で埋め、サーバーアドレスの順序を変更しないでください。FASサーバーと適切に通信するには、FASサーバーで指定されたポート番号と一致するポート番号を追加してください。例:
CTX_XDL_FAS_LIST='fas_server_1_url:port_number; fas_server_2_url: port_number; fas_server_3_url: port_number'。既存のLinux VDAインストールをアップグレードするには、次のコマンドを実行して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 systemctl restart ctxjproxy systemctl restart ctxvda <!--NeedCopy-->ctxregを介してFASサーバーを更新するには、次のコマンドを実行します:sudo /opt/Citrix/VDA/bin/ctxreg update -k "HKLM\Software\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService" -v "Addresses" -d "<Your-FAS-Server-List>" systemctl restart ctxjproxy systemctl restart ctxvda <!--NeedCopy-->
正しい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
systemctl restart ctxjproxy
systemctl restart ctxvda
<!--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 環境に存在する可能性のある一般的な構成の問題を確認することもできます。
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 展開については、「フェデレーション認証サービスのアーキテクチャの概要」の記事にまとめられています。
- 「ハウツー」記事は、「フェデレーション認証サービスの高度な構成」の章で紹介されています。
既知の問題
FAS の使用中に、非英語文字を含む公開デスクトップまたはアプリセッションを起動しようとすると失敗する場合があります。

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