セキュリティとネットワーク構成
Federated Authentication Service (FAS) は、Microsoft Active Directory および Microsoft 証明機関と密接に統合されています。ドメインコントローラーやその他の重要なインフラストラクチャと同様に、システムが適切に管理および保護されるように、セキュリティポリシーを策定してください。
このドキュメントでは、FAS を展開する際に考慮すべきセキュリティ問題の概要を説明します。また、インフラストラクチャのセキュリティ保護に役立つ可能性のある利用可能な機能の概要も提供します。
ネットワークアーキテクチャ
次の図は、FAS 展開で使用される主要なコンポーネントとセキュリティ境界を示しています。
FAS サーバーは、証明機関およびドメインコントローラーとともに、セキュリティ上重要なインフラストラクチャの一部です。フェデレーション環境では、Citrix Gateway と Citrix StoreFront がユーザー認証を実行するコンポーネントです。その他の Citrix Virtual Apps and Desktops™ コンポーネントは、FAS の導入による影響を受けません。
ファイアウォールとネットワークセキュリティ
ポート 443 を介した TLS は、Citrix Gateway、StoreFront、および Delivery Controller™ コンポーネント間の通信を保護します。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 ポートを使用するように構成できます。証明機関は、信頼された登録エージェント証明書によって署名された CMC パケットを FAS サーバーが提供することを要求します。
| サーバー | ファイアウォールポート |
|---|---|
| フェデレーション認証サービス | [in] StoreFront™およびVDAからのHTTP経由Kerberos、[out] Microsoft証明機関へのDCOM |
| シトリックス ゲートウェイ | [in] クライアントマシンからのHTTPS、[in/out] StoreFrontサーバーとのHTTPS、[out] VDAへのHDX |
| StoreFront | シトリックス ゲートウェイからの[in] HTTPS、デリバリー コントローラーへの[out] HTTPS、FASへの[out] Kerberos HTTP |
| デリバリー コントローラー | [in] StoreFrontサーバーからのHTTPS、[in/out] VDAからのHTTP経由Kerberos |
| VDA | デリバリー コントローラーからの[in/out] HTTP経由Kerberos、シトリックス ゲートウェイからの[in] HDX、FASへの[out] Kerberos HTTP |
| Microsoft証明機関 | [in] FASからのDCOMおよび署名済み |
Citrixフェデレーション認証サービスとシトリックス クラウド™間の接続
コンソールとFASは、それぞれユーザーアカウントとネットワークサービスアカウントを使用して、次のアドレスにアクセスします。
-
ユーザーアカウント下のFAS管理コンソール
-
*.cloud.com -
*.citrixworkspacesapi.net -
環境でサードパーティのIDプロバイダーを使用している場合に必要となるアドレス
-
-
ネットワークサービスアカウント下のFASサービス:
-
*.citrixworkspacesapi.net -
*.citrixnetworkapi.net
-
環境にプロキシサーバーが含まれている場合は、FAS管理コンソールのアドレスでユーザープロキシを構成します。また、netshまたは同様のツールを使用して、ネットワークサービスアカウントのアドレスが構成されていることを確認してください。
セキュリティに関する考慮事項
FASには、ドメインユーザーに自律的に証明書を発行できる登録機関証明書があります。これは、FASサーバーを保護し、その権限を制限するためのセキュリティポリシーの開発と実装に役立ちます。
委任された登録エージェント
FASは、登録エージェントとして機能することでユーザー証明書を発行します。Microsoft証明機関では、登録エージェント、証明書テンプレート、および登録エージェントが証明書を発行できるユーザーを制限できます。
指定されたダイアログを使用して、以下を確認できます。
-
登録エージェントリストにはFASサーバーのみが含まれていること。
-
証明書テンプレートリストにはFASテンプレートのみが含まれていること。
-
権限リストにはFASの使用が許可されているユーザーが含まれていること。たとえば、管理者または保護されたユーザーグループに証明書を発行しないことをお勧めします。
アクセス制御リストの構成
「ルールを構成」セクションで説明されているように、StoreFrontサーバーのリストを構成する必要があります。これらのStoreFrontサーバーは、証明書が発行されるときにFASにユーザーIDをアサートします。同様に、どのユーザーに証明書が発行されるか、およびどの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プロバイダーの名前。 |
| ProviderType | Microsoft KeyContainerPermissionAccessEntry.ProviderType Property PROV_RSA_AES 24 を指します。CAPIでHSMを使用し、HSMベンダーが別途指定しない限り、常に24である必要があります。 |
| KeyProtection | 秘密キーの「エクスポート可能」フラグを制御します。また、ハードウェアでサポートされている場合、トラステッドプラットフォームモジュール (TPM) キー ストレージの使用も許可します。 |
| KeyLength | RSA秘密キーのキー長。サポートされている値は1024、2048、4096です (既定値: 2048)。 |
管理者の責任
環境の管理は、次のグループに分けられます。
| 名前 | 責任 |
|---|---|
| エンタープライズ管理者 | フォレスト内の証明書テンプレートをインストールして保護する |
| ドメイン管理者 | グループポリシー設定を構成する |
| 証明機関管理者 | 証明機関を構成する |
| FAS管理者 | FASサーバーをインストールして構成する |
| StoreFront/Citrix Gateway管理者 | ユーザー認証を構成する |
| シトリックス バーチャル デスクトップス™ 管理者 | VDAとControllerを構成する |
各管理者は、全体的なセキュリティモデルの異なる側面を制御し、システムを保護するための多層防御アプローチを可能にします。
グループポリシー設定
信頼された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を構成します。
-
全般プロパティの変更
デフォルトでは、ユーザー証明書の有効期間は7日間です。証明書テンプレートで有効期間を変更できます。
更新期間は変更しないでください。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に保存して保護することを推奨しています。FASは、「オフライン」証明書要求プロセスの一部として、秘密鍵をTPMに保存するオプションを提供します。
同様に、ユーザー証明書の秘密鍵はTPMまたはHSMに保存できます。すべての鍵は「エクスポート不可」として生成され、長さは2048ビット以上である必要があります。
イベントログ
FASサーバーは、監査および侵入検知に使用できる詳細な構成およびランタイムのイベントログを提供します。
管理アクセスと管理ツール
FASには、リモート管理機能(相互認証Kerberos)とツールが含まれています。「ローカル管理者グループ」のメンバーは、FAS構成を完全に制御できます。FAS構成は適切に維持する必要があります。
シトリックス バーチャル アプリ、シトリックス バーチャル デスクトップ、およびVDA管理者
FASの「資格情報ハンドル」は単に「Active Directoryパスワード」を置き換えるだけであるため、FASの使用はDelivery ControllerおよびVDA管理者のセキュリティモデルを変更しません。ControllerおよびVDA管理グループには、信頼できるユーザーのみを含める必要があります。監査およびイベントログは維持する必要があります。
一般的なWindowsサーバーのセキュリティ
すべてのサーバーは完全にパッチが適用され、標準のファイアウォールとウイルス対策ソフトウェアが利用可能である必要があります。セキュリティ上重要なインフラストラクチャサーバーは、物理的に安全な場所に保管し、ディスク暗号化と仮想マシンのメンテナンスオプションに注意を払う必要があります。
監査ログとイベントログは、リモートマシンに安全に保存する必要があります。
RDPアクセスは、承認された管理者のみに制限する必要があります。Citrixは、ユーザーアカウント、特に証明機関およびドメイン管理者アカウントに対して、スマートカードログオンを推奨しています。
関連情報
-
(/ja-jp/federated-authentication-service/2311/install-configure.html)は、FASのインストールと構成に関する主要なリファレンスです。
-
FASアーキテクチャは、(/ja-jp/federated-authentication-service/2311/deployment-architectures.html)の記事で紹介されています。
-
その他の「ハウツー」記事は、(/ja-jp/federated-authentication-service/2311/config-manage.html)の記事で紹介されています。