フェデレーション認証サービス

概要

Citrixフェデレーション認証サービス(Federated Authentication Service:FAS)は、Active Directory証明書サービスと統合するように設計されている、権限が付与されたコンポーネントです。Citrix Federated Authentication Serviceではユーザー向けの証明書が動的に発行され、ユーザーはスマートカードを持っている場合と同じようにActive Directory環境にログオンできます。この機能により、セキュリティアサーションマークアップランゲージ(Security Assertion Markup Language:SAML)アサーションなどの広範な認証オプションをStoreFrontで使用できます。SAMLは、インターネット上で従来のWindowsユーザーアカウントに代わるものとして一般的に使用されています。

以下の図に、Microsoft証明機関と統合されたフェデレーション認証サービスによる、StoreFrontとXenAppおよびXenDesktop VDAへのサポートサービスの提供について示します。

ローカライズされた画像

ユーザーがCitrix環境へのアクセスを要求すると、信頼済みのStoreFrontサーバーがFASにアクセスします。FASは、単一のXenAppまたはXenDesktopセッションがそのセッションの証明書で認証できるようにするチケットを付与します。VDAでユーザーを認証する必要がある場合、VDAはFASにアクセスしてチケットを使用します。FASのみがユーザー証明書の秘密キーにアクセスできます。VDAは、証明書を使用して実行する必要のあるすべての署名処理および暗号化解除処理を、FASに送信する必要があります。

要件

