秘密鍵の保護

最終公開日 : Oct 24, 2026

はじめに

証明書はFASサーバー上の組み込みデータベースに保存されます。関連する秘密鍵は、FASサーバーのネットワークサービスアカウントによって保存され、デフォルトでエクスポート不可としてマークされます。
秘密鍵には2種類あります。
  • Citrix_RegistrationAuthority証明書テンプレートからの、登録機関証明書に関連付けられた秘密鍵。
  • Citrix_SmartcardLogon証明書テンプレートからの、ユーザー証明書に関連付けられた秘密鍵。
登録機関証明書は実際には2種類あります。Citrix_RegistrationAuthority_ManualAuthorization(デフォルトで24時間有効)とCitrix_RegistrationAuthority(デフォルトで2年間有効)です。
フェデレーション認証サービス(FAS)管理コンソールの初期設定タブのステップ3で、承認をクリックすると、FASサーバーはキーペアを生成し、Citrix_RegistrationAuthority_ManualAuthorization証明書用の証明書署名要求を証明機関に送信します。これは一時的な証明書で、デフォルトで24時間有効です。証明機関はこの証明書を自動的に発行しません。その発行は、証明機関で管理者によって手動で承認される必要があります。証明書がFASサーバーに発行されると、FASはCitrix_RegistrationAuthority_ManualAuthorization証明書を使用して、Citrix_RegistrationAuthority証明書(デフォルトで2年間有効)を自動的に取得します。FASサーバーは、Citrix_RegistrationAuthority証明書を取得するとすぐに、Citrix_RegistrationAuthority_ManualAuthorizationの証明書とキーを削除します。
登録機関証明書に関連付けられた秘密鍵は特に機密性が高いです。なぜなら、登録機関証明書ポリシーにより、秘密鍵を所有する者は誰でも、テンプレートで構成されたユーザーセットに対して証明書要求を発行できるからです。その結果、この鍵を制御する者は誰でも、そのセット内の任意のユーザーとして環境に接続できます。
FASサーバーは、組織のセキュリティ要件に合った方法で秘密鍵を保護するように、以下のいずれかを使用して構成できます。
  • 登録機関証明書とユーザー証明書の秘密鍵の両方に対して、Microsoft Enhanced RSA and AES Cryptographic ProviderまたはMicrosoft Software Key Storage Providerを使用します。
  • 登録機関証明書の秘密鍵には、Trusted Platform Module (TPM) チップを備えたMicrosoft Platform Key Storage Providerを使用し、ユーザー証明書の秘密鍵には、Microsoft Enhanced RSA and AES Cryptographic ProviderまたはMicrosoft Software Key Storage Providerを使用します。
  • 登録機関証明書とユーザー証明書の秘密鍵の両方に対して、ハードウェアセキュリティモジュール (HSM) デバイスを備えたHSMベンダーの暗号化サービスまたはキーストレージプロバイダーを使用します。

秘密鍵の構成設定

FASを3つのオプションのいずれかを使用するように構成します。テキストエディターを使用して、Citrix.Authentication.FederatedAuthenticationService.exe.configファイルを編集します。このファイルのデフォルトの場所は、FASサーバーのProgram Files\Citrix\Federated Authentication Serviceフォルダー内です。
ローカライズされた画像(/en-us/federated-authentication-service/2206/media/fas-privatekeys-config-file.png)
FAS は、サービスが開始されたときにのみ構成ファイルを読み取ります。値が変更された場合、新しい設定を反映させるには FAS を再起動する必要があります。
Citrix.Authentication.FederatedAuthenticationService.exe.config ファイルで関連する値を次のように設定します。
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderLegacyCsp (CAPI API と CNG API を切り替える)
値 コメント
有効 CAPI API を使用する
false (デフォルト) CNG API を使用する
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderName (使用するプロバイダーの名前)
値 コメント
Microsoft 拡張 RSA および AES 暗号化プロバイダー デフォルトの CAPI プロバイダー
Microsoft ソフトウェア キー ストレージ プロバイダー デフォルトのCNGプロバイダー
Microsoft プラットフォーム キー ストレージ プロバイダー デフォルトのTPMプロバイダー。TPMはユーザーキーには推奨されません。登録機関キーにのみTPMを使用してください。FASサーバーを仮想化環境で実行する予定がある場合は、仮想化がサポートされているかどうかをTPMおよびハイパーバイザーベンダーに確認してください。
HSM_ベンダー CSP/キー ストレージ プロバイダー HSMベンダーによって提供されます。値はベンダーによって異なります。FASサーバーを仮想化環境で実行する予定がある場合は、仮想化がサポートされているかどうかをHSMベンダーに確認してください。
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderType (CAPI APIの場合にのみ必須)
値 コメント
24 デフォルト。Microsoft KeyContainerPermissionAccessEntry.ProviderType プロパティ PROV_RSA_AES 24 を指します。CAPIでHSMを使用しており、HSMベンダーが別途指定しない限り、常に24である必要があります。
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyProtection (FASが秘密鍵操作を実行する必要がある場合、ここで指定された値を使用します) 秘密鍵の「エクスポート可能」フラグを制御します。ハードウェアでサポートされている場合、TPMキーストレージの使用を許可します。
値 コメント
NoProtection 秘密キーはエクスポートできます。
GenerateNonExportableKey デフォルト。秘密キーはエクスポートできません。
GenerateTPMProtectedKey 秘密キーはTPMを使用して管理されます。秘密キーは、ProviderNameで指定したProviderName(例:Microsoft Platform Key Storage Provider)を介して保存されます。
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyLength (秘密キーのサイズをビット単位で指定します)
値 コメント
2048 デフォルト。1024または4096も使用できます。
構成ファイルの設定は、次のようにグラフィカルに表示されます(インストール時のデフォルトは赤で表示)。
ローカライズされた画像

