Horizon Cloud Service on Microsoft Azure デプロイの場合、サービスは API 呼び出しを使用してポッドを Microsoft Azure サブスクリプションにデプロイし、そのポッドとポッドがプロビジョニングされた VDI デスクトップおよびファームを管理します。Horizon Cloud がポッドのサブスクリプションで API 呼び出しを使用できるようにするには、アプリケーション登録を作成します。

簡単な紹介

ポッドの初期デプロイの場合、ポッド デプロイヤは、ポッドに使用するように選択した Microsoft Azure サブスクリプションの API を呼び出します。これらの API 呼び出しは、ポッドのサブスクリプションでアクションを実行して、ポッド マネージャ仮想マシン、仮想マシンの NIC、これらの NICS のネットワーク セキュリティ グループ (NSG) などのアイテムを作成します。これらのリソースは、Horizon Cloud ポッドが必要とするすべてのリソースです。

その後、ポッドのデプロイ後も、Horizon Cloud がポッドのサブスクリプションで API を引き続き呼び出すことができるようにする必要があります。ポッドのデプロイ後、サービスは API 呼び出しを使用して、ゴールド イメージの基本イメージ仮想マシンの作成、ゴールド イメージでの Sysprep の実行、ファーム ホストと VDI デスクトップ仮想マシンの作成、ポッドのゲートウェイ構成の追加と編集、およびポッドのメンテナンスとアップグレードを行います。

ポッド デプロイヤを実行する前にアプリケーション登録を作成する

ポッドのサブスクリプション内にポッドのリソースをプログラムで作成するために、ポッドのデプロイ プロセスでポッド デプロイヤが API を呼び出す必要があるため、デプロイ ウィザードを開始する前に、アプリケーション登録とクライアント プライベート キーが存在している必要があります。アプリケーションの登録を作成すると、ポッドのサブスクリプションにサービス プリンシパル オブジェクトが自動的に作成されます。

クライアント プライベート キーは、Azure ポータルで生成し、ロールをポッドのサブスクリプションのレベルで動作するように Horizon Cloud アプリケーションの登録に割り当てる必要があります。

外部 Unified Access Gateway 構成がポッドのサブスクリプションとは別に、独自のサブスクリプションでデプロイされる機能を使用する場合、Horizon Cloud は、ウィザードを実行して外部ゲートウェイをデプロイするときに、そのサブスクリプションで API を呼び出す機能も備えている必要があります。この場合、そのサブスクリプションには、ポッドのサブスクリプション用に加えて、アプリケーション登録とクライアント プライベート キーが必要です。

アプリケーション登録へのロールの割り当てについて

Horizon Cloud アプリケーションの登録は、ポッドのサブスクリプションにロールを割り当てる必要があります。通常、組み込みの Contributor ロールは、ポッドのサブスクリプションで Horizon Cloud によって使用されるロールです。Contributor ロールが使用される理由は、Horizon Cloud がポッドのサブスクリプション内で実行する必要があるすべての API 呼び出しをカバーするためです。

ロールの割り当ては直接割り当てである必要があります。ロールのグループベースの割り当ての使用(ロールがグループに割り当てられ、アプリケーション登録がそのグループのメンバーとなる)は、現在、サポートされていません。

組織がポッドのサブスクリプションで Contributor ロールの使用を避けたい場合は、Horizon Cloud は代わりにカスタム ロールの使用もサポートします。使用する場合、カスタム ロールは、Horizon Cloud が使用する必要がある特定の API 呼び出しを提供する必要があります。詳細については、このページの下部にあるカスタム ロールセクションを参照してください。

リソース プロバイダの登録

ポッドのサブスクリプションでは、次のリソース プロバイダがすべて Registered ステータスである必要があります。このリストの一部のリソース プロバイダはすでに Registered ステータスになっていますが、他のプロバイダはそうなっていません。これは、標準の Microsoft Azure の動作の結果であり、通常はすべての Azure サブスクリプションに対して登録されたリソース プロバイダのセットがあります。

