Azure Virtual Desktop サービス プリンシパルに RBAC ロールを割り当てる
[アーティクル] 12/09/2023
3 人の共同作成者
フィードバック
この記事の内容
いくつかの Azure Virtual Desktop 機能では、Azure ロールベースのアクセス制御 (Azure RBAC) ロールを Azure Virtual Desktop サービス プリンシパルのいずれかに割り当てる必要があります。 Azure Virtual Desktop サービス プリンシパルにロールを割り当てる必要がある機能は次のとおりです。
自動スケール。
接続 時に VM を起動します。
アプリのアタッチ (Azure Files と、Microsoft Entra ID に参加しているセッション ホストを使用する場合)。
ヒント
各機能の記事で、どのサービス プリンシパルに割り当てる必要があるロールを見つけることができます。 Azure Virtual Desktop 専用に使用可能なすべてのロールの一覧については、Azure Virtual Desktop の組み込みの Azure RBAC ロールに関するページを参照してください。Azure RBAC の詳細については、Azure RBAC のドキュメントを参照してください 。
Microsoft.DesktopVirtualization リソース プロバイダーを 登録したタイミングに応じて、サービス プリンシパル名は Azure Virtual Desktop または Windows Virtual Desktop で 始まります。 Azure Virtual Desktop クラシックと Azure Virtual Desktop (Azure Resource Manager) の両方を使用した場合は、同じ名前のアプリが表示されます。 適切なサービス プリンシパルにロールを割り当てるには、そのアプリケーション ID をチェックします。 各サービス プリンシパルのアプリケーション ID を次の表に示します。
サービス プリンシパル
アプリケーション ID
Azure Virtual Desktop Windows Virtual Desktop
9cdead84-a844-4324-93f2-b2e6bb768d07
Azure Virtual Desktop Client Windows Virtual Desktop Client
a85cf173-4192-42f8-81fa-777a763e6e2c
Azure Virtual Desktop ARM Provider Windows Virtual Desktop ARM Provider
50e95039-b200-4007-bc97-8d5790743a63
この記事では、Azure portal、Azure CLI、または Azure PowerShell を使用して、適切な Azure Virtual Desktop サービス プリンシパルにロールを割り当てる方法について説明します。
前提条件
Azure Virtual Desktop サービス プリンシパルにロールを割り当てる前に、次の前提条件を満たす必要があります。
Azure Virtual Desktop サービス プリンシパルにロールを割り当てる
Azure Virtual Desktop サービス プリンシパルにロールを割り当てるには、シナリオに関連するタブを選択し、手順に従います。 これらの例では、ロールの割り当てのスコープは Azure サブスクリプションですが、各機能で必要なスコープとロールを使用する必要があります。
Azure portal を使用して Azure Virtual Desktop サービス プリンシパルにロールを割り当てる方法を次に示します。
Azure portal にサインインします。
検索ボックスに「Microsoft Entra ID 」と入力し、一致するサービス エントリを選択します。
[概要] ページの [テナントの検索] の検索ボックス に、前の表から割り当てるサービス プリンシパルのアプリケーション ID を入力します。
結果で、Azure Virtual Desktop または Windows Virtual Desktop を 開始して、割り当てるサービス プリンシパルに対応するエンタープライズ アプリケーションを選択します 。
プロパティで、名前 とオブジェクト ID を記録しておきます。 オブジェクト ID はアプリケーション ID に関連付けられており、テナントに固有です。
検索ボックスに「サブスクリプション」と入力して、一致するサービス エントリを選びます。
ロールの割り当てを追加するサブスクリプションを選びます。
[アクセス制御 (IAM)] 、[+ 追加] 、[ロールの割り当てを追加] の順に選びます。
Azure Virtual Desktop サービス プリンシパルに割り当てるロールを選んだら、[次へ] を選びます。
[アクセスの割り当て先] が [Microsoft Entra のユーザー、グループ、またはサービス プリンシパル] に設定されていることを確認してから、[メンバーの選択] を選びます。
前にメモしたエンタープライズ アプリケーションの名前を入力します。
結果から一致するエントリを選んで、[選択] を選びます。 同じ名前のエントリが 2 つある場合は、現時点で両方を選択します。
テーブルでメンバーの一覧を確認します。 エントリが 2 つある場合は、前に記録したオブジェクト ID と一致しないエントリを削除します。
[次へ] を選んでから、[レビューと割り当て] を選んでロールの割り当てを完了します。
Az.DesktopVirtualization PowerShell モジュールを使用して、Azure Virtual Desktop サービス プリンシパルにロールを 割り当てる方法を次に示します。
PowerShell ターミナルの種類を指定して、Azure portal で Azure Cloud Shell を起動するか、ローカル デバイスで Azure CLI を実行します。
Cloud Shell を使用している場合は、使用するサブスクリプションに Azure コンテキストが設定されている ことを確認します。
Azure PowerShell をローカルで使用している場合は、まず Azure PowerShell でサインイン してから、使用するサブスクリプションに Azure コンテキストが設定されている ことを確認します。
次のコマンドを実行して使用できるすべてのサブスクリプションの一覧を表示し、ロールの割り当てを追加するものの ID を見つけます。
Get-AzSubscription
次のコマンドを実行してサブスクリプション ID を変数に格納し、この例のサブスクリプション ID を実際のサブスクリプション ID に置き換えます。
$subId = "00000000-0000-0000-0000-000000000000"
次のコマンドを実行して、Azure Virtual Desktop サービス プリンシパルにロールを割り当てます。パラメーターの値 RoleDefinitionName
は、割り当てる必要があるロールの名前に置き換え、 ApplicationId
パラメーターは前の表から割り当てるサービス プリンシパルのアプリケーション ID に置き換えます。 この例では、サブスクリプションの Azure Virtual Desktop サービス プリンシパルに Desktop Virtualization Power On Off 共同作成者 ロールを割り当てます。
$parameters = @{
RoleDefinitionName = "Desktop Virtualization Power On Off Contributor"
ApplicationId = "9cdead84-a844-4324-93f2-b2e6bb768d07"
Scope = "/subscriptions/$subId"
}
New-AzRoleAssignment @parameters
次の例のような出力になる必要があります。
RoleAssignmentName : c5221262-d1fa-4d32-9d60-8bd86f618d20
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c5221262-d1fa-4d32-9d60-8bd86f618d20
Scope : /subscriptions/00000000-0000-0000-0000-000000000000
DisplayName : Azure Virtual Desktop
SignInName :
RoleDefinitionName : Desktop Virtualization Power On Off Contributor
RoleDefinitionId : 40c5ff49-9181-41f8-ae61-143b0e78555e
ObjectId : 00000000-0000-0000-0000-000000000000
ObjectType : ServicePrincipal
CanDelegate : False
Description :
ConditionVersion :
Condition :
Azure CLI のデスクトップ仮想化拡張機能を使用して、Azure Virtual Desktop サービス プリンシパルに ロールを割り当てる方法を次に示します。
Bash ターミナルの種類を指定して、Azure portal で Azure Cloud Shell を起動するか、ローカル デバイスで Azure CLI を実行します。
Cloud Shell を使用している場合は、使用するサブスクリプションに Azure コンテキストが設定されている ことを確認します。
Azure CLI をローカルで使用している場合は、まず Azure CLI でサインイン してから、使用するサブスクリプションに Azure コンテキストが設定されている ことを確認します。
次のコマンドを実行して使用できるすべてのサブスクリプションの一覧を表示し、ロールの割り当てを追加するものの ID を見つけます。
az account list --output table
次のコマンドを実行して SubscriptionId の値を変数に格納し、この例のサブスクリプション ID を実際のサブスクリプション ID に置き換えます。
subId=00000000-0000-0000-0000-000000000000
次のコマンドを実行して、Azure Virtual Desktop サービス プリンシパルにロールを割り当てます。パラメーターの値 role
は、割り当てる必要があるロールの名前に置き換え、 assignee
パラメーターは前の表から割り当てるサービス プリンシパルのアプリケーション ID に置き換えます。 この例では、サブスクリプションの Azure Virtual Desktop サービス プリンシパルに Desktop Virtualization Power On Off 共同作成者 ロールを割り当てます。
az role assignment create \
--assignee "9cdead84-a844-4324-93f2-b2e6bb768d07" \
--role "Desktop Virtualization Power On Off Contributor" \
--scope "/subscriptions/$subId"
次の例のような出力になる必要があります。
{
"condition": null,
"conditionVersion": null,
"createdBy": null,
"createdOn": "2023-06-22T13:50:22.978226+00:00",
"delegatedManagedIdentityResourceId": null,
"description": null,
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/a211100e-aa52-4f8d-aac9-ad0833f969d0",
"name": "a211100e-aa52-4f8d-aac9-ad0833f969d0",
"principalId": "00000000-0000-0000-0000-000000000000",
"principalType": "ServicePrincipal",
"roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/40c5ff49-9181-41f8-ae61-143b0e78555e",
"scope": "/subscriptions/00000000-0000-0000-0000-000000000000",
"type": "Microsoft.Authorization/roleAssignments",
"updatedBy": "effe20b0-5afb-4e68-a5d7-f8ef9873a070",
"updatedOn": "2023-06-22T13:50:23.335229+00:00"
}
次のステップ
Azure Virtual Desktop の組み込み Azure RBAC ロール の詳細を理解します。