認証局の構成

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

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

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

2つのCAを持つルールの編集。

選択するすべての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アプリケーションのプロパティを編集します。

ローカライズされた画像

エンドポイントを変更して静的エンドポイントを選択し、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を持ち、アカウントステータスが「有効」であるユーザーのみをリストするためのフィルター引数が含まれています。

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

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

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

ローカライズされた画像

FAS承認証明書の更新

FASユーザーを中断することなく、FAS承認証明書を更新できます。

FAS管理コンソールの使用

  • 再承認をクリックして、新しいFAS承認証明書要求を生成します。 再承認

CAで要求を手動で承認する必要があります。詳細については、「Federated Authentication Serviceの承認」を参照してください。

  • 新しい承認証明書が生成されると、FASはそれがまだルールに関連付けられていないことを示します。構成の更新をクリックして、新しい承認証明書をルールに関連付けます。 構成の更新

PowerShellの使用

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

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

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

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

  4. 古い承認証明書を削除します。Remove-FasAuthorizationCertificate。ユーザーアクティビティが中断されないように、DeleteUserCerts $falseオプションを使用してください。

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

FAS管理コンソールの使用

-  **承認解除**リンクをクリックし、承認証明書を削除します。すべてのユーザー証明書とすべてのルールを削除できます(ただし、証明書をクリアするために必須ではありません)。 ![承認解除](/en-us/federated-authentication-service/2503/media/deauthorize-service-and-fas-admin-console.png)

-  ルールを削除しない場合、後でFASを承認すると警告が表示されます。 ![警告](/en-us/federated-authentication-service/2503/media/update-the-config-fas-admin-console.png)

警告は、承認証明書がまだルールに関連付けられていないことを示しています。構成の更新をクリックして、新しい承認証明書をルールに関連付けます。

PowerShellの使用

次のPowerShellコマンドを使用して、承認証明書とユーザー証明書を削除します。

$AuthCert = Get-FasAuthorizationCertificate -Address localhost
Remove-FasAuthorizationCertificate -Address localhost -Id $AuthCert.Id
<!--NeedCopy-->
-  > **注:**
-  > > `Get-FasAuthorizationCertificate` は、認証証明書と保留中の認証証明書要求のリストを返します。これにより、`Remove-FasAuthorizationCertificate` を続行する前に `$AuthCert` の値を検査できます。

DeleteUserCerts パラメーターを false に設定することで、認証証明書を削除し、ユーザー証明書を保持できます。

Remove-FasAuthorizationCertificate -Address localhost -Id $AuthCert.Id -DeleteUserCerts $false

残りのユーザー証明書は、FAS によって VDA サインインおよびセッション内証明書に引き続き使用できます。これは、FAS 認証を更新する際に役立ちます。詳細については、「FAS 認証証明書の更新」を参照してください。

-  ユーザー証明書は次のように削除できます。

Remove-FasUserCertificate -Address localhost

このコマンドは、FAS サーバーからすべてのユーザー証明書を削除します。このコマンドには、削除される証明書のセットをフィルターするオプションがあります。

注:

FAS が内部ストレージから認証証明書またはユーザー証明書を削除すると、関連するキーペアも削除されます。

オフライン認証

  • FAS 認証証明書は、PowerShell を使用してオフラインで要求できます。これは、証明機関がオンラインの証明書署名要求を通じて認証証明書を発行することを望まない組織に適しています。
  1. 管理コンソールを使用した初期 FAS 構成中に、最初の 2 つのステップのみを完了します。証明書テンプレートの展開証明機関のセットアップテンプレートの展開と証明機関のセットアップ

  2. FAS サーバーで次の PowerShell コマンドレットをロードします。

    Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1`
    <!--NeedCopy-->
    
  3. FAS サーバーで次の PowerShell コマンドレットを入力して、キーペアを生成し、証明書署名要求を作成します。

    
    $AuthCertRequest = New-FasAuthorizationCertificateRequest -Address localhost $AuthCertRequest
    
    <!--NeedCopy-->
    

    これにより、次の結果が得られます。

    結果

    注:

    生成されるキーペアのプロパティは、FAS 認証キー構成によって決定されます。詳細については、「秘密キーの保護」を参照してください。

  4. 証明書要求をディスクにコピーします。

    `$AuthCertRequest.CertificateRequest > c:\temp\authcert.csr
    <!--NeedCopy-->
    
  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>
      <!--NeedCopy-->
      

      例:

      certreq -submit -attrib "certificatetemplate:Offline_RA" C:\temp\authcert.csr
      <!--NeedCopy-->
      

      前述のコマンドを実行すると、次の結果が得られます。

      証明書テンプレートの結果

      この時点で、証明機関リストウィンドウが表示される場合があります。この例の証明機関では、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>
    <!--NeedCopy-->
    

    例:

    Import-FasAuthorizationCertificateResponse -Address localhost -Id $AuthCertRequest.Id -Pkcs7CertificateFile C:\temp\response.p7b
    <!--NeedCopy-->
    

    このコマンドを実行すると、次の結果が得られます。

    FAS 認証証明書応答のインポート

  8. FAS 管理コンソールを確認します。FAS が認証済みであることが表示されているはずです。

    サービスの認証

    注:

    このサービスを認証のステップの横に緑色のチェックマークが表示されます。

  9. ルールを作成して構成を続行します。詳細については、「ルールの構成」を参照してください。

関連情報

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