構成シナリオの例

例1

この例では、登録機関証明書の秘密キーと、Microsoft Software Key Storage Providerを使用して保存されたユーザー証明書の秘密キーについて説明します。
これはデフォルトのインストール後構成です。追加の秘密鍵構成は不要です。

例 2

この例では、登録機関証明書の秘密鍵がMicrosoft Platform Key Storage Providerを介してFASサーバーのマザーボードのハードウェアTPMに保存され、ユーザー証明書の秘密鍵がMicrosoft Software Key Storage Providerを使用して保存されることを示します。
このシナリオでは、FASサーバーのマザーボード上のTPMが、TPMメーカーのドキュメントに従ってBIOSで有効にされ、その後Windowsで初期化されていることを前提としています。<https://docs.microsoft.com/ja-jp/previous-versions/windows/it-pro/windows-vista/cc749022(v=ws.10)>を参照してください。

FAS管理コンソールの使用

FAS管理コンソールはオフラインの証明書署名要求を実行できないため、組織が登録機関証明書のオンライン証明書署名要求を許可しない限り、その使用は推奨されません。
初期のFASセットアップを実行する際、証明書テンプレートを展開し、証明機関をセットアップした後、サービスを承認する前(構成シーケンスのステップ3)に、次の手順を実行します。
ステップ 1: 次のように、構成ファイルを編集して以下の行を変更します。
ローカライズされた画像
ファイルは次のようになります。
ローカライズされた画像
一部のTPMは鍵長を制限します。デフォルトの鍵長は2048ビットです。ハードウェアでサポートされている鍵長を指定してください。
ステップ 2: Citrix Federated Authentication Serviceを再起動して、構成ファイルから値を読み取ります。
ステップ 3: サービスを承認します。
ステップ 4: 証明機関サーバーから保留中の証明書要求を手動で発行します。登録機関証明書が取得されると、管理コンソールのセットアップシーケンスのステップ3が緑色になります。この時点で、登録機関証明書の秘密鍵がTPMで生成されます。証明書はデフォルトで2年間有効です。
登録機関証明書の秘密キーがTPMに正しく保存されていることを確認するには、以下のPowerShellコマンドを使用します。登録機関証明書の秘密キーがTPMに保存されている場合、PrivateKeyProviderフィールドはMicrosoft Platform Crypto Providerに設定されます。
Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1
Get-FasAuthorizationCertificate -FullCertInfo -Address localhost
ステップ5: 設定ファイルを以下のように編集し直します:
ローカライズされた画像
注:
FASはTPMで保護されたキーを持つユーザー証明書を生成できますが、大規模な展開ではTPMハードウェアが遅すぎる可能性があります。
ステップ6: FASを再起動します。これにより、サービスは設定ファイルを再読み込みし、変更された値を反映します。その後の自動秘密キー操作はユーザー証明書キーに影響します。これらの操作は秘密キーをTPMに保存せず、Microsoft Software Key Storage Providerを使用します。
ステップ7: FAS管理コンソールでルールタブを選択し、インストールと構成で説明されているように設定を編集します。

PowerShellの使用

