Citrix Provisioning

インストール前の作業

Citrix Provisioningをインストールして構成する前に、以下のタスクを完了します。

重要:

Citrix Provisioningコンポーネントをインストールする前に、すべてのWindows更新プログラムが最新であることを確認してください。CitrixではすべてのWindows更新プログラムをインストールしてから再起動することをお勧めします。

Microsoft SQLデータベースの選択と構成

各Citrix Provisioningファームには単一のデータベースがあります。次のいずれかでデータベースを提供できます:

  • 既存のSQL ServerまたはSQL Server Expressインスタンス
  • SQL ServerまたはSQL Server Expressを実行している新しいサーバー
  • 新規または既存のAzure SQL Databaseインスタンス

ファーム内のすべてのCitrix Provisioningサーバーがデータベースサーバーと通信できる必要があります。

実稼働環境では、負荷分散のパフォーマンス低下を回避するため、SQL ServerまたはSQL Server ExpressインスタンスとCitrix Provisioningサーバーコンポーネントソフトウェアを異なるサーバーにインストールすることをお勧めします。

データベースを作成するには、次の3つの方法があります:

  • 構成ウィザードを使用します。このオプションを使用するには、dbcreator権限が必要です。
  • データベースを作成する権限がない場合は、DbScript.exeユーティリティを使用して、データベース管理者がProvisioningデータベースを作成するために実行するSQLスクリプトを作成できます。このユーティリティはプロビジョニングソフトウェアとともにインストールされます。
  • データベース管理者がDbScript.exeユーティリティを実行して空のデータベースを作成した場合、構成ウィザードの実行時に、このデータベースが新しいファームのデータベースとして選択されます。構成ウィザードの実行時に使用されるログインは、データベースの所有者である必要があります。VIEW ANY DEFINITION権限を持っている必要があります。この権限は、データベース管理者が空のデータベースを作成するときに設定します。

DbScript.exeユーティリティを実行してデータベースを作成または更新

データベースを作成する権限がない場合は、DbScript.exeを使用して、データベース管理者がCitrix Provisioningデータベースを作成または更新するために実行するSQLスクリプトを生成できます。C:\Program Files\Citrix\Provisioning ServicesのWindowsコマンドプロンプトからスクリプトを実行します。

データベースを作成するためのスクリプトを生成するには、次の構文を使用します:

  • SQL ServerおよびSQL Server Expressの場合:DbScript.exe -new <databaseName> <farmName> <siteName> <collectionName> <farmAdminGroup> <adGroupsEnabled> <scriptName> <is2012orHigher>
  • Azure SQL Databaseの場合:DbScript.exe -newForAzSqlDb <databaseName> <farmName> <siteName> <collectionName> <farmAdminGroup> <adGroupsEnabled> <scriptName> <is2012orHigher>

Azure SQL Databaseの新しいデータベースを作成する場合、DbScriptは1つではなく2つのスクリプトファイルを生成します。

  • 1つ目のスクリプトはマスターデータベース内へ実行され、新しいデータベースを作成します。
  • 次に、2つ目のスクリプトが新しいデータベース内へ実行されます。

データベースを更新するためのスクリプトを生成するには、次のように入力します:

DbScript.exe -upgrade <databaseName> <scriptName>

コマンドは次の引数を使用します:

  • <databaseName> — 更新するデータベースの名前。
  • <farmName> — データベースのファーム名。
  • <siteName> — データベースのサイト名。
  • <collectionName> — データベースのコレクション名
  • <farmAdminGroup> — 完全なパスで指定されたファーム管理者グループ。

    注:

    構成ウィザードを実行する場合、Citrix Provisioningサーバーをデータベースに追加するには、このグループ(Active Directoryグループ)のメンバーである必要があります。

  • <adGroupsEnabled> —ブール値として指定されたADグループを有効または無効にします。ここでtrueはADグループを有効にし、falseはADグループを無効にします。
  • <scriptName> — 生成するスクリプトの名前。完全なパスで指定されます。
  • <is2012orHigher> — これは廃止済みです。trueを使用します。

DbScript.exeの例

この例では、db1-2という名前の空のCitrix Provisioningデータベースを作成するスクリプトを生成します。スクリプトはnewDb.sqlという名前で、C:にあります。

C:\Program Files\Citrix\Provisioning Services> DbScript.exe -new db1-2 Farm1 Site1 Collection1 "test.local/Users/Domain Users" true c:\newDb.sql true

