認証局の構成

最終公開日 : Oct 24, 2026
This article describes the advanced configuration of Federated Authentication Service (FAS) to integrate with certificate authority (CA) servers. Most of these configurations are not supported by the FAS administration console. The instructions use PowerShell APIs provided by FAS. You must have a basic knowledge of PowerShell before running any instructions in this article.

Set up multiple CA servers for use in FAS

ルールを作成または編集する際に、FAS管理コンソールを使用して、複数のCAでFASを構成できます。
選択したすべてのCAは、Citrix_SmartcardLogon 証明書テンプレート (またはルールで選択したテンプレート) を公開している必要があります。
使用したいCAのいずれかが目的のテンプレートを公開していない場合は、そのCAに対して証明機関をセットアップする手順を実行してください。
注:
すべてのCAに対してこのサービスを承認する手順を実行する必要はありません。この手順で構成された承認証明書は、どのCAでも使用できるためです。

予期される動作の変更

複数のCAサーバーでFASサーバーを構成すると、ユーザー証明書の生成は、構成されているすべてのCAサーバーに分散されます。また、構成されているCAサーバーのいずれかが失敗した場合、FASサーバーは別の利用可能なCAサーバーに切り替わります。

TCPアクセス用にMicrosoft証明機関を構成する

FASはDCOMを使用してMicrosoft CAにアクセスします。DCOMはポート135を使用して、サービスがリッスンしているポートを検出します。デフォルトでは、リッスンポートは動的に割り当てられます。 これにより、ファイアウォールセキュリティを実装する際に複雑さが発生する可能性があります。そのため、Microsoftは静的ポートを構成する機能を提供しています。 Microsoft CAで静的ポートを構成するには、スタート > ファイル名を指定して実行 > dcomcnfg.exe を選択して、DCOM構成パネルを開きます。コンピューター > マイ コンピューター > DCOMの構成を展開して、CertSrv Requestノードを表示します。次に、CertSrv Request DCOMアプリケーションのプロパティを編集します。
ローカライズされた画像
エンドポイントを変更して静的エンドポイントを選択し、TCP ポート番号 (上記のグラフィックでは 900) を指定します。
この例では、ファイアウォールはポート135とポート900を許可する必要があります。
変更を適用するには、Microsoft証明機関を再起動します。
DCOMはRPCポート135を使用してネゴシエーション段階を持つため、FASサーバー(または証明機関を使用する他のマシン)を設定する必要はありません。クライアントがDCOMを使用する必要がある場合、サーバー上のDCOM RPCサービスに接続し、特定のDCOMサーバーへのアクセスを要求します。これにより、ポート900(この例では)が開かれ、DCOMサーバーはクライアントにそのポートへの接続を指示します。

ユーザー証明書の事前生成

FASサーバー内でユーザー証明書が事前生成されると、ユーザーのログオン時間が大幅に改善されます。以下のセクションでは、単一または複数のFASサーバーでこれを実行する方法について説明します。

Active Directoryユーザーのリストを取得する

以下の例に示すように、ADをクエリし、ユーザーのリストをファイル(たとえば、.csvファイル)に保存することで、証明書の生成を改善できます。
Import-Module ActiveDirectory

$searchbase = "cn=users,dc=bvt,dc=local" # AD User Base to Look for Users, leave it blank to search all
$filename = "user_list.csv" # Filename to save

if ($searchbase -ne ""){
    Get-ADUser -Filter {(UserPrincipalName -ne "null") -and (Enabled -eq "true")} -SearchBase $searchbase -Properties UserPrincipalName | Select UserPrincipalName | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $filename
} else {
    Get-ADUser -Filter {(UserPrincipalName -ne "null") -and (Enabled -eq "true")} -Properties UserPrincipalName | Select UserPrincipalName | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $filename
}
Get-ADUser は、ユーザーのリストをクエリするための標準的なコマンドレットです。上記の例には、UserPrincipalNameを持ち、アカウントステータスが「有効」であるユーザーのみをリストするためのフィルター引数が含まれています。
SearchBase引数は、ADのどの部分でユーザーを検索するかを絞り込みます。AD内のすべてのユーザーを含めたい場合は、これを省略できます。
注:
このクエリは多数のユーザーを返す可能性があります。
CSVは次のようになります。
ローカライズされた画像

FASサーバー