登録機関証明書はPowerShellを使用してオフラインで要求できます。これは、証明機関がオンライン証明書署名要求を介して登録機関証明書を発行することを望まない組織に適しています。FAS管理コンソールを使用してオフラインの登録機関証明書署名要求を行うことはできません。
ステップ1: 管理コンソールを使用したFASの初期構成中に、最初の2つのステップ、「証明書テンプレートの展開」と「証明機関のセットアップ」のみを完了します。
ローカライズされた画像
ステップ2: 証明機関サーバーで、証明書テンプレートMMCスナップインを追加します。Citrix_RegistrationAuthority_ManualAuthorizationテンプレートを右クリックし、テンプレートの複製を選択します。
全般タブを選択します。名前と有効期間を変更します。この例では、名前はOffline_RAで、有効期間は2年です:
ローカライズされた画像
ステップ3: 証明機関サーバーで、証明機関MMCスナップインを追加します。証明書テンプレートを右クリックします。新規を選択し、発行する証明書テンプレートをクリックします。作成したばかりのテンプレートを選択します。
ステップ4: FASサーバーで以下のPowerShellコマンドレットをロードします:
Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1
ステップ5: FASサーバーのTPM内でRSAキーペアを生成し、FASサーバーで以下のPowerShellコマンドレットを入力して証明書署名要求を作成します。注: 一部のTPMはキー長を制限します。デフォルトのキー長は2048ビットです。ハードウェアでサポートされているキー長を指定してください。
New-FasAuthorizationCertificateRequest -UseTPM $true -address \<FQDN of FAS Server>
例:
New-FasAuthorizationCertificateRequest -UseTPM $true -address fashsm.auth.net
以下が表示されます:
ローカライズされた画像
注:
  • Id GUID(この例では「5ac3d8bd-b484-4ebe-abf8-4b2cfd62ca39」)は、次のステップで必要になります。
  • このPowerShellコマンドレットは、登録機関証明書の秘密キーを生成するために使用される1回限りの「オーバーライド」と考えてください。
  • このコマンドレットを実行すると、FASの起動時に構成ファイルから読み取られた値がチェックされ、使用するキー長が決定されます(デフォルトは2048)。
  • この手動のPowerShellで開始された登録機関証明書の秘密キー操作で-UseTPMが$trueに設定されているため、システムはTPMの使用に必要な設定と一致しないファイルからの値を無視します。
  • このコマンドレットを実行しても、構成ファイルの設定は変更されません。
  • その後の自動FAS開始ユーザー証明書秘密キー操作では、FASの起動時にファイルから読み取られた値が使用されます。
  • FASサーバーがユーザー証明書を発行する際に、TPMによって保護されたユーザー証明書の秘密鍵を生成するために、configファイルでKeyProtectionの値をGenerateTPMProtectedKeyに設定することも可能です。
TPMがキーペアの生成に使用されたことを確認するには、キーペアが生成された時点で、FASサーバーのWindowsイベントビューアーにあるアプリケーションログを確認してください。
ローカライズされた画像
注: 「」
続いて表示されるのは次のとおりです。
ローカライズされた画像
注: 「プロバイダー: Microsoft Platform Crypto Provider」
手順6: 証明書要求セクションをテキストエディターにコピーし、テキストファイルとしてディスクに保存します。
ローカライズされた画像
手順7: 証明書署名要求を証明機関に提出するには、FASサーバーでPowerShellに次のように入力します。
certreq -submit -attrib "certificatetemplate:\<certificate template from step 2>" \<certificate request file from step 6>
例:
certreq -submit -attrib "certificatetemplate:Offline_RA" C:\Users\Administrator.AUTH\Desktop\usmcertreq.txt
次のように表示されます。
ローカライズされた画像
この時点で、証明機関リストウィンドウが表示される場合があります。この例の証明機関では、http (上) と DCOM (下) の両方の登録が有効になっています。利用可能な場合は、DCOM オプションを選択してください。
ローカライズされた画像(/en-us/federated-authentication-service/2206/media/fas-privatekeys-certificate-authority-list.png)
証明機関が指定されると、PowerShell に RequestID が表示されます。
ローカライズされた画像(/en-us/federated-authentication-service/2206/media/fas-privatekeys-certificate-authority-list-display.png)
ステップ 8: 証明機関サーバーで、証明機関 MMC スナップインの をクリックします。要求 ID をメモします。次に、要求を右クリックして を選択します。
ステップ 9: ノードを選択します。発行されたばかりの証明書を見つけます (要求 ID が一致するはずです)。ダブルクリックして証明書を開きます。 タブを選択します。 をクリックします。証明書のエクスポートウィザードが起動します。 をクリックします。ファイル形式について、次のオプションを選択します。
ローカライズされた画像(/en-us/federated-authentication-service/2206/media/fas-privatekeys-certificate-export-wizard.png)
形式は「暗号メッセージ構文標準 – PKCS #7 証明書 (.P7B)」であり、「可能であれば、証明のパスにあるすべての証明書を含める」が選択されている必要があります。
ステップ 10: エクスポートした証明書ファイルを FAS サーバーにコピーします。
ステップ 11: FAS サーバーで次の PowerShell コマンドレットを入力して、登録機関証明書を FAS サーバーにインポートします。
ローカライズされた画像(/en-us/federated-authentication-service/2206/media/fas-privatekeys-import-fasauthorizationcertificiate-response.png)
例:
ローカライズされた画像(/en-us/federated-authentication-service/2206/media/fas-privatekeys-import-fasauthorizationcertificiate-response-example.png)
次のように表示されます。
ローカライズされた画像(/en-us/federated-authentication-service/2206/media/fas-privatekeys-import-fasauthorizationcertificiate-response-display.png)
登録機関証明書の秘密キーがTPMに正しく保存されていることを確認するには、次のPowerShellコマンドを使用します。登録機関証明書の秘密キーがTPMに保存されている場合、PrivateKeyProviderフィールドはMicrosoft Platform Crypto Providerに設定されます。
Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1
Get-FasAuthorizationCertificate -FullCertInfo -Address localhost
ステップ12: FAS管理コンソールを閉じてから、再起動します。
ローカライズされた画像
注: 「Authorize this service」のステップには緑色のチェックマークが付いています。
ステップ13: FAS管理コンソールでRulesタブを選択し、インストールと構成で説明されている設定を編集します。