この例では、Citrix Provisioningデータベースtest1をアップグレードするスクリプトを生成します。スクリプトはupgrade.sqlという名前で、パスが指定されていないため、スクリプトが実行されたディレクトリ(C:\Program Files\Citrix\Provisioning Services)にあります。

C:\Program Files\Citrix\Provisioning Services>DbScript.exe -upgrade test1 upgrade.sql

データベースのサイズ評価

詳しくは、データベースのサイズ評価に関する記事を参照してください。

データベースの作成時には、初期サイズとして20MB、拡張サイズとして10MBが設定されます。データベースログの初期サイズは10MBで拡張サイズは10%です。

基本データに必要な容量は112KBで、このサイズは変更されません。基本イメージには以下の項目が含まれます:

  • DatabaseVersionレコード。約32KBが必要です
  • Farmレコード。約8KBが必要です
  • DiskCreateレコード。約16KBが必要です
  • Notifications。約40KBが必要です
  • ServerMappedレコード。約16KBが必要です

オブジェクトに基づいて必要な容量は次のようになります。

  • アクセスとグループ
    • システムにアクセス権を持つ各ユーザーグループに約50KBが必要です。
    • 各Siteレコードに約4KBが必要です
    • 各コレクションに約10KBが必要です
  • FarmView
    • 各FarmViewに約4KBが必要です
    • 各FarmView/Deviceリレーションシップに約5KBが必要です
  • SiteView
    • 各SiteViewに約4KBが必要です
    • 各SiteView/Deviceリレーションシップに約5KBが必要です
  • ターゲットデバイス
    • 各ターゲットデバイスに約2KBが必要です
    • DeviceBootstrapに約10KBが必要です
    • Device:Diskのリレーションシップに約35KBが必要です
    • DevicePersonalityに約1KBが必要です
    • デバイスの起動時の各DeviceStatusに約1KBが必要です
    • DeviceCustomPropertyに約2KBが必要です
  • ディスク
    • 各一意のディスクに約1KBが必要です
    • DiskVersionに約3KBが必要です
    • DiskLocatorに約10KBが必要です
    • DiskLocatorCustomPropertyに約2KBが必要です
  • Provisioningサーバー
    • 各サーバーに約5KBが必要です
    • ServerIPに約2KBが必要です
    • サーバーの起動時の各ServerStatusに約1KBが必要です
    • ServerCustomPropertyに約2KBが必要です
  • ストア
    • 各Storeに約8KBが必要です
    • 各Store:Serverリレーションシップに約4KBが必要です
  • ディスク更新
    • VirtualHostingPoolに約4KBが必要です
    • UpdateTaskに約10KBが必要です
    • DiskUpdateDeviceに約2KBが必要です
    • DiskUpdateDevice:Diskリレーションシップに約35KBが必要です
    • Disk:UpdateTaskのリレーションシップに約1KBが必要です

変更が発生するにつれて大きくなるレコードは以下のとおりです。

  • 各タスク処理(例:仮想ディスクバージョンのマージ)に約2KBが必要です。
  • 監査機能が有効な場合、Citrix Provisioningコンソール、MCLI、またはPowerShellインターフェイスで管理者が加える変更ごとに、約1KBが必要です。

データベースのミラーリング

Citrix ProvisioningでMicrosoft SQL Serverのデータベースミラーリングをサポートするには、データベースを 監視付きの高い安全性モード(同期) で構成する必要があります。

データベースのミラーリングの構成および使用方法について詳しくは、「データベースのミラーリング」を参照してください。

データベースのクラスタリングの実装

データベースのクラスタリングを実装するには:

  1. Microsoftの指示に従います。
  2. Citrix Provisioning構成ウィザードを実行します。
  3. 可用性グループリスナーをデータベースサーバーとして指定します。インスタンスは使用されません。
  4. 接続オプションで複数サブネットフェールオーバーを有効にします。

サポートされる認証の種類

この表は、Citrix Provisioningがデータベースでどのように認証するか、および認証時に使用する資格情報を決定するのに役立ちます。

認証の種類 アクセス権の付与 必要な資格情報 データベースプラットフォーム その他の制限
統合Active Directory Active Directoryユーザー。既存のユーザー名を使用しない場合は、Active Directoryにユーザー名を作成します。 何もない(現在のログインコンテキストを使用します) SQL Server Citrix Provisioningサーバーはドメインに属している必要があり、Citrix Provisioning Serviceユーザーコンテキストはドメインユーザーである必要があり、ドメインユーザーがCitrix Provisioningを構成する必要があります。
SQL Server SQLログイン。既存のログインを使用しない場合は、データベースサーバーにSQLログインを作成します。 ログインとパスワード SQL ServerとAzure SQL Database  

