Federated Authentication Serviceの証明機関の設定

この記事では、Citrix Federated Authentication Service(FAS)をFAS管理コンソールでサポートされていない証明機関(CA)サーバーと統合するための詳細設定について説明します。この説明では、FASが提供するPowerShell APIを使用します。この記事に記載されている説明を実行する前に、PowerShellの基礎知識を確認してください。

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

このセクションでは、複数のCAサーバーを使用して証明書を発行するための単一FASのセットアップ方法について説明します。これにより、CAサーバーの負荷分散とフェールオーバーが可能になります。

手順1:FASが検出できるCAサーバーの数の確認

Get-FASMsCertificateAuthorityコマンドレットを使用して、FASが接続できるCAサーバーを特定します。次の例は、FASが3つのCAサーバーに接続できることを示しています。

ローカライズされた画像

手順2:既存の証明書定義の変更

ロールの作成には、PowerShellではなくFAS管理コンソールを使用することをお勧めします。これにより、後から手動でSDLを追加する手間が省けます。次の例では、アクセスの規則が構成された「default」という名前の役割が作成されています:

ローカライズされた画像

証明機関フィールドに複数のCAを追加(このリリースでは管理コンソールからの操作はサポートされていません)するには、証明書定義を構成する必要があります。最初に、証明書定義の名前が必要です。この名前を管理コンソールから特定できない場合は、Get-FASCertificateDefinitionコマンドレットを使用してください。

ローカライズされた画像

UIと同等のもの

ローカライズされた画像

証明書定義の名前が特定できたら、証明書定義を変更してCertificateAuthoritiesが1つではなく一覧で含まれるようにします。

ローカライズされた画像

Get-FASCertificateDefinitionコマンドレットによって以下が返されます。

ローカライズされた画像

注:

これを行うと、FAS管理コンソールは機能しなくなります。ロード時に「Certificate Authority」および「Certificate Template」の両方で空白のフィールドが表示されます:

ローカライズされた画像

機能としては、FASに問題はありません。管理コンソールを使用してアクセス規則を変更する場合は、手順2を繰り返してすべての証明機関を表示します。

想定される動作の変更

FASサーバーを複数のCAサーバーで構成した後は、ユーザー証明書の生成は構成済みのすべてのCAサーバー間で配信されます。さらに、構成済みのCAサーバーのうちいずれかでエラーが発生すると、FASサーバーは別の使用可能なCAサーバーに切り替えます。

Microsoft CAをTCPアクセス用に構成する

デフォルトでは、Microsoft CAはアクセスにDCOMを使用します。この場合、ファイアウォールの実装が複雑になるため、静的TCPポートに切り替えることができます。Microsoft CAでDCOM構成パネルを開き、「CertSrv要求」DCOMアプリケーションのプロパティを編集します:

ローカライズされた画像

[エンドポイント]を変更して静的エンドポイントを選択し、TCPポート番号を指定します(上の図では900です)。

Microsoft CAを再起動して、証明書要求を送信します。「netstat –a –n –b」を実行する場合は、certsvrがポート900をリスンしていることを確認する必要があります:

ローカライズされた画像

DCOMにはRPCポートを使用するネゴシエーションステージがあるため、FASサーバー(またはCAを使用するその他のマシン)を構成する必要はありません。クライアントがDCOMを使用する必要がある場合、クライアントは証明書サーバーのDCOM RPC Serviceに接続して特定のDCOMサーバーへのアクセスを要求します。これによってポート900が開かれ、DCOMサーバーはFASサーバーに接続方法を指示します。

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

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

Active Directoryユーザーの一覧を取得します。

AD に対してクエリを実行し、ユーザーの一覧を次の例のようにファイル(.csvファイルなど)に保存することにより、証明書の生成を改善することができます。

ローカライズされた画像

Get-ADUserは、ユーザーの一覧を要求するための標準コマンドレットです。上述の例には、UserPrincipalNameを持ちステータスが「有効」のユーザーのみを一覧表示するフィルター引数が含まれています。

SearchBase引数によって、ADのユーザー検索が制限されます。すべてのユーザーをADに含めたい場合、これを省略できます。注:このクエリによって、多数のユーザーが返される可能性があります。

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

ローカライズされた画像

FASサーバー

以下のPowerShellスクリプトでは、以前生成されたユーザーの一覧を使用してユーザー証明書の一覧が作成されます。

ローカライズされた画像

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

上述のスクリプトは、「default」という名前の規則の場合のものです。規則名が異なる場合(「hello」など)は、スクリプトの$rule変数を変更してください。

ローカライズされた画像

登録機関証明書を更新します。

複数のFASサーバーを使用中の場合は、ログオン中のユーザーに影響することなくFAS認証証明書を更新できます。注:GUIを使用してFASの権限を取り消したり再び付与したりすることもできますが、これによってFASの構成オプションがリセットされます。

以下の手順を実行します。

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

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

  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

関連情報