フェデレーション認証サービス
Linux VDAにログオンするユーザーを認証するために、フェデレーション認証サービス(FAS)を使用できます。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のインストールに関する記事を参照してください。
Linux VDAでのFASの構成
RHEL 8およびRocky Linux 8でのFASサポート
FASはpam_krb5モジュールに依存していますが、これはRHEL 8およびRocky Linux 8では非推奨です。RHEL 8およびRocky Linux 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およびRocky Linux 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--> -
/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を入力します。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をサイレントモードで実行できるように、環境変数が追加されています。
-
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と同じ値になります。
正しいActive Directory統合方法を選択し、証明書の正しいパス(例: /etc/pki/CA/certs/)を入力します。
次に、スクリプトはkrb5-pkinitおよびpam_krb5パッケージをインストールし、関連する構成ファイルを設定します。
制限事項
-
FASは、限られたLinuxプラットフォームとAD統合方法をサポートしています。次のマトリックスを参照してください。
Winbind SSSD Centrify PBIS Amazon Linux 2 はい はい はい はい Debian 11.3、Debian 10.9 はい はい はい はい RHEL 8.6、RHEL 8.4 はい はい はい はい RHEL 7.9 / CentOS 7.9 はい はい はい はい Rocky Linux 8 はい はい いいえ いいえ SLES 15.3 はい はい はい いいえ Ubuntu 22.04、Ubuntu 20.04、Ubuntu 18.04 はい はい はい はい - 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-->
解決策
/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展開は、フェデレーション認証サービスのアーキテクチャ概要記事にまとめられています。
- 「ハウツー」記事は、フェデレーション認証サービスの高度な構成章で紹介されています。
既知の問題
FASが使用されている場合、非英語文字を含む公開デスクトップまたはアプリセッションの起動に失敗する可能性があります。

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