セキュリティとネットワークの構成
フェデレーション認証サービス(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証明機関は、固定TCPポートの使用を構成できる、Kerberos認証のDCOMを使用して、接続を受け入れます。また、証明機関は、FASサーバーに信頼された登録エージェント証明書による署名済みのCMCパケットを提供するよう要求します。
サーバー | ファイアウォールポート |
---|---|
フェデレーション認証サービス | [in]StoreFrontおよびVDAからHTTP経由でKerberos、[out]DCOMからMicrosoft証明機関 |
Citrix Gateway | [in]クライアントマシンからHTTPS、[in/out]HTTPSとStoreFrontサーバー間、[out]HDXからVDA |
StoreFront | [in]NetScalerからCitrix Gateway、[out]HTTPSからDelivery Controller、[out]KerberosからHTTP経由でFAS |
Delivery Controller | [in]StoreFrontサーバーからHTTPS、[in/out]VDAからHTTP経由でKerberos |
VDA | [in/out]Delivery ControllerからHTTP経由でKerberos、[in]Citrix GatewayからHDX、[out]KerberosからHTTP経由でFAS |
Microsoft証明機関 | [in]DCOMと、FASからの署名 |
Citrixフェデレーション認証サービスとCitrix Cloudの接続
コンソールとFASは、それぞれユーザーのアカウントとネットワークサービスアカウントを使用して次のアドレスにアクセスします。
- ユーザーアカウントの下のFAS管理コンソール
*.cloud.com
*.citrixworkspacesapi.net
- サードパーティのIDプロバイダーが必要とするアドレス(環境で使用されている場合)
- ネットワークサービスアカウントの下のFASサービス:
*.citrixworkspacesapi.net
注:
Citrix Cloud Japanに接続する場合は、次のアドレスを使用します:
*.citrixcloud.jp
*.citrixworkspacesapi.jp
環境にプロキシサーバーが含まれている場合は、FAS管理コンソールのアドレスを使用してユーザープロキシを構成します。また、ネットワークサービスアカウントのアドレスがnetshまたは同様のツールを使用して構成されていることを確認します。
セキュリティに関する注意事項
FASには、FASがドメインユーザーの代わりに自律的に証明書を発行できるようにする、登録機関の証明書があります。このため、セキュリティポリシーを作成および実装してFASサーバーを保護し、権限を制限することは重要です。
委任された登録エージェント
FASは登録エージェントとして機能することによってユーザー証明書を発行します。Microsoft証明機関により、登録エージェント、証明書テンプレート、および登録エージェントが証明書を発行できるユーザーを制限できます。
このダイアログボックスを使用して、次のことを確認してください:
- [Enrollment agents] の一覧にFASサーバーのみが含まれている。
- [Certificate Templates] の一覧にFASテンプレートのみが含まれている。
- [Permissions] の一覧にFASの使用が許可されているユーザーのみが含まれている。たとえば、管理グループまたは保護されたユーザーのグループに属するユーザーにFASが証明書を発行できないようにすることをお勧めします。
アクセス制御リストの構成
「ルールの構成」セクションで説明しているように、証明書が発行された場合のFASに対するユーザーIDの承認を信頼するStoreFrontサーバーの一覧を構成する必要があります。 同様に、証明書の発行対象となるユーザー、およびユーザーが認証可能なVDAマシンを制限することができます。 この操作は、標準で構成を行うActive Directoryまたは証明機関のセキュリティ機能に追加で行います。
ファイアウォールの設定
FASサーバーへのすべての通信では、相互認証されたWindows Communication Foundation(WCF)Kerberosネットワーク接続がポート80で使用されます。
イベントログの監視
FASおよびVDAは、Windowsイベントログに情報を書き込みます。 これは、情報の監視および監査に使用できます。 「イベントログ」セクションに、生成される可能性のあるイベントログの一覧を示します。
ハードウェアセキュリティモジュール
FASによって発行されたユーザー証明書の秘密キーを含むすべての秘密キーは、Network Serviceアカウントによってエクスポート不可の秘密キーとして保存されます。FASは、セキュリティポリシーで暗号化ハードウェアセキュリティモジュールが必要とされる場合、このモジュールの使用をサポートします。
FederatedAuthenticationService.exe.configファイルでは、低レベルの暗号化構成が使用可能です。これらの設定は、秘密キーが最初に作成されたときに適用されます。 そのため、登録機関の秘密キー(4096ビット、TPM保護など)およびランタイムのユーザー証明書には異なる設定が使用されることがあります。
パラメーター | 説明 |
---|---|
ProviderLegacyCsp | trueに設定した場合、FASではMicrosoft CryptoAPI(CAPI)が使用されます。falseに設定した場合、FASではMicrosoft Cryptography Next Generation(CNG)APIが使用されます。 |
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管理者 | ユーザー認証の構成 |
Citrix Virtual Desktops管理者 | VDAおよびコントローラーの構成 |
各管理者は、セキュリティモデル全体のさまざまな面を制御し、システムのセキュリティ保護のための、徹底した防御対策のアプローチを実現します。
グループポリシー設定
信頼されたFASマシンは、グループポリシーで構成済みの「index number -> FQDN」のルックアップテーブルで識別されます。FASサーバーに接続する場合、クライアントはFASサーバーのHOST\<fqdn>
Kerberos IDを検証します。FASサーバーにアクセスするすべてのサーバーは、同じインデックスに同一のFQDNを持つ必要があります。そうでない場合は、StoreFrontおよびVDAが別のFASサーバーに接続することがあります。
構成ミスを防ぐために、環境内のすべてのマシンに、単一のポリシーを適用することをお勧めします。FASサーバーの一覧に変更を加える場合、特にエントリの削除や順序の変更は、注意して行ってください。
このGPOの管理は、FASサーバーのインストールおよび運用停止を担当するFAS管理者(またはドメイン管理者)に限定する必要があります。FASサーバーの運用停止直後に、そのFQDNを再度使用しないように注意してください。
証明書テンプレート
FASから提供されるCitrix_SmartcardLogon証明書テンプレートを使用しない場合、証明書のコピーを変更できます。以下の変更がサポートされています。
証明書テンプレートの名前の変更
Citrix_SmartcardLogonの名前を変更する場合、所属組織のテンプレート命名標準に従って、以下を行う必要があります。
- 証明書テンプレートのコピーを作成し、所属組織のテンプレート命名標準に従ってその名前を変更します。
- 管理ユーザーインターフェイスではなく、管理FASへのFAS PowerShellコマンドを使用します。(管理ユーザーインターフェイスは、Citrixのデフォルトのテンプレート名での使用のみを対象としています。)
- Microsoft MMC証明書テンプレートスナップインかPublish-FasMsTemplateコマンドを使用して、自身のテンプレートを公開し、
- New-FasCertificateDefinitionコマンドにより、自身のテンプレートの名前を使用してFASを構成します。
全般プロパティの変更
証明書テンプレートの有効期間を変更できます。
更新期間は変更しないでください。FASは証明書テンプレートのこの設定を無視します。FASは有効期間の半ばで証明書を自動的に更新します。
要求処理プロパティの変更
これらのプロパティは変更しないでください。FASは証明書テンプレートのこれらの設定を無視します。FASでは常に、[秘密キーのエクスポートを許可する]と [同一キーで更新する] はオフにされています。
暗号プロパティの変更
これらのプロパティは変更しないでください。FASは証明書テンプレートのこれらの設定を無視します。
FASで提供される該当の設定については、「秘密キー保護」を参照してください。
キーの構成証明プロパティの変更
これらのプロパティは変更しないでください。FASではキーの構成証明はサポートされません。
優先テンプレートプロパティの変更
これらのプロパティは変更しないでください。FASでは優先テンプレートはサポートされません。
拡張プロパティの変更
所属組織のポリシーに合わせてこれらの設定を変更できます。
注: 不適切な拡張設定を行うと、セキュリティの問題が発生したり、証明書が使用できなくなる場合があります。
セキュリティプロパティの変更
FASサーバーのマシンアカウントにのみ読み取り権限および登録権限が許可されるように、これらの設定を変更することをお勧めします。FASサービスには、それ以外の権限は必要ありません。ただし、他の証明書テンプレートと同様、次の項目も追加できます:
- 管理者がテンプレートに対して読み取りまたは書き込みできるようにする
- 認証ユーザーがテンプレートに対して読み取りできるようにする
サブジェクト名プロパティの変更
Citrixでは、これらのプロパティを変更しないことをお勧めします。
テンプレートで [Active Directoryの情報から構築する] が選択されているため、証明機関は証明書拡張にユーザーのSIDを含めます。これにより、ユーザーのActive Directoryアカウントへの強力なマッピングが提供されます。
サーバープロパティの変更
推奨はされませんが、必要に応じて、所属組織のポリシーに合わせてこれらの設定を変更できます。
発行要件プロパティの変更
これらの設定は変更しないでください。これらは以下のように設定する必要があります。
互換性プロパティの変更
これらの設定は変更できます。この設定は、Windows Server 2003 CA(スキーマバージョン2)以上とする必要があります。ただし、FASがサポートするのはWindows Server 2008以降のCAのみです。上記の説明のとおり、Windows Server 2008 CA(スキーマバージョン3)またはWindows Server 2012 CA(スキーマバージョン4)を選択することにより使用可能となる追加設定は、FASでは無視されます。
証明機関の管理
証明機関の管理者の任務は、証明機関サーバーの構成、および証明機関サーバーが使用する証明書用秘密キーの発行です。
テンプレートの公開
エンタープライズ管理者の提供するテンプレートに基づいた証明書を証明機関が発行するには、証明機関の管理者がテンプレートの公開を選択する必要があります。
シンプルなセキュリティ対策としては、FASサーバーのインストール時にのみ登録機関証明書テンプレートを公開するか、またはオフラインの証明書発行手続きを選択することです。いずれの場合も、証明機関の管理者は登録機関証明書の要求の承認において全面的なコントロールを維持し、FASサーバーの承認に関するポリシーを持つ必要があります。
ファイアウォールの設定
一般的に、証明機関の管理者は、証明機関のネットワークファイアウォール設定も管理して、受信接続の制御を行います。証明機関の管理者は、DCOM TCPおよびファイアウォールルールを構成し、FASサーバーだけが証明書を要求できるようにすることができます。
登録の制限
デフォルトでは、登録機関証明書のすべての保持者が、アクセス可能な証明書テンプレートを使用して、ユーザーに証明書を発行することができます。これを、証明機関プロパティの「登録エージェントの制限」で、特権のないユーザーグループに制限する必要があります。
ポリシーモジュールと監査
高度な展開には、カスタムセキュリティモジュールを使用して、証明書の発行の追跡と拒否を行うことができます。
FASの管理
FASにはいくつかのセキュリティ機能があります。
アクセス制御リスト(ACL)によるStoreFront、ユーザー、およびVDAの制限
FASセキュリティモデルの中心となるのが、機能にアクセスできるKerberosアカウントの管理です。
アクセスベクトル | 説明 |
---|---|
StoreFront[IdP] | これらのKerberosアカウントは、ユーザーが正しく認証されたと宣言することを信頼されています。Kerberosアカウントのいずれかが危害を受けた場合には、証明書が作成され、FASの構成で許可されたユーザーに証明書が使用されます。 |
VDA[証明書利用者] | これらは、証明書および秘密キーへのアクセスが許可されたマシンです。このグループ内の危害を受けたVDAアカウントによるシステム攻撃の範囲が制限されるよう、IdPが取得した資格情報ハンドルも必要です。 |
ユーザー | IdPがどのユーザーをアサートするかを管理します。証明機関の「制限付き登録エージェント」構成オプションと重複していることに注意してください。一般的に、アクセス制御リストには、特権のないアカウントのみを加えることをお勧めします。これにより、危害を受けたStoreFrontアカウントが、権限をより高い管理者レベルに高めることを防ぎます。特に、ドメイン管理者のアカウントは、このアクセス制御リストで許可されるべきではありません。 |
ルールの構成
独立した複数のCitrix Virtual AppsまたはCitrix Virtual Desktopsの展開で同じFASサーバーインフラストラクチャが使用されている場合には、ルールが役立ちます。各ルールにはそれぞれの構成オプションセットがあり、特にKerberosアクセス制御リスト(ACL)は、個別に構成することができます。
証明機関とテンプレートの設定
証明書テンプレートおよびCAは、それぞれ異なるアクセス権のために構成することができます。高度な構成は、環境に応じて、権限の度合いが異なる証明書を使用するよう選択する場合があります。たとえば、「外部」と識別されたユーザーには、「内部」ユーザーよりも権限が弱い証明書が発行されることがあります。
セッション中および認証の証明書
FAS管理者は、認証に使用された証明書を、ユーザーのセッションで使用するかどうか管理します。たとえば、より権限のある「ログオン」証明書はログオン時にのみ使用するように、セッションでは「署名」証明書のみ使用可能にすることができます。
秘密キー保護およびキー長
FAS管理者は、FASが秘密キーをハードウェアセキュリティモジュール(HSM)、またはトラステッドプラットフォームモジュール(TPM)に保存するよう構成できます。少なくとも登録機関証明書の秘密キーは、TPMに保存して保護することをお勧めします。このオプションは、「オフライン」証明書要求手続きの中で提供されます。
同様に、ユーザー証明書の秘密キーもTPMまたはHSMに保存できます。すべてのキーは「エクスポート不可能」として生成し、キー長は2048ビット以上でなければなりません。
イベントログ
FASサーバーによって、詳細な構成およびランタイムイベントのログが提供されるため、監査と侵入検出に役立てることができます。
管理アクセスと管理ツール
FASには、リモート管理の機能(相互認証のKerberos)およびツールが含まれています。「ローカルのAdministratorsグループ」のメンバーは、FASの構成に対するフルコントロール権限を付与されています。この一覧は、注意して維持する必要があります。
Citrix Virtual Apps管理者、Citrix Virtual Desktops管理者、VDA管理者
「Active Directoryパスワード」はFASの「資格情報ハンドル」にそのまま置き換えられるため、一般的には、FASの利用によってDelivery ControllerやVDA管理者のセキュリティモデルが変更されることはありません。ControllerおよびVDAの管理グループのメンバーは、信頼されたユーザーに限定する必要があります。監査とイベントログを維持する必要があります。
一般的なWindowsサーバーセキュリティ
すべてのサーバーにパッチを完全に適用し、標準のファイアウォールとアンチウィルスソフトウェアを使用する必要があります。セキュリティ上重要なインフラストラクチャのサーバーは、物理的に安全な場所に設置し、ディスクの暗号化や仮想マシンのメンテナンスオプションにも十分配慮する必要があります。
監査データとイベントログは、リモートマシンに安全に保存する必要があります。
RDPアクセスは、承認された管理者のみに制限する必要があります。可能な場合は、ユーザーアカウント、特に証明機関およびドメイン管理者のアカウントでは、スマートカードを使用したログオンが要求されるようにする必要があります。