注:

Azure上のCitrix Provisioningでサポートされている認証の種類については、「Microsoft AzureでのCitrix Provisioning」の記事で「サポートされる認証の種類」を参照してください。

認証の構成

Citrix Provisioningは、統合Active Directory認証またはSQL Server認証を使用してデータベースにアクセスできます。

構成ウィザードのユーザーアクセス許可

構成ウィザードを実行するには、ローカル管理者のシステム権限が必要です。

管理者データベースプリンシパルは、構成ウィザードがProvisioningデータベースを作成およびセットアップするために使用するデータベースプリンシパルです。 構成ウィザードで指定する認証資格情報は、データベースプリンシパルを特定します。

  • Active Directory統合認証を選択した場合、構成ウィザードは、構成ウィザードを実行しているユーザー(Active Directoryユーザー)としてデータベースにアクセスします。
  • SQL Server認証を選択した場合、構成ウィザードは別のプリンシパルとしてデータベースにアクセスします。

管理者データベースプリンシパルの選択について詳しくは、「サポートされる認証の種類」を参照してください。

注:

データベース管理者プリンシパルは、構成ウィザードの実行中にのみ使用されます。保存されず、StreamおよびSOAP Serviceによって使用されません。StreamおよびSOAP Serviceに対して、昇格された特権を持つプリンシパルを使用する必要があります。

  • SQL Serverを使用する場合、管理者データベースプリンシパルには次のアクセス権限が必要です:

    • securityadmin:サーバーログインの作成と更新用(SQL Serverを使用する場合)
    • db_owner:既存のデータベース用

新しいファームのデータベースを作成するには、管理者データベースプリンシパルに追加の権限としてdbcreatorが必要です。データベースを作成するさまざまな方法については、「Microsoft SQLデータベースの選択と構成 」を参照してください。

  • Azure SQL Databaseを使用する場合、管理者データベースプリンシパルには次のアクセス権限が必要です:

    • loginmanager:サーバーログインの作成と更新用
    • db_owner:既存のデータベース用

    新しいファームのデータベースを作成するには、管理者データベースプリンシパルに追加の権限としてdbmanagerが必要です。

    loginmanagerdbmanagerは、マスターデータベースのユーザーに割り当てられる特別なユーザー役割です。

サービスアカウントの権限

StreamおよびSOAP Serviceのサービスアカウントには、次のシステム権限が必要です:

  • サービスとして実行する
  • レジストリの読み取りアクセス
  • Program Files\Citrix\Citrix Provisioningへのアクセス
  • すべての仮想ディスクの場所への読み取りおよび書き込みアクセス。

サービスデータベースプリンシパルは、サービスがProvisioningデータベースにアクセスするために使用するデータベースプリンシパルです。構成ウィザードで指定する認証資格情報は、データベースプリンシパルを特定します。

  • Active Directory統合認証を選択した場合、サービスは、サービスアカウント(Active Directoryユーザー)としてデータベースにアクセスします。
  • SQL Server認証を選択した場合、サービスは別のプリンシパルとしてデータベースにアクセスできます。

サービスデータベースプリンシパルの選択について詳しくは、「サポートされる認証の種類」を参照してください。

構成ウィザードは、サービスデータベースプリンシパルが以下の権限を持つようにデータベースを構成します:

  • db_datareader
  • db_datawriter
  • ストアドプロシージャの実行権限

Stream ProcessおよびSOAP Serverを実行するアカウントを、以下のアカウントから選択します。

  • Network Serviceアカウント

    最小限の特権を持つローカルアカウントで、ドメインコンピューターアカウントとしてネットワーク上で認証を受けるアカウントです。

  • 指定ユーザーアカウント(Windows共有を使用する場合に必要)で、ワークグループまたはドメインのユーザーアカウントにできます。

Citrix Provisioningでキーマネージメントサーバーライセンスをサポートするには、SOAP ServerのユーザーアカウントがローカルのAdministratorsグループのメンバーである必要があります。

ヒント:

ワークグループ環境では認証はあまり使用されないため、最小限の特権を持つユーザーアカウントを各サーバーに作成し、各インスタンスで資格情報を同一にする必要があります。

