認証局の構成
この記事では、証明機関 (CA) サーバーと統合するためのフェデレーテッド認証サービス (FAS) の高度な構成について説明します。これらの構成のほとんどは、FAS 管理コンソールではサポートされていません。手順では、FAS が提供するPowerShell API を使用します。この記事の指示を実行する前に、PowerShell の基本的な知識が必要です。
FAS で使用する複数の CA サーバーをセットアップする
ルールを作成または編集する際に、FAS管理コンソールを使用して複数のCAでFASを構成できます。
選択したすべてのCAは、Citrix_SmartcardLogon証明書テンプレート(またはルールで選択したテンプレート)を公開している必要があります。
使用したいCAのいずれかが目的のテンプレートを公開していない場合は、そのCAに対して認証局をセットアップするの手順を実行してください。
注:
すべてのCAに対してこのサービスを承認するの手順を実行する必要はありません。この手順で構成された承認証明書は、どのCAでも使用できるためです。
予期される動作の変更
After you configure the FAS server with multiple CA servers, user certificate generation is distributed among all the configured CA servers. Also, if one of the configured CA servers fails, the FAS server will switch to another available CA server.
Configure the Microsoft certificate authority for TCP access
By default the Microsoft CA uses DCOM for access. This can result in complexities when implementing firewall security, so Microsoft has a provision to switch to a static TCP port. On the Microsoft CA, use Start>Run>dcomcnfg.exe to open the DCOM configuration panel, expand Computers>My computer>DCOM Config to show the CertSrv Request node, then edit the properties of the CertSrv Request DCOM application:
Change the "Endpoints" to select a static endpoint and specify a TCP port number (900 in the graphic above).
Microsoft証明機関を再起動し、証明書要求を送信します。
netstat –a –n –bを実行すると、certsvrがポート900でリッスンしていることが確認できます。
ローカライズされた画像(/en-us/federated-authentication-service/2203-ltsr/media/fas-caconfig-netstat.png)
DCOMはRPCポートを使用してネゴシエーション段階を持つため、FASサーバー(または証明機関を使用する他のマシン)を設定する必要はありません。クライアントがDCOMを使用する必要がある場合、証明書サーバー上のDCOM RPCサービスに接続し、特定のDCOMサーバーへのアクセスを要求します。これによりポート900が開かれ、DCOMサーバーはFASサーバーに接続方法を指示します。
ユーザー証明書の事前生成
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を持ち、アカウントステータスが「enabled」のユーザーのみをリストするためのフィルター引数が含まれています。
SearchBase引数は、ADのどの部分でユーザーを検索するかを絞り込みます。AD内のすべてのユーザーを含めたい場合は、これを省略できます。注:このクエリは多数のユーザーを返す可能性があります。
CSVは次のようになります。
ローカライズされた画像(/en-us/federated-authentication-service/2203-ltsr/media/fas-caconfig-get-aduser-csv.png)
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承認証明書を更新できます。
注:
GUIを使用してFASを再承認することもできます。
次の手順を完了します:
-
新しい承認証明書を作成します:
New-FasAuthorizationCertificate -
新しい承認証明書のGUIDを、
Get-FasAuthorizationCertificateによって返されるとおりにメモします。 -
FASサーバーをメンテナンスモードにします:
Set-FasServer –Address <FAS server> -MaintenanceMode $true -
新しい承認証明書を交換します:
Set-FasCertificateDefinition –AuthorizationCertificate <GUID> -
FASサーバーをメンテナンスモードから解除します:
Set-FasServer –Address <FAS server> -MaintenanceMode $false -
古い承認証明書を削除します:
Remove-FasAuthorizationCertificate