次のPowerShellスクリプトは、以前に生成されたユーザーリストを受け取り、ユーザー証明書のリストを作成します。
Add-PSSnapin Citrix.A*
$csv = "user_list.csv"
$rule = "default" # rule/role in your admin console
$users = Import-Csv -encoding utf8 $csv
foreach ( $user in $users )
{
    $server = Get-FasServerForUser -UserPrincipalNames $user.UserPrincipalName
    if( $server.Server -ne $NULL) {
        New-FasUserCertificate -Address $server.Server -UserPrincipalName $user.UserPrincipalName -CertificateDefinition $rule"_Definition" -Rule $rule
    }
    if( $server.Failover -ne $NULL) {
        New-FasUserCertificate -Address $server.Failover -UserPrincipalName $user.UserPrincipalName -CertificateDefinition $rule"_Definition" -Rule $rule
    }
}
FASサーバーが複数ある場合、特定のユーザーの証明書は2回生成されます。1つはメインサーバーで、もう1つはフェイルオーバーサーバーで生成されます。
この前のスクリプトは、「default」という名前のルールに対応しています。異なるルール名(例:「hello」)を使用している場合は、スクリプト内の$rule変数を変更してください。
ローカライズされた画像

FAS承認証明書を更新する

FASユーザーに影響を与えることなく、FAS承認証明書を更新できます。

FAS管理コンソールを使用する

  • 新しいFAS承認証明書要求を生成するには、再承認をクリックします。 再承認
CAで要求を手動で承認する必要があります。詳細については、「フェデレーション認証サービスを承認する」を参照してください。
  • 新しい承認証明書が生成されると、FASはそれがまだルールに関連付けられていないことを示します。新しい承認証明書をルールに関連付けるには、構成を更新をクリックします。 構成を更新

PowerShellを使用する

次のシーケンスを完了します。
  1. 承認証明書を作成します: New-FasAuthorizationCertificate
  2. 新しい承認証明書のGUIDを、Get-FasAuthorizationCertificateによって返されるとおりにメモします。
  3. 新しい承認証明書を交換します: Set-FasCertificateDefinition –AuthorizationCertificate <GUID>
  4. 古い承認証明書を削除します: Remove-FasAuthorizationCertificate。ユーザーアクティビティが中断されないように、DeleteUserCerts $false optionを使用してください。

FAS の認証解除と FAS 証明書の削除

FAS 管理コンソールの使用

  • 「認証解除」リンクをクリックし、認証証明書を削除します。すべてのユーザー証明書とすべてのルールを削除できます (ただし、証明書をクリアするために必須ではありません)。 認証解除
  • ルールを削除しない場合、後で FAS を認証すると、警告が表示されます。 警告
この警告は、認証証明書がまだルールに関連付けられていないことを示しています。新しい認証証明書をルールに関連付けるには、「構成を更新」をクリックします。

PowerShell の使用

認証証明書とユーザー証明書を削除するには、次の PowerShell コマンドを使用します。
$AuthCert = Get-FasAuthorizationCertificate -Address localhost
Remove-FasAuthorizationCertificate -Address localhost -Id $AuthCert.Id
注:
Get-FasAuthorizationCertificate は、認証証明書と保留中の認証証明書要求のリストを返します。Remove-FasAuthorizationCertificate を続行する前に、$AuthCert の値を検査できます。
認証証明書を削除し、ユーザー証明書を保持するには、DeleteUserCerts パラメーターを false に設定します。
Remove-FasAuthorizationCertificate -Address localhost -Id $AuthCert.Id -DeleteUserCerts $false
残りのユーザー証明書は、VDA サインインおよびセッション内証明書のために FAS で引き続き使用できます。これは、FAS 認証を更新する際に役立ちます。詳細については、「FAS 認証証明書の更新」を参照してください。
  • ユーザー証明書は次のように削除できます。
Remove-FasUserCertificate -Address localhost
このコマンドは、FAS サーバーからすべてのユーザー証明書を削除します。このコマンドには、削除される証明書のセットをフィルター処理するオプションがあります。
注:
FASが内部ストレージから承認証明書またはユーザー証明書を削除すると、関連するキーペアも削除されます。

オフライン承認