このファームで使用する適切なセキュリティオプションを決定します。ファームごとに選択できるオプションは1つのみであり、ここで選択したオプションは役割に基づく管理機能に反映されます。セキュリティのオプションには以下があります:

  • セキュリティ保護にActive Directoryグループを使用する(デフォルト):Active Directoryが動作するWindowsドメインにインストールする場合はこのオプションをクリックします。このオプションでは、Citrix Provisioningの管理役割の割り当てにActive Directoryを利用できます。

    注:

    Windows 2000のドメインはサポートされません。

  • セキュリティ保護にWindowsグループを使用する。単一のサーバーまたはワークグループにインストールする場合はこのオプションをクリックします。このオプションでは、Citrix Provisioningの管理役割の割り当てに特定サーバー上のローカルユーザーまたはグループを利用できます。

コンソールユーザーは直接データベースにアクセスしません。

その他のプロビジョニング機能に必要な最小限の権限は、次のとおりです:

  • Citrix Virtual Apps and Desktopsインストールウィザード、ストリーム配信仮想マシンセットアップウィザード、およびImageUpdateサービス
    • vCenter、SCVMM、およびXenServer(旧称Citrix Hypervisor)の最小限の権限
    • 既存のCitrix Virtual Apps and Desktops Controllerの現在のユーザーの権限
    • Citrix ProvisioningコンソールのユーザーアカウントがCitrix Virtual Apps and Desktops管理者として構成されていて、Provisioning SiteAdminまたはそれより上位のグループに追加されている
    • コンソールでアカウントを作成するActive Directory作成アカウント権限。既存のアカウントを使用するには、選択する既知の組織単位にActive Directoryアカウントが存在している必要があります。
  • ADアカウント同期:作成、リセット、および削除のアクセス許可
  • 仮想ディスク:ボリュームの保守タスクを実行する特権

注:

サービスアカウントに特別なAD権限は必要ありません。

SQL Serverでのリモート接続の有効化

このセクションを参考に、SQL Serverへのリモート接続を確立します。

  1. SQL Server Management Studioを使用してSQL Serverにログインします。
  2. オブジェクトエクスプローラーウィンドウで、SQL Serverを右クリックし、[プロパティ] を選択します。

    MS SQL Serverオブジェクトエクスプローラー

  3. オブジェクトエクスプローラーウィンドウで、[接続] ノードを選択します。[リモートサーバー接続] で、[このサーバーへのリモート接続を許可する] チェックボックスをオンまたはオフにします。

MS SQL Serverの接続

リモートサーバー接続を更新した後、次の手順を実行します:

  1. [スタート] メニューで 、[スタート]>[Microsoft SQL Server_バージョン_]>[SQL Server_バージョン_Configuration Manager] の順にクリックします。[SQL Server Configuration Manager] ウィンドウが表示されます。
  2. [SQL Serverネットワーク構成] オプションを展開します。[(サーバー名)のプロトコル] を選択します。[TCP/IP] を選択して右クリックします。コンテキストメニューで、[有効化] を選択します。 [OK] をクリックしてサービスを再起動します。

MS SQL Server TCP/IP

サービスを再起動した後、開始モードを変更します。[SQL Server Configuration Manager] ウィンドウで、次の手順を実行します:

  1. [SQL Serverのサービス] を選択します。右側のウィンドウで、[SQL Server Browser] オプションを右クリックしてコンテキストメニューを表示します。
  2. [プロパティ] を選択します。
  3. [サービス] タブで、[開始モード][自動] に変更します。
  4. [OK] をクリックします。

MS SQL Server Browserのプロパティ

  1. [SQL Server Browser] を選択して右クリックし、コンテキストメニューを開きます。[開始] をクリックします。
  2. インスタンスに対応するSQL Serverサービスを選択し、右クリックしてコンテキストメニューを開きます。[再起動] をクリックします。

WindowsファイアウォールでのSQL Serverの例外の作成

このセクションを参考に、Windowsファイアウォールを使用する環境でSQL Serverの例外を作成します:

  1. コントロールパネルを開き、[システムとセキュリティ] を選択します。
  2. [Windows Defenderファイアウォール] を選択します。

    MS SQL Server Windows Defenderファイアウォール

  3. [Windows Defenderファイアウォールを介したアプリまたは機能を許可] をクリックします。Windowsファイアウォールをオンにします。

    MS SQL ServerでWindows Defenderファイアウォールを有効にします

  4. [アプリにWindows Defenderファイアウォール経由の通信を許可する] ウィンドウで、[別のアプリの許可] をクリックします。

    MS SQL Serverはファイアウォールアプリを許可します

  5. [アプリの追加] 画面で、[参照] をクリックします。
  6. SQLサービスsqlserver.exeを選択し、[開く] をクリックします。sqlserver.exe へのデフォルトのパスは次のとおりです:

    • SQL 2019 – C:\Program Files\Microsoft SQL Server\MSSQL15.<SQL Instance Name>\MSSQL\Binn
    • SQL 2017 – C:\Program Files\Microsoft SQL Server\MSSQL14.<SQL Instance Name>\MSSQL\Binn
  7. [追加] をクリックします。