ポッド デプロイ ウィザードを実行する前に、これらのリストされたリソース プロバイダのステータスが Registered であることを確認します。ウィザードの最後の手順で、これらのリソース プロバイダのステータスが Registered であることを検証し、ポッドのデプロイが登録解除されている場合はポッドのデプロイを開始できなくなります。

  • Microsoft.Compute
  • microsoft.insights
  • Microsoft.Network
  • Microsoft.Storage
  • Microsoft.KeyVault
  • Microsoft.Authorization
  • Microsoft.Resources
  • Microsoft.ResourceHealth
  • Microsoft.ResourceGraph
  • Microsoft.Security
  • Microsoft.DBforPostgreSQL
  • Microsoft.Sql
  • Microsoft.MarketplaceOrdering

次のスクリーンショットは、Azure ポータルで [登録済み] ステータスと未登録ステータスを確認する例を示しています。


未登録(緑色の矢印)が表示されている [リソース プロバイダ] 画面。

ポッドのサブスクリプションでリソース プロバイダを確認するには、次の手順を実行します。

  1. Azure ポータルにログインし、ポッドのデプロイ先となるサブスクリプションを検索します。
  2. サブスクリプション名をクリックし、[サブスクリプション設定] メニューのリソース プロバイダ メニューの選択肢[リソース プロバイダ])が表示されるまで下にスクロールします。
  3. 上記のリストでリソース プロバイダを探し、それぞれが Azure ポータルでのリソース プロバイダの [登録済み] ステータスのアイコン[登録済み])ステータスを示していることを確認します。

    上記のリストから提供された NotRegistered と表示されるリソースについては、ポータルを使用して登録してください。

Horizon Cloud アプリケーション登録の作成

登録アカウントに応じた Microsoft Azure ポータルを使用して、次の手順を行います。たとえば、これらの Microsoft Azure クラウドのための特定のポータル エンドポイントがあります。

  • Microsoft Azure Commercial(標準グローバル地域)
  • Microsoft Azure China
  • Microsoft Azure US Government

外部ゲートウェイがポッドとは別に独自のサブスクリプションを使用する Horizon Cloud 機能を使用する場合は、そのサブスクリプションの手順を繰り返して、アプリケーションを登録します。

Azure ポータルで次の手順をすべて完了するには、ポータル ログインにアプリケーション登録を作成し、ポッドをデプロイする予定のサブスクリプションでそのアプリケーション登録にロールを割り当てるための十分な権限が必要です。そのサブスクリプションの所有者または管理者でない場合は、アプリケーション登録を作成し、そのアプリケーション登録にロールを割り当てるために必要な権限があるかどうかを、所有者または管理者のいずれかに確認します。

  1. アプリケーションを登録できる認証情報を使用して Microsoft Azure ポータルにログインします。
  2. ポータルの検索バーで App registrations を検索し、結果リストに表示されたら [アプリケーション登録] をクリックします。
    Azure ポータルでアプリケーション登録という単語を検索し、結果に表示されることを示すスクリーンショット

    ポータルに [アプリケーション登録] ページが表示されます。

  3. [アプリケーション登録] ページで、[新規登録] をクリックします。
    Azure ポータルの [アプリケーション登録] ページで [新規登録] アクションの場所を示すスクリーンショット
  4. この登録が Horizon Cloud で使用されることを思い出させる表示名を入力します。
  5. [この組織ディレクトリにのみ含まれるアカウント] を選択します。
  6. オプションの [リダイレクト URI] セクションをデフォルトの空の状態のままにします。
  7. [登録] ボタンをクリックして、アプリケーション登録の作成を完了します。

    新しく作成されたアプリ登録が画面に表示されます。

  8. アプリケーション ID とディレクトリ ID をコピーし、デプロイ ウィザードの実行中に参照できる場所に保存します。次のスクリーンショットは、Hzn-Cloud-Principal という名前のアプリケーション登録と、アプリケーション ID とディレクトリ ID が表示される場所を指す緑色の矢印を示しています。
    サービス プリンシパルの詳細画面。矢印はアプリケーション ID を指しています。

  9. 次に、アプリケーション登録のクライアント プライベート キーを作成します。
    1. 上記のスクリーンショットで、Microsoft Azure ポータルの証明書とシークレット メニュー項目が表示される場所を参照してください。Azure ポータルの新しく作成した [アプリケーション登録] ページで、[証明書とシークレット] をクリックします。
    2. [新しいクライアントのシークレット] をクリックします。
    3. 次のスクリーンショットに示すように、ポータルには [クライアント シークレットの追加] 画面が表示されます。説明を入力して有効期限を選択し、[追加] をクリックします。キーの説明は 16 文字以下にしてください。たとえば、Hzn-Cloud-Key1 と入力します。
      無期限の新しいキーが追加された [キー] 画面

      重要: シークレット値をコピーし、後で参照可能な場所に貼り付けるまでは、この画面を開いたままにします。

      [クライアント シークレット] 画面で値がモザイク処理された認証キー

    4. デプロイ ウィザードの実行中に参照できる場所にシークレット値をコピーします。ウィザードには、この値を貼り付けるフィールドがあります。
  10. Horizon Cloud アプリケーション登録にロール割り当てを追加します。サブスクリプション レベルでロールを割り当てます。
    1. Microsoft Azure ポータルのメイン ナビゲーション バーで [すべてのサービス] をクリックし、[サブスクリプション] をクリックしてから、ポッド デプロイヤでポッドをデプロイする予定のサブスクリプションの名前をクリックして、サブスクリプションの設定画面に移動します。
      注: ここで、画面に表示されたサブスクリプション ID をメモできます。この ID は、デプロイ ウィザードで必要になります。

      Azure ポータルに表示されたサブスクリプションの詳細。緑色の矢印の部分 ID。ぼかしが付いて、値は見えなくなっています。

    2. [アクセス制御 (IAM)] メニュー項目[アクセス制御 (IAM)])をクリックして、[追加] > [ロール割り当てを追加] の順にクリックし、[ロール割り当てを追加] 画面を開きます。
    3. [ロールの割り当ての追加] 画面の [ロール]Contributor ロールを選択します。

      組織が Horizon Cloud にカスタム ロールを使用することを望んでいる場合は、この目的のために組織がセットアップしたカスタム ロールを選択します。

    4. [アクセス権の割り当て先] ドロップダウン リストで、[Azure Active Directory ユーザー、グループ、またはアプリケーション] を選択します。
    5. [選択] ボックスを使用して、Horizon Cloud アプリケーション登録の名前を検索します。次のスクリーンショットは、この手順を示しています。
      Azure ポータルの [権限の追加] 画面のスクリーンショット。所有者の役割が選択されていて、サービス プリンシパルの検索が行われています。

    6. 作成した Horizon Cloud アプリケーション登録に付ける名前をクリックして、選択したメンバーにし、[保存] をクリックします。
      [権限の追加] 画面。所有者の役割の選ばれたメンバーとしてサービス プリンシパルが追加されています。