FAS承認証明書は、PowerShellを使用してオフラインで要求できます。これは、証明機関がオンラインの証明書署名要求を介して承認証明書を発行することを望まない組織に適しています。
  1. 管理コンソールを使用してFASの初期設定を行う際、最初の2つの手順のみを完了します。証明書テンプレートの展開および証明機関のセットアップ。 Deploy templates and Set up certificate authority
  2. FASサーバーで次のPowerShellコマンドレットをロードします。
    Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1`
  3. FASサーバーで次のPowerShellコマンドレットを入力して、キーペアを生成し、証明書署名要求を作成します。

    $AuthCertRequest = New-FasAuthorizationCertificateRequest -Address localhost $AuthCertRequest
    これにより、次の結果が得られます。
    結果
    注:
    生成されるキーペアのプロパティは、FAS承認キー構成によって決定されます。詳細については、「秘密キーの保護」を参照してください。
  4. 証明書要求をディスクにコピーします。
    `$AuthCertRequest.CertificateRequest > c:\temp\authcert.csr
  5. 証明書要求ファイル(この例ではauthcert.csr)を証明機関に提示し、要求を承認して、証明書応答を取得します。
    次の5つの手順は、Microsoft Enterprise証明機関の使用に固有のものです。その他のCAについては、CAベンダーにお問い合わせください。
    • 証明機関サーバーで、証明書テンプレートMMCスナップインを追加します。Citrix_RegistrationAuthority_ManualAuthorizationテンプレートを右クリックし、テンプレートの複製を選択します。全般タブを選択します。名前と有効期間を変更します。この例では、名前はOffline_RAで、有効期間は2年です。
      秘密鍵テンプレートのプロパティ
    • 証明機関サーバーで、証明機関MMCスナップインを追加します。証明書テンプレートを右クリックします。新規を選択し、発行する証明書テンプレートをクリックします。作成したテンプレートを選択します。
    • FASサーバーのPowerShellコマンドプロンプトで次のように入力して、証明書署名要求を証明機関に送信します。
      certreq -submit -attrib "certificatetemplate:<certificate template from step 5a>" <certificate request file from step 4>
      例:
      certreq -submit -attrib "certificatetemplate:Offline_RA" C:\temp\authcert.csr
      上記のコマンドを実行すると、次の結果が得られます。
      証明書テンプレートの結果
      この時点で、証明機関リストウィンドウが表示される場合があります。この例の証明機関では、DCOM(上)とHTTP(下)の両方の登録が有効になっています。利用可能な場合はDCOMを選択し、OKをクリックします。
      証明機関リスト
      証明機関が指定されると、コマンドが完了し、RequestIDが表示されます。
      証明書要求の保留中のステータス
    • 証明機関サーバーで、証明機関MMCスナップインの保留中の要求をクリックします。要求IDを見つけます。次に、要求を右クリックして発行を選択します。
    • 発行済み証明書ノードを選択します。発行された証明書を見つけ(要求IDが一致する必要があります)、ダブルクリックして証明書を開きます。詳細タブを選択します。ファイルにコピーをクリックします。証明書のエクスポートウィザードが起動します。次へをクリックします。ファイル形式について次のオプションを選択します。
      秘密鍵証明書のエクスポートウィザード
    形式は暗号化メッセージ構文標準 – PKCS #7 証明書 (.P7B) で、可能であれば、証明のパスにあるすべての証明書を含めるが選択されている必要があります。
  6. エクスポートした証明書ファイルをFASサーバーにコピーします。
  7. FASサーバーで以下のPowerShellコマンドレットを入力して、登録機関証明書をFASサーバーにインポートします。
    Import-FasAuthorizationCertificateResponse -Address localhost -Id $AuthCertRequest.Id -Pkcs7CertificateFile <Certificate file from step 6>
    例:
    Import-FasAuthorizationCertificateResponse -Address localhost -Id $AuthCertRequest.Id -Pkcs7CertificateFile C:\temp\response.p7b
    このコマンドを実行すると、次の結果が得られます。
    FAS承認証明書のインポート応答
  8. FAS管理コンソールを確認します。FASが承認されたことが表示されているはずです。
    サービスの承認
    注:
    「このサービスを承認」のステップの横に緑色のチェックマークが表示されます。
  9. ルールを作成して構成を続行します。詳細については、「ルールを構成する」を参照してください。

関連情報

  • 「インストールと構成」の記事は、FASのインストールと構成に関する主要なリファレンスです。
  • 一般的なフェデレーション認証サービスの展開は、「展開アーキテクチャ」の記事にまとめられています。
  • その他のハウツー記事は、「高度な構成」の記事で紹介されています。