セキュリティとネットワーク構成
Federated Authentication Service (FAS) は、Microsoft Active Directory および Microsoft 証明機関と密接に統合されています。ドメインコントローラーやその他の重要なインフラストラクチャと同様に、システムが適切に管理および保護されるように、セキュリティポリシーを策定することが不可欠です。
このドキュメントでは、FAS を展開する際に考慮すべきセキュリティ問題の概要を説明します。また、インフラストラクチャの保護に役立つ利用可能な機能の概要も提供します。
ネットワークアーキテクチャ
次の図は、FAS 展開で使用される主要なコンポーネントとセキュリティ境界を示しています。
FAS サーバーは、証明機関およびドメインコントローラーと同様に、セキュリティ上重要なインフラストラクチャの一部として扱われるべきです。フェデレーション環境では、Citrix Gateway と Citrix StoreFront はユーザー認証を実行するために信頼されるコンポーネントです。その他の Citrix Virtual Apps and Desktops™ コンポーネントは、FAS の導入による影響を受けません。
ファイアウォールとネットワークセキュリティ
Citrix Gateway、StoreFront、および Delivery Controller™ コンポーネント間の通信は、ポート 443 経由の TLS によって保護されるべきです。StoreFront サーバーは発信接続のみを実行し、Citrix Gateway はインターネット経由の HTTPS ポート 443 を使用した接続のみを受け入れるべきです。
StoreFront サーバーは、相互認証された Kerberos を使用してポート 80 経由で FAS サーバーに接続します。認証には、FAS サーバーの Kerberos HOST/fqdn ID と StoreFront サーバーの Kerberos マシンアカウント ID が使用されます。これにより、Citrix Virtual Delivery Agent (VDA) がユーザーをログオンするために必要な、1回限りの「資格情報ハンドル」が生成されます。
HDX セッションが VDA に接続されると、VDA もポート 80 経由で FAS サーバーに接続します。認証には、FAS サーバーの Kerberos HOST/fqdn ID と VDA の Kerberos マシン ID が使用されます。さらに、VDA は証明書と秘密鍵にアクセスするために「資格情報ハンドル」を提供する必要があります。
Microsoft 証明機関は、Kerberos 認証された DCOM を使用した通信を受け入れます。これは固定 TCP ポートを使用するように構成できます。証明機関はさらに、FAS サーバーが信頼された登録エージェント証明書によって署名された CMC パケットを提供することを要求します。
| サーバー | ファイアウォールポート |
|---|---|
| フェデレーテッド認証サービス | [in] StoreFront™およびVDAからのKerberos over HTTP、[out] Microsoft証明機関へのDCOM |
| シトリックス ゲートウェイ | [in] クライアントマシンからのHTTPS、[in/out] StoreFrontサーバーへの/からのHTTPS、[out] VDAへのHDX |
| StoreFront | [in] シトリックス ゲートウェイからのHTTPS、[out] デリバリー コントローラーへのHTTPS、[out] FASへのKerberos HTTP |
| デリバリー コントローラー | [in] StoreFrontサーバーからのHTTPS、[in/out] VDAからのKerberos over HTTP |
| VDA | [in/out] デリバリー コントローラーからのKerberos over HTTP、[in] シトリックス ゲートウェイからのHDX、[out] FASへのKerberos HTTP |
| Microsoft証明機関 | [in] FASからのDCOMおよび署名済み |
シトリックス フェデレーテッド認証サービスとCitrix Cloud™間の接続
コンソールとFASは、それぞれユーザーアカウントとネットワークサービスアカウントを使用して、次のアドレスにアクセスします。
-
ユーザーアカウント下のFAS管理コンソール
-
*.cloud.com -
*.citrixworkspacesapi.net -
環境で使用されている場合、サードパーティのIDプロバイダーが必要とするアドレス
-
-
ネットワークサービスアカウント下のFASサービス:
-
*.citrixworkspacesapi.net -
*.citrixnetworkapi.net
-
環境にプロキシサーバーが含まれている場合は、FAS管理コンソールのアドレスでユーザープロキシを構成します。また、netshまたは同様のツールを使用して、ネットワークサービスアカウントのアドレスが構成されていることを確認してください。
セキュリティに関する考慮事項
FASは、ドメインユーザーに代わって自律的に証明書を発行できる登録機関証明書を持っています。そのため、FASサーバーを保護し、その権限を制限するためのセキュリティポリシーを策定し、実装することが重要です。
委任された登録エージェント
FASは、登録エージェントとして機能することでユーザー証明書を発行します。Microsoft証明機関では、登録エージェント、証明書テンプレート、および登録エージェントが証明書を発行できるユーザーを制限できます。
このダイアログを使用して、以下を確認できます。
-
登録エージェントリストにはFASサーバーのみが含まれていること。
-
証明書テンプレートリストにはFASテンプレートのみが含まれていること。
-
アクセス許可リストには、FASの使用が許可されているユーザーのみが含まれていること。たとえば、FASが管理者グループまたは保護されたユーザーグループのユーザーに証明書を発行するのを防ぐことは良い習慣です。
アクセス制御リストの構成
ルールを構成するセクションで説明されているように、証明書が発行される際に、FASにユーザーIDをアサートすることを信頼するStoreFrontサーバーのリストを構成する必要があります。同様に、証明書が発行されるユーザーや、認証できるVDAマシンを制限することもできます。これは、構成する標準のActive Directoryまたは証明機関のセキュリティ機能に追加されるものです。
ファイアウォール設定
FASサーバーへのすべての通信は、ポート80を介した相互認証されたWindows Communication Foundation (WCF) Kerberosネットワーク接続を使用します。
イベントログの監視
FASとVDAはWindowsイベントログに情報を書き込みます。これは監視および監査情報として使用できます。イベントログセクションには、生成される可能性のあるイベントログエントリがリストされています。
ハードウェアセキュリティモジュール
FASによって発行されたユーザー証明書の秘密キーを含むすべての秘密キーは、ネットワークサービスアカウントによってエクスポート不可能な秘密キーとして保存されます。セキュリティポリシーで必要とされる場合、FASは暗号化ハードウェアセキュリティモジュールの使用をサポートします。
低レベルの暗号化構成は、FederatedAuthenticationService.exe.configファイルで利用できます。これらの設定は、秘密キーが最初に作成されるときに適用されます。したがって、登録機関の秘密キー(例:4096ビット、TPM保護)とランタイムユーザー証明書には異なる設定を使用できます。
| パラメーター | 説明 |
|---|---|
| ProviderLegacyCsp | trueに設定すると、FASはMicrosoft CryptoAPI (CAPI) を使用します。それ以外の場合、FASはMicrosoft Cryptography Next Generation API (CNG) を使用します。 |
| ProviderName | 使用するCAPIまたはCNGプロバイダーの名前。 |
| プロバイダータイプ | Microsoft KeyContainerPermissionAccessEntry.ProviderType プロパティ PROV_RSA_AES 24 を指します。CAPI と HSM を使用しており、HSM ベンダーが別途指定しない限り、常に 24 である必要があります。 |
| キー保護 | 秘密キーの「エクスポート可能」フラグを制御します。また、ハードウェアでサポートされている場合は、トラステッドプラットフォームモジュール (TPM) キー ストレージの使用も許可します。 |
| キー長 | RSA 秘密キーのキー長。サポートされている値は 1024、2048、4096 です (デフォルト: 2048)。 |
管理者の責任
環境の管理は、次のグループに分けられます。
| 名前 | 責任 |
|---|---|
| エンタープライズ管理者 | フォレスト内の証明書テンプレートをインストールして保護する |
| ドメイン管理者 | グループポリシー設定を構成する |
| 証明機関管理者 | 証明機関を構成する |
| FAS管理者 | FASサーバーをインストールして構成する |
| StoreFront/Citrix Gateway管理者 | ユーザー認証を構成する |
| Citrix Virtual Desktops™ の管理者 | VDAとコントローラーを構成する |
各管理者は、全体的なセキュリティモデルの異なる側面を制御し、システムを保護するための多層防御アプローチを可能にします。
グループポリシー設定
信頼されたFASマシンは、グループポリシーを通じて構成された「インデックス番号 -> FQDN」のルックアップテーブルによって識別されます。FASサーバーに接続する際、クライアントはFASサーバーの
HOST\<fqdn> Kerberos IDを検証します。FASサーバーにアクセスするすべてのサーバーは、同じインデックスに対して同一のFQDN構成を持つ必要があります。そうでない場合、StoreFrontとVDAは異なるFASサーバーに接続する可能性があります。
誤った構成を避けるため、Citrixは環境内のすべてのマシンに単一のポリシーを適用することを推奨します。FASサーバーのリストを変更する際は、特にエントリを削除したり並べ替えたりする際に注意してください。
このGPOの制御は、FASサーバーをインストールおよび廃止するFAS管理者(および/またはドメイン管理者)に限定する必要があります。FASサーバーの廃止後すぐにマシンのFQDN名を再利用しないように注意してください。
証明書テンプレート
FASに付属のCitrix_SmartcardLogon証明書テンプレートを使用しない場合は、そのコピーを変更できます。以下の変更がサポートされています。
証明書テンプレートの名前を変更する
Citrix_SmartcardLogon を組織のテンプレート命名標準に合わせて名前を変更したい場合は、次の操作を行う必要があります。
-
証明書テンプレートのコピーを作成し、組織のテンプレート命名標準に合わせて名前を変更します。
-
管理ユーザーインターフェイスではなく、FAS PowerShell コマンドを使用して FAS を管理します。(管理ユーザーインターフェイスは、Citrix のデフォルトテンプレート名でのみ使用することを目的としています。)
-
Microsoft MMC 証明書テンプレートスナップインまたは Publish-FasMsTemplate コマンドを使用してテンプレートを公開し、
-
New-FasCertificateDefinition コマンドを使用して、テンプレートの名前で FAS を構成します。
-
全般プロパティの変更
証明書テンプレートの有効期間を変更できます。
更新期間は変更しないでください。FAS は証明書テンプレートのこの設定を無視します。FAS は、有効期間の途中で証明書を自動的に更新します。
要求処理プロパティの変更
これらのプロパティは変更しないでください。FAS は証明書テンプレートのこれらの設定を無視します。FAS は常に 秘密キーのエクスポートを許可する の選択を解除し、同じキーで更新する の選択を解除します。
暗号化プロパティの変更
これらのプロパティは変更しないでください。FAS は証明書テンプレートのこれらの設定を無視します。
FAS が提供する同等の設定については、秘密キーの保護 を参照してください。
キー構成証明プロパティの変更
これらのプロパティは変更しないでください。FAS はキー構成証明をサポートしていません。
置き換えられたテンプレートのプロパティを変更する
これらのプロパティは変更しないでください。FAS はテンプレートの置き換えをサポートしていません。
拡張機能のプロパティを変更する
これらの設定は、組織のポリシーに合わせて変更できます。
注:不適切な拡張機能の設定は、セキュリティ上の問題を引き起こしたり、使用できない証明書になったりする可能性があります。
セキュリティのプロパティを変更する
Citrix では、これらの設定を変更して、FAS サーバーのコンピューターアカウントのみに 読み取り および 登録 のアクセス許可を許可することをお勧めします。FAS サービスには、その他のアクセス許可は必要ありません。ただし、他の証明書テンプレートと同様に、次のことを行うことができます。
-
管理者がテンプレートを読み取りまたは書き込みできるようにする
-
認証されたユーザーがテンプレートを読み取れるようにする
サブジェクト名のプロパティを変更する
Citrix では、これらのプロパティを変更しないことをお勧めします。
テンプレートには この Active Directory 情報から構築 が選択されており、証明機関がユーザーの SID を証明書拡張機能に含めるようになっています。これにより、ユーザーの Active Directory アカウントへの強力なマッピングが提供されます。
サーバーのプロパティを変更する
Citrix は推奨しませんが、必要に応じて、これらの設定を組織のポリシーに合わせて変更できます。
発行要件プロパティの変更
これらの設定は変更しないでください。設定は次のように表示されるはずです。
互換性プロパティの変更
これらの設定は変更できます。設定は少なくともWindows Server 2003 CA (スキーマバージョン2) である必要があります。ただし、FASはWindows Server 2008以降のCAのみをサポートします。また、上記で説明したように、FASはWindows Server 2008 CA (スキーマバージョン3) またはWindows Server 2012 CA (スキーマバージョン4) を選択することで利用可能になる追加設定を無視します。
証明機関の管理
証明機関管理者は、証明機関サーバーの構成と、それが使用する発行証明書秘密キーに責任を負います。
テンプレートの公開
証明機関がエンタープライズ管理者によって提供されたテンプレートに基づいて証明書を発行するには、証明機関管理者がそのテンプレートを公開することを選択する必要があります。
簡単なセキュリティ対策としては、FASサーバーのインストール時に登録機関証明書テンプレートのみを公開するか、完全にオフラインの発行プロセスを徹底することです。いずれの場合も、証明機関管理者は登録機関証明書要求の承認を完全に制御し、FASサーバーを承認するためのポリシーを持つべきです。
ファイアウォール設定
一般的に、証明機関管理者は証明機関のネットワークファイアウォール設定も制御し、受信接続を制御できます。証明機関管理者は、FASサーバーのみが証明書を要求できるように、DCOM TCPおよびファイアウォールルールを構成できます。
登録の制限
デフォルトでは、登録機関証明書の所有者は、アクセスを許可する任意の証明書テンプレートを使用して、任意のユーザーに証明書を発行できます。これは、「登録エージェントの制限」証明機関プロパティを使用して、非特権ユーザーのグループに制限する必要があります。
ポリシーモジュールと監査
高度な展開では、カスタムセキュリティモジュールを使用して、証明書の発行を追跡および拒否できます。
FAS管理
FASにはいくつかのセキュリティ機能があります。
ACLを介してStoreFront、ユーザー、VDAを制限する
FASセキュリティモデルの中心は、どのKerberosアカウントが機能にアクセスできるかを制御することです。
| アクセスベクター | 説明 |
|---|---|
| StoreFront [IdP] | これらのKerberosアカウントは、ユーザーが正しく認証されたことを宣言するために信頼されています。これらのアカウントのいずれかが侵害された場合、FASの構成によって許可されたユーザーに対して証明書が作成され、使用される可能性があります。 |
| VDA [Relying party] | これらは、証明書と秘密キーへのアクセスが許可されているマシンです。IdPによって取得された資格情報ハンドルも必要であるため、このグループ内の侵害されたVDAアカウントがシステムを攻撃する範囲は限られています。 |
| ユーザー | これは、IdPによってアサートできるユーザーを制御します。証明機関の「制限付き登録エージェント」構成オプションと重複があることに注意してください。一般に、このリストには非特権アカウントのみを含めることをお勧めします。これにより、侵害されたStoreFrontアカウントがより高い管理レベルに特権を昇格させることを防ぎます。特に、ドメイン管理者アカウントは、このACLによって許可されるべきではありません。 |
ルールを構成する
複数の独立したCitrix Virtual Apps™またはCitrix Virtual Desktops展開が同じFASサーバーインフラストラクチャを使用する場合、ルールは役立ちます。各ルールには個別の構成オプションセットがあり、特にKerberosアクセス制御リスト(ACL)は個別に構成できます。
証明機関とテンプレートの構成
アクセス権に応じて、異なる証明書テンプレートとCAを構成できます。高度な構成では、環境に応じて、より強力な証明書またはより強力でない証明書を使用することを選択できます。たとえば、「外部」として識別されたユーザーは、「内部」ユーザーよりも少ない権限の証明書を持つ場合があります。
セッション内および認証証明書
FAS管理者は、認証に使用される証明書がユーザーセッション内で使用可能であるかどうかを制御できます。たとえば、これにより、「署名」証明書のみをセッション内で利用可能にし、より強力な「ログオン」証明書はログオン時にのみ使用するようにできます。
秘密鍵の保護と鍵長
FAS管理者は、秘密鍵をハードウェアセキュリティモジュール(HSM)またはトラステッドプラットフォームモジュール(TPM)に保存するようにFASを構成できます。Citrixは、少なくとも登録機関の証明書秘密鍵をTPMに保存して保護することを推奨しています。このオプションは、「オフライン」証明書要求プロセスの一部として提供されます。
同様に、ユーザー証明書の秘密鍵はTPMまたはHSMに保存できます。すべての鍵は「エクスポート不可」として生成され、長さは2048ビット以上である必要があります。
イベントログ
FASサーバーは、監査および侵入検知に使用できる詳細な構成およびランタイムのイベントログを提供します。
管理アクセスと管理ツール
FASには、リモート管理機能(相互認証Kerberos)とツールが含まれています。「ローカル管理者グループ」のメンバーは、FAS構成を完全に制御できます。このリストは慎重に管理する必要があります。
シトリックス バーチャル アプリ、シトリックス バーチャル デスクトップ、およびVDA管理者
一般に、FASの「資格情報ハンドル」は「Active Directoryパスワード」を置き換えるだけであるため、FASの使用はDelivery ControllerおよびVDA管理者のセキュリティモデルを変更しません。ControllerおよびVDA管理グループには、信頼できるユーザーのみを含める必要があります。監査およびイベントログは維持する必要があります。
一般的なWindowsサーバーのセキュリティ
すべてのサーバーは完全にパッチが適用され、標準のファイアウォールとウイルス対策ソフトウェアが利用可能である必要があります。セキュリティ上重要なインフラストラクチャサーバーは、物理的に安全な場所に保管し、ディスク暗号化と仮想マシンのメンテナンスオプションに注意を払う必要があります。
監査ログとイベントログは、リモートマシンに安全に保存する必要があります。
RDPアクセスは、承認された管理者に限定する必要があります。可能な場合は、特に証明機関およびドメイン管理者アカウントの場合、ユーザーアカウントにスマートカードログオンを要求する必要があります。
関連情報
-
(/ja-jp/federated-authentication-service/2212/install-configure.html) は、FASのインストールと構成に関する主要なリファレンスです。
-
FASアーキテクチャは、(/ja-jp/federated-authentication-service/2212/deployment-architectures.html) の記事で紹介されています。
-
その他の「ハウツー」記事は、(/ja-jp/federated-authentication-service/2212/config-manage.html) の記事で紹介されています。