サマリ

この時点で、Horizon Cloud アプリケーション登録を作成および構成し、Horizon Cloud に必要なリソース プロバイダの登録ステータスを確認し、ポッドのデプロイ ウィザードの最初の手順で入力する必要のあるサブスクリプション関連の値を取得しました。4 つのサブスクリプション関連の値は次のとおりです。

  • サブスクリプション ID
  • Azure Active Directory ID
  • アプリケーション ID
  • アプリケーション キーの値
注: Horizon Cloud は、アプリケーション登録のクライアント プライベート キーに設定した有効期限を検出または認識できません。 Horizon Cloud がこのアプリケーション登録を引き続き使用してポッドとそのリソースを管理するために必要な API 呼び出しを行えるようにするには、キーの有効期限が切れる前にキーを更新してから、新しいキーを Horizon Cloud 環境に入力する必要があります。現在、Microsoft Azure ポータルを使用して設定できる最長の有効期限は 2 年です。2 年の終わりにキーの有効期限が切れ、ポッドで使用するためにキーを更新したり、 Horizon Cloud 環境に新しいキー情報を入力したりしていない場合、期限切れのキーに関連付けられているポッドは動作を停止します。Microsoft Azure ポータルのユーザー インターフェイスで許可される 2 年以上の有効期間を持つプライベート キーを作成する場合、Microsoft Azure は現在、PowerShell、Azure CLI、または Graph API を使用してその機能を提供しています。

カスタム ロールと Horizon Cloud アプリケーションの登録

組織がポッドのサブスクリプションで Contributor ロールを使用しないようにする場合は、代わりにカスタム ロールを作成し、そのロールを Horizon Cloud アプリケーション登録に割り当てることができます。Horizon Cloud で必要な API 呼び出しを許可するように、カスタム ロールを構成する必要があります。組織がポッドのサブスクリプションで Contributor ロールを使用しないようにする場合は、組織が Horizon Cloud アプリケーション登録にカスタム ロールを使用することを希望する場合の情報を参照してください。