証明機関の構成

この記事では、Federated Authentication Service (FAS) を証明機関 (CA) サーバーと統合するための高度な構成について説明します。これらの構成のほとんどは、FAS 管理コンソールではサポートされていません。手順では、FAS が提供する PowerShell API を使用します。この記事の手順を実行する前に、PowerShell の基本的な知識があることを前提とします。

FAS で使用する複数の CA サーバーのセットアップ

ルールを作成または編集する際に、FAS 管理コンソールを使用して複数の CA で FAS を構成できます。

Edit rule with two CAs.

選択するすべての CA は、Citrix_SmartcardLogon 証明書テンプレート (またはルールで選択したテンプレート) を公開している必要があります。

使用したい CA のいずれかが目的のテンプレートを公開していない場合は、その CA に対して 証明機関のセットアップ の手順を実行してください。

注:

すべての CA に対して このサービスを承認する 手順を実行する必要はありません。この手順で構成された承認証明書は、どの CA でも使用できるためです。

予期される動作の変更

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

TCP アクセス用の Microsoft 証明機関の構成

FAS は DCOM を使用して Microsoft CA にアクセスします。DCOM はポート 135 を使用して、サービスがリッスンしているポートを検出します。デフォルトでは、リッスンポートは動的に割り当てられます。 これにより、ファイアウォールセキュリティを実装する際に複雑さが発生する可能性があります。そのため、Microsoft には静的ポートを構成する機能があります。 Microsoft CA で静的ポートを構成するには、[スタート] > [ファイル名を指定して実行] > dcomcnfg.exe を選択して DCOM 構成パネルを開きます。[コンピューター] > [マイ コンピューター] > [DCOM の構成] を展開して CertSrv Request ノードを表示します。次に、CertSrv Request DCOM アプリケーションのプロパティを編集します。

localized image

[エンドポイント] を変更して静的エンドポイントを選択し、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
}
<!--NeedCopy-->

Get-ADUser は、ユーザーのリストをクエリするための標準的なコマンドレットです。上記の例には、UserPrincipalName を持ち、アカウントステータスが「enabled」のユーザーのみをリストするためのフィルター引数が含まれています。

SearchBase 引数は、AD のどの部分でユーザーを検索するかを絞り込みます。AD 内のすべてのユーザーを含める場合は、これを省略できます。注: このクエリは多数のユーザーを返す可能性があります。

CSV は次のようになります。

localized image

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
    }
}
<!--NeedCopy-->

FAS サーバーが複数ある場合、特定のユーザーの証明書は、メインサーバーで 1 回、フェールオーバーサーバーで 1 回の計 2 回生成されます。

上記のスクリプトは、「default」という名前のルールに対応しています。異なるルール名 (たとえば、「hello」) を使用している場合は、スクリプト内の $rule 変数を変更するだけです。

localized image

登録機関証明書の更新

複数の FAS サーバーが使用されている場合、ログオンしているユーザーに影響を与えることなく、FAS 承認証明書を更新できます。

注:

GUI を使用して FAS を再承認することもできます。

localized image

次のシーケンスを完了します。

  1. 新しい承認証明書を作成します: New-FasAuthorizationCertificate

  2. Get-FasAuthorizationCertificate によって返される新しい承認証明書の GUID をメモします。

  3. FAS サーバーをメンテナンスモードにします: Set-FasServer –Address <FAS server> -MaintenanceMode $true

  4. 新しい承認証明書を交換します: Set-FasCertificateDefinition –AuthorizationCertificate <GUID>

  5. FAS サーバーをメンテナンスモードから解除します: Set-FasServer –Address <FAS server> -MaintenanceMode $false

  6. 古い承認証明書を削除します: Remove-FasAuthorizationCertificate

関連情報

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