MS SQL Serverはファイアウォールアプリを許可します

  1. 手順4〜7を繰り返して、次のアプリを許可します:C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe.
  2. [OK] をクリックします。

ProvisioningサーバーからSQL Serverへのセキュリティで保護された接続の有効化

SQL Server、ライセンスサーバー、およびProvisioningサーバーは、セキュリティで保護された接続を有効にするように構成できます。

このセクションを参考に、SQL Serverへのセキュリティで保護された接続を確立します。

SQL Serverコンピューターで:

  1. SQL Serverのサーバー証明書として使用できる秘密キーを使用してサーバー証明書を取得します。信頼された機関からサーバー証明書を取得するか、自己署名証明書を使用できます。サーバー証明書と秘密キーは、.PFXファイルに含まれている必要があります。共通名は、SQL ServerコンピューターのFQDNである必要があります。
  2. SQL Serverコンピューター上のローカルコンピューター証明書ストアの個人証明書フォルダーに、証明書とキーをインポートします。
  3. SQL Serverに証明書とキーへのアクセスを許可します。
  4. セキュリティで保護された接続を強制するようにSQL Serverを構成するには、次の手順を実行します。
    1. [SQL Server Configuration Manager] を実行します:
    2. 左側ペインから、[SQL Server Network Configuration]>[Protocols for instance] を選択します。
    3. 右クリックし、[Properties] を選択します。
    4. [Flags] タブで、[Force Encryption][Yes] に設定します。
    5. [Certificate] タブで、ドロップダウンリストからサーバー証明書を選択します。この証明書がリストにない場合は、説明どおりにインポートしたかどうかを確認してください。
    6. [OK] をクリックして、インスタンスのSQL Serverサービスを再起動します。

Citrix Provisioningサーバーコンピューターで、以下の操作を実行します:

  1. サーバー証明書を信頼するために必要な証明機関の証明書を展開します。
    1. 証明機関が信頼されていない場合:
      1. 証明機関の証明書を取得します。
      2. その証明書をローカルコンピューターの証明書ストアの信頼されたルート証明機関フォルダーにインポートします。
    2. サーバー証明書が自己署名されている場合:
      1. SQL Serverコンピューターで、証明書を証明書ファイルにのみエクスポートします。
      2. この証明書をCitrix Provisioningサーバーコンピューターにコピーします。
      3. この証明書をローカルコンピューターの証明書ストアの信頼されたルート証明機関フォルダーにインポートします。
  2. 証明書と同じ名前(SQL ServerコンピューターのFQDN)を使用して、SQL Serverに接続するようにProvisioningサーバーを構成します。必要に応じて、構成ウィザードを実行し、ファームに再度参加します。この方法を使用すると、データベースサーバー名を変更できます。

Kerberosセキュリティ

Active Directory環境でSOAP Serviceと通信するとき、Citrix Provisioningコンソール、イメージ作成ウィザード、PowerShellスナップイン、およびMCLIでは、デフォルトでKerberos認証が使用されます。Kerberosアーキテクチャの一部として、サービスはドメインコントローラー(Kerberosキー配布センター)に登録される、つまりSPN(Service Principal Name:サービスプリンシパル名)が作成されます。この登録処理により、SOAP Serviceを実行するアカウントをActive Directoryで識別できるようになるため、この処理は不可欠です。登録処理を実行しないとKerberos認証に失敗し、Citrix ProvisioningはNTLM認証にフォールバックします。

ただし、NTLMは安全ではなく、攻撃に対して脆弱であると考えられています。

構成ウィザードはSOAP ServiceのSPNを作成します。つまり、Kerberosが常に使用されることになります。

構成ウィザードを実行しているアカウントに必要な権限がない場合、SPNの作成が失敗する可能性があります。

この権限の問題の発生を防ぐには、次のいずれかを実行します:

  • アクセス許可を持つ別のアカウントを使用してSPNを作成します。
  • 構成ウィザードを実行するアカウントに権限を割り当てます。

    アカウントの種類 権限
    コンピューターアカウント サービスプリンシパル名への検証された書き込み
    ユーザーアカウント パブリックインフォメーションの書き込み

    権限について詳しくは、DsWriteAccountSpnA関数を参照してください。

インストール前の作業