フェデレーション認証サービス
フェデレーション認証サービス (FAS) を使用して、Linux VDA にログオンするユーザーを認証できます。Linux VDA は、FAS ログオン機能に Windows VDA と同じ Windows 環境を使用します。FAS 用の Windows 環境の構成については、「フェデレーション認証サービス」を参照してください。この記事では、Linux VDA に固有の追加情報を提供します。
注:
Linux VDA は、セッション内動作ポリシーをサポートしていません。
Linux VDA は、FAS サーバーとのデータ転送に短い接続を使用します。
サポートされるディストリビューション
FAS は、限られた Linux ディストリビューションとドメイン参加方法をサポートしています。次のマトリックスを参照してください。
| Winbind | SSSD | Centrify | PBIS | Quest | |
|---|---|---|---|---|---|
| Debian 12.12/11.11 | Yes | Yes | Yes | Yes | Yes |
| RHEL 9.6/9.4 | Yes | Yes | Yes | No | Yes |
| RHEL 8.10 | Yes | Yes | Yes | Yes | Yes |
| Rocky Linux 9.6/9.4 | Yes | Yes | Yes | No | Yes |
| Rocky Linux 8.10 | Yes | Yes | Yes | No | Yes |
| SUSE 15.6 | Yes | Yes | Yes | No | Yes |
| Ubuntu 24.04 | Yes | Yes | Yes | No | Yes |
| Ubuntu 22.04 | Yes | Yes | Yes | Yes | Yes |
注:
ドメイン参加方法がQuestの場合、krb5.confが存在しないことがあります。その場合は、まず「krb5-pkinit」と「libpam-krb5」を手動でインストールし(これによりKerberos情報の入力を求められ、krb5.confに書き込まれます)、その後FASスクリプト「/opt/Citrix/VDA/sbin/ctxfascfg.sh」を実行してください。
RHEL 9およびRocky 9の場合、お客様は「AD-SUPPORT」暗号化ポリシーを有効にする必要があります(Kerberos認証中にADで使用される場合、SHA1も必要になることがあります)。コマンドは次のとおりです。
update-crypto-policies --set DEFAULT:AD-SUPPORT
update-crypto-policies --set DEFAULT:AD-SUPPORT:SHA1Debian 11の場合、ユーザーはダイジェストメソッドを「SHA256」に手動で構成する必要がある場合があります。コマンドは次のとおりです。 /opt/Citrix/VDA/bin/ctxreg create -k “HKLM\Software\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService” -t “REG_SZ” -v “DigestMethod” -d “SHA256” –force
Linux VDA での FAS の構成
証明書のインストール
ユーザーの証明書を検証するには、ルート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 の実行
FAS を構成するには、ctxfascfg.sh スクリプトを実行します。
sudo /opt/Citrix/VDA/sbin/ctxfascfg.sh
<!--NeedCopy-->
ctxfascfg.sh をサイレントモードで実行できます。スクリプトをサイレントモードで実行する前に、次の環境変数を設定します。
-
CTX_FAS_ADINTEGRATIONWAY=winbind | sssd | centrify | pbis | quest: Active Directory 統合方法を示します。
CTX_EASYINSTALL_ADINTEGRATIONWAYが指定されている場合、これと同じ値になります。CTX_EASYINSTALL_ADINTEGRATIONWAYが指定されていない場合、CTX_FAS_ADINTEGRATIONWAYは独自の値を設定します。 -
CTX_FAS_CERT_PATH =<certificate path>: ルート証明書とすべての中間証明書が格納されている完全なパスを指定します。
-
CTX_FAS_KDC_HOSTNAME: PBIS および Quest を選択した場合の 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 パッケージをインストールし、関連する構成ファイルを設定します。RHEL 8 以降では、PAM_KRB5 が EPEL リポジトリに移動されたため、スクリプトはこれらのディストリビューションで EPEL を有効にしようとします。
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 SSO 失敗時のセカンダリ認証の有効化
Linux VDA は、FAS シングルサインオン (SSO) が失敗した場合に特化したセカンダリ認証方法を提供することで、ログインの回復力を強化します。この機能により、FAS SSO で問題が発生した場合、ユーザーはパスワード認証のために手動で資格情報を入力するよう求められます。この機能を有効にするには、次のコマンドを実行します。
create -k "HKLM\System\CurrentControlSet\Control\Citrix\AccessControl\Login\Global" -t "REG_DWORD" -v "SecondaryAuthEnabled" -d "0x00000001" --force
<!--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-->
解決策
/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ツールでManage Templatesを右クリックし、Citrix_SmartcardLogonテンプレートをBuild from this Active Directory informationからSupply in the requestに変更します。