例3

この例では、HSMに保存されている登録機関証明書の秘密キーとユーザー証明書の秘密キーについて説明します。この例では、HSMが構成されていることを前提としています。HSMには、たとえば「HSM_Vendor's Key Storage Provider」のようなプロバイダー名があります。
FASサーバーを仮想化環境で実行する予定がある場合は、ハイパーバイザーのサポートについてHSMベンダーに確認してください。
ステップ1. 管理コンソールを使用してFASの初期設定を行う際、「Deploy certificate templates」と「Set up a certificate authority」の最初の2つのステップのみを完了します。
ローカライズされた画像
ステップ2: HSMのProviderName値が何であるべきかを判断するために、HSMベンダーのドキュメントを参照してください。HSMがCAPIを使用している場合、プロバイダーはドキュメントでCryptographic Service Provider (CSP) と呼ばれることがあります。HSMがCNGを使用している場合、プロバイダーはKey Storage Provider (KSP) と呼ばれることがあります。
ステップ3: 設定ファイルを次のように編集します。
ローカライズされた画像
ファイルは次のようになります。
ローカライズされた画像
このシナリオでは、HSMがCNGを使用しているため、ProviderLegacyCsp値はfalseに設定されています。HSMがCAPIを使用している場合、ProviderLegacyCsp値はtrueに設定する必要があります。HSMがCAPIとCNGのどちらを使用しているかを確認するには、HSMベンダーのドキュメントを参照してください。また、非対称RSAキー生成でサポートされているキー長については、HSMベンダーのドキュメントを参照してください。この例では、キー長はデフォルトの2048ビットに設定されています。指定するキー長がハードウェアでサポートされていることを確認してください。
手順4: Citrix Federated Authentication Serviceを再起動して、構成ファイルから値を読み取ります。
手順5: FAS管理コンソールの**[Initial Setup]タブで[Authorize]**をクリックして、HSM内にRSAキーペアを生成し、証明書署名要求を作成します。
手順6: キーペアがHSMで生成されたことを確認するには、Windowsイベントログのアプリケーションエントリを確認します。
ローカライズされた画像
注:[プロバイダー: HSMベンダーのキーストレージプロバイダー]
手順7: 証明機関サーバーで、証明機関MMCの**[Pending Requests]**ノードを選択します。
ローカライズされた画像
要求を右クリックし、**[Issue]**を選択します。
注: 「このサービスを承認する」の手順には緑色のチェックマークが付いています。
ローカライズされた画像
手順8: FAS管理コンソールで**[Rules]**タブを選択し、(/ja-jp/federated-authentication-service/2206/install-configure.html)に記載されているように設定を編集します。

FAS証明書ストレージ

FASは、証明書を保存するためにFASサーバー上のMicrosoft証明書ストアを使用しません。組み込みデータベースを使用します。
登録機関証明書のGUIDを特定するには、FASサーバーで次のPowerShellコマンドレットを入力します。
Add-pssnapin Citrix.a&ast;
Get-FasAuthorizationCertificate –address \<FAS server FQDN>
例えば、Get-FasAuthorizationCertificate –address cg-fas-2.auth.net:
ローカライズされた画像
ユーザー証明書のリストを取得するには、次のように入力します。
Get-FasUserCertificate –address \<FAS server FQDN>
例えば、Get-FasUserCertificate –address cg-fas-2.auth.net
ローカライズされた画像
注:
秘密キーの保存にHSMを使用する場合、HSMコンテナはGUIDで識別されます。HSM内の秘密キーのGUIDは、次を使用して取得できます。
Get-FasUserCertificate –address \<FAS server FQDN> -KeyInfo $true
例:
Get-FasUserCertificate –address fas3.djwfas.net -KeyInfo $true
ローカライズされた画像

関連情報