Federated Authentication ServiceはWindowsサーバー((Windows Server 2008 R2以降)でサポートされます。

  • FASは、ほかのCitrixコンポーネントを含まないサーバーにインストールすることをお勧めします。
  • Windows Serverはセキュリティ保護されている必要があります。Windowsサーバーには登録機関の証明書および秘密キーへのアクセス権限があり、ドメインユーザーに対して自動的に証明書を発行できます。また、これらのユーザー証明書および秘密キーへのアクセス権限もあります。

XenAppまたはXenDesktopのサイトでの要件は次のとおりです。

  • Delivery Controllerのバージョンは7.9以上である必要があります。
  • StoreFrontサーバーのバージョンは3.6(XenAppおよびXenDesktop 7.9 ISOで提供されるバージョン)以上である必要があります。
  • Linux VDAのバージョンは7.18以上である必要があります。マシンカタログを通常どおりに作成する前に、フェデレーション認証サービスのグループポリシー構成が適切にVDAに適用されていることを確認してください。詳しくは、この記事の「グループポリシーの構成」セクションを参照してください。

参照先ドキュメント:

証明書ログオン用のWindowsの構成

証明書ログオン用にWindowsを構成する方法については、Knowledge CenterのCTX206156の記事を開き、Smart_card_config_Citrix_Env.pdfファイル(以下「PDFファイル」という)をダウンロードして参照してください。PDFファイルに従って、各手順で示されている相違点や補足を確認しながら、以下の手順を実行します。操作しているターゲットマシン(AD、Delivery Controller、StoreFrontなど)には特に注意してください。

Windowsドメインのセットアップ(ADで)

ドメインコントローラーの役割のインストール

PDFファイルの「ドメインコントローラーの役割のインストール」セクションを参照してください。

Active Directory証明書サービスのインストール中に、以下のオプションが選択されていることを確認します。

ローカライズされた画像

ローカライズされた画像

ローカライズされた画像

http://localhost/certsrv/を開いて、次のようなWelcomeページが表示されているかどうかを確認します。表示されている場合は、Active Directory証明書サービスは正常にインストールされています。

ローカライズされた画像

スマートカードを使用するための認証機関の準備

補足なし。PDFファイルの「スマートカードを使用するための認証機関の準備」セクションを参照してください。

ドメインコントローラー証明書の発行

補足なし。PDFファイルの「ドメインコントローラー証明書の発行」セクションを参照してください。

HTTPS用のMicrosoft IISの構成(StoreFrontで)

Microsoft IISでのHTTPSの構成

補足なし。PDFファイルの「Microsoft IISでのHTTPSの構成」セクションを参照してください。

ドメインに参加していないコンピューター

PDFファイルの「ドメインに参加していないコンピューター」セクションを参照してください。

Microsoft CAからのCA証明書の取得(ADで)

補足なし。PDFファイルの「Microsoft CAからのCA証明書の取得」セクションを参照してください。

信頼できるCA証明書のWindowsへのインストール

補足なし。PDFファイルの「信頼できるCA証明書のWindowsへのインストール」セクションを参照してください。

Citrix StoreFrontの構成(StoreFrontで)

ストアの作成

PDFファイルの「ストアの作成」セクションを参照してください。

前述のIIS構成の後、共通ストアのベースURLはhttp://ではなく強制的にhttps://に設定されます。FASはスマートカードとストアを共有しないため、FASには新しいストアが必要です。Linux VDA FASは、StoreFrontのすべての認証方法と互換性があります。たとえば、FASストアはパスワードやSAMLを使用するように構成できますが、その両方を同時に使用することはできません。SAMLを選択すると、StoreFrontのURLは自動的にIdPにリダイレクトされ、パスワード認証方法は無視されます。

ローカライズされた画像

ローカライズされた画像

ローカライズされた画像

Internet Explorerを起動し、FASストアのURLを開きます(たとえば、https://mzgwy-ddc.xd.local/Citrix/FASWeb)。

:FASストアのURLにWebが付加されている必要があります。

FASのインストールとセットアップ

インストールとセットアップのプロセスは、次の手順で構成されています。

  1. Federated Authentication Serviceのインストール
  2. StoreFrontサーバーでのFederated Authentication Serviceプラグインの有効化
  3. グループポリシーの構成
  4. Federated Authentication Serviceの管理コンソールを使用した作業: (a)提供されたテンプレートの展開、(b)証明機関のセットアップ、および(c)Federated Authentication Serviceへの証明機関の使用権限の付与
  5. ユーザールールの構成

各手順については、「フェデレーション認証サービス」を参照してください。各手順で、次の相違点または補足を確認してください。操作しているターゲットマシン(AD、Delivery Controller、StoreFront、FASサーバーなど)には特に注意してください。

フェデレーション認証サービスのインストール(FASサーバーで)

セキュリティ上の理由により、FASは、ドメインコントローラーや証明機関と同様にセキュリティ保護されている専用サーバーにインストールすることをお勧めします。

StoreFrontストアでのフェデレーション認証サービスプラグインの有効化(StoreFrontで)

以下のコマンドでは、StoreFrontを構成するときに入力したのと同じFASストア名を使用してください。たとえば、この例ではFASがストア名です。

$StoreVirtualPath = “/Citrix/FAS

Delivery Controllerの構成(Delivery Controllerで)

フェデレーション認証サービスを使用するには、それに接続可能なStoreFrontサーバーを信頼するようにXenAppまたはXenDesktop Delivery Controllerを構成します。PowerShellコマンドレット Set-BrokerSite -TrustRequestsSentToTheXmlServicePort $true を実行します。最初に asnp citrix* を実行する必要がある場合があります。

グループポリシーの構成(FASサーバーとADで)

このセクションの手順1~7は、管理者のみが実行できます。手順1はFASサーバー上で実行する必要があり、手順2~7はAD上で実行する必要があります。

手順1~7を完了したら、FASサーバーのレジストリエディターで、FASポリシーが設定されていることを確認します。

ローカライズされた画像

セッション中の証明書サポートの有効化

Linux VDAは、セッション内証明書をサポートしていません。

フェデレーション認証サービス管理コンソールの使用(FASサーバーで)

補足なし。「フェデレーション認証サービス」の記事を参照してください。

証明書テンプレートの展開(FASサーバーで)

補足なし。「フェデレーション認証サービス」の記事を参照してください。

Active Directory証明書サービスのセットアップ(FASサーバーで)

補足なし。「フェデレーション認証サービス」の記事を参照してください。

フェデレーション認証サービスへの権限付与(FASサーバーで)

補足なし。「フェデレーション認証サービス」の記事を参照してください。

ユーザールールの構成(FASサーバーで)

補足なし。「フェデレーション認証サービス」の記事を参照してください。

詳しくは、「フェデレーション認証サービス」の記事の「セキュリティに関する考慮事項」セクションに記載されている「委任された登録エージェント」と「アクセス制御リストの構成」も参照してください。

Federated Authentication ServiceのADFSの展開

フェデレーション認証サービス用にADFS IdPを展開する方法については、「フェデレーション認証サービスのADFSの展開」を参照してください。

Linux VDAの構成

FASサーバーの設定

Linux VDAを新規にインストールする場合、FASを使用するには、ctxinstall.shまたはctxsetup.shの実行中にCTX_XDL_FAS_LISTを求められた際に、各FASサーバーの完全修飾ドメイン名を入力します。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 ctxvda restart

ctxregを使用してFASサーバーを更新するには、次のコマンドを実行します:

sudo /opt/Citrix/VDA/bin/ctxreg update -k "HKLM\Software\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService" -v "Addresses" -d "<Your-FAS-Server-List>"

service ctxvda restart

ルートCA証明書のインストール

ユーザーの証明書を検証するには、ルートCA証明書をVDAにインストールします。前述の「Microsoft CAからのCA証明書の取得(ADで)」の手順でADルート証明書を取得することや、ルートCAサーバー(http://CA-SERVER/certsrv)から証明書のDER形式をダウンロードすることができます。

次のようなコマンドを実行して、DERファイル(.crt、.cer、.der)をPEMに変換します。

sudo openssl x509 -inform der -in root.cer -out root.pem

続いて、次のようなコマンドを実行して、ルートCA証明書をopensslディレクトリにインストールします:

sudo cp root.pem /etc/pki/CA/certs/

注:

ルートCA証明書を /root パス下に置かないでください。置いてしまうと、FASはルートCA証明書の読み取り権限を持ちません。

FASの構成

次のスクリプトを実行してFASパラメータを設定します:

sudo /opt/Citrix/VDA/sbin/ctxfascfg.sh

正しいActive Directory統合方法を選択し、ルートCA証明書の正しいパスを入力します(例:/etc/pki/CA/certs/root.pem)。

次に、このスクリプトはkrb5-pkinitパッケージとpam_krb5パッケージをインストールし、関連する構成ファイルを設定します。

制限事項

  • 7.18リリースでは、FASでサポートされているプラットフォームとAD統合方法は限られています。次のマトリックスを参照してください:

      Winbind SSSD Centriy
    RHEL 7.4
    RHEL 6.9 × × ×
    RHEL 6.8 × × ×
    Ubuntu 16.04(4.13カーネル) ×
    SLES 12.3 ×
  • 現在、FASはロック画面をサポートしていません。セッションでロックボタンをクリックすると、FASを使用してセッションに再度ログオンすることはできません。
  • このリリースでは、「フェデレーション認証サービスのアーキテクチャの概要」の記事で説明している一般的なFAS環境のみがサポートされており、Windows 10 Azure ADへの参加は除外されます。

トラブルシューティング

パスワード認証を使用してFAS以外のセッションを共通ストアで正常に起動できるよう、FASのトラブルシューティングを行う前に、Linux VDAが正しくインストールされ、構成されていることを確認してください。

FAS以外のセッションに何も問題がない場合は、LoginクラスのHDXログレベルをVERBOSEに設定し、VDAログレベルをTRACEに設定します。Linux VDAのトレースログを有効にする方法については、Knowledge CenterのCTX220130の記事を参照してください。

FASサーバー構成エラー

FASストアからのセッションの開始に失敗し、次のようなウィンドウが表示されます:

ローカライズされた画像

/var/log/xdl/hdx.logを確認し、次のようなエラーログを探します:

2018-03-27 10:17:56.722 <P10122:S2> citrix-ctxlogin: query2fas: failed to retrieve data: No such file or directory.

2018-03-27 10:17:56.722 <P10122:S2> citrix-ctxlogin: sayhello2fas_internal: Failed to query.

2018-03-27 10:17:56.722 <P10122:S2> citrix-ctxlogin: sayhello2fas_convertcredential: exit.

2018-03-27 10:17:56.722 <P10122:S2> citrix-ctxlogin: LoginFasValidate: Failed to start FAS.

2018-03-27 10:17:56.722 <P10122:S2> citrix-ctxlogin: receive_data: LoginFASValidate - parameters check error.

2018-03-27 10:17:56.722 <P10122:S2> citrix-ctxlogin: receive_data: Exit FAILURE

2018-03-27 10:17:56.722 <P10122:S2> citrix-ctxlogin: main: EXITING login process..., FAILURE

解決策

次のコマンドを実行して、Citrixレジストリ値「HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\VirtualDesktopAgent\Authentication\UserCredentialService」が<Your-FAS-Server-List>に設定されていることを確認します 。

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep "UserCredentialService"

既存の設定が間違っている場合は、前述の「FASサーバーの設定」の手順に従って再設定します。

間違っているルートCA証明書の構成

FASストアからセッションを起動すると失敗します。灰色のウィンドウが表示され、数秒後に消えます。

ローカライズされた画像

/var/log/xdl/hdx.logを確認し、次のようなエラーログを探します:

2018-03-27 10:15:52.227 <P9099:S3> citrix-ctxlogin: validate_user: pam_authenticate err,can retry for user user1@CTXFAS.LAB

2018-03-27 10:15:52.228 <P9099:S3> citrix-ctxlogin: logout_user: closing session and pam transaction

2018-03-27 10:15:52.228 <P9099:S3> citrix-ctxlogin: validate_user: Exit (user=user1@CTXFAS.LAB)=INVALID_PASSWORD

2018-03-27 10:15:52.228 <P9099:S3> citrix-ctxlogin: LoginBoxValidate: failed validation of user 'user1@CTXFAS.LAB', INVALID_PASSWORD

2018-03-27 10:15:52.228 <P9099:S3> citrix-ctxlogin: Audit_login_failure: Not yet implemented

解決策

/etc/krb5.confにルートCA証明書のフルパスが正しく設定されていることを確認します。フルパスは次のようになります:


 [realms]

EXAMPLE.COM = {

    ......

    pkinit_anchors = FILE:/etc/pki/CA/certs/root.pem

    ......

}  

既存の設定が間違っている場合は、前述の「ルートCA証明書のインストール」の手順に従って再設定します。

または、ルートCA証明書が有効かどうかを確認します。

シャドウアカウントマッピングエラー

FASはSAML認証により構成されます。ADFSユーザーがADFSログオンページでユーザー名とパスワードを入力すると、次のエラーが表示されることがあります。

ローカライズされた画像

このエラーは、ADFSユーザーが正常に確認されたが、ADにシャドウユーザーが構成されていないことを示しています。

解決策

ADにシャドウアカウントを設定します。

ADFSが構成されていない

FASストアへのログオン中に次のエラーが表示されます:

ローカライズされた画像

ADFSが展開されていない状態で、FASストアがSAML認証を使用するように構成されていることが原因です。

解決策

フェデレーション認証サービス用のADFS IdPの展開詳しくは、「フェデレーション認証サービスのADFSの展開」を参照してください。

関連情報

既知の問題

FASが使用されている場合、英語以外の文字を使用して公開デスクトップまたはアプリセッションを開始しようとすると、失敗することがあります。

ローカライズされた画像

回避方法

CAツールの [テンプレートの管理] を右クリックし、以下のとおり [Citrix_SmartcardLogon] テンプレート上で [Active Directory の情報から構築する][要求に含まれる] に変更します:

ローカライズされた画像