將 RBAC 角色指派給 Azure 虛擬桌面服務主體
本文內容
有多個 Azure 虛擬桌面功能都需要您將 Azure 角色型存取控制 (Azure RBAC) 角色指派給其中一個 Azure 虛擬桌面服務主體。 需要您將角色指派給 Azure 虛擬桌面服務主體的功能包括:
根據您註冊 Microsoft.DesktopVirtualization 資源提供者的時間,服務主體名稱會以 Azure Virtual Desktop 或 Windows Virtual Desktop 開頭。 如果您使用 Azure 虛擬桌面傳統版和 Azure 虛擬桌面 (Azure Resource Manager),您會看到具有相同名稱的應用程式。 您可以藉由檢查其應用程式識別碼,來確定您將角色指派給正確的服務主體。 下表列出每個服務主體的應用程式識別碼:
服務主體
Application 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 入口網站、Azure CLI 或 Azure PowerShell,將角色指派給正確的 Azure 虛擬桌面服務主體。
必要條件
您必須先符合下列必要條件,才能將角色指派給 Azure 虛擬桌面服務主體:
將角色指派給 Azure 虛擬桌面服務主體
若要將角色指派給 Azure 虛擬桌面服務主體,請為您的案例選取相關的索引標籤並遵循步驟。 在這些範例中,角色指派的範圍是 Azure 訂用帳戶,但您必須使用每項功能所需的範圍和角色。
以下說明如何使用 Azure 入口網站將角色指派給 Azure 虛擬桌面服務主體。
登入 Azure 入口網站 。
在搜尋方塊中,輸入 Microsoft Entra ID ,然後選取相符的服務項目。
在 [概觀] 頁面上的 [搜尋您的租用戶] 搜尋方塊中,輸入先前資料表中您想要指派的服務主體應用程式識別碼。
在結果中,針對您想要指派的服務主體,選取相符的企業應用程式,從 Azure Virtual Desktop 或 Windows Virtual Desktop 開始。
在 [屬性] 底下,記下名稱 和物件識別碼 。 物件識別碼會與應用程式識別碼相互關聯,而且對您的租用戶而言是唯一的。
在搜尋方塊中,輸入訂用帳戶 ,然後選取相符的服務項目。
選取您要對其新增角色指派的訂用帳戶。
選取 [存取控制 (IAM)] ,然後依序選取 [+新增] 和 [新增角色指派] 。
選取您要指派給 Azure 虛擬桌面服務主體的角色,然後選取 [下一步] 。
確定 [存取權指派對象] 已設定為 [Microsoft Entra 使用者、群組或服務主體] ,然後選取 [選取成員] 。
輸入您稍早記下的企業應用程式名稱。
從結果中選取相符的項目,然後選取 [選取] 。 如果您有兩個具有相同名稱的項目,請選取這兩個項目。
檢閱資料表中的成員清單。 如果您有兩個項目,請移除不符合稍早所記下物件識別碼的項目。
選取 [下一步] ,然後選取 [檢閱 + 指派] 以完成角色指派。
以下說明如何使用 Az.DesktopVirtualization PowerShell 模組,將角色指派給 Azure 虛擬桌面服務主體。
使用 PowerShell 終端機類型,在 Azure 入口網站中啟動 Azure Cloud Shell ,或在本機裝置上執行 PowerShell。
如果您使用 Cloud Shell,請確定您的 Azure 內容已設定為您想要使用的訂用帳戶 。
如果您在本機使用 PowerShell,請先 使用 Azure PowerShell 登入 ,然後確認您的 Azure 內容已設定為您想要使用的訂用帳戶 。
使用下列命令列出可用的所有訂用帳戶,以尋找要新增角色指派的訂用帳戶識別碼:
Get-AzSubscription
執行下列命令,將訂用帳戶識別碼儲存在變數中,並將此範例中的訂用帳戶識別碼取代為您自己的訂用帳戶識別碼:
$subId = "00000000-0000-0000-0000-000000000000"
執行下列命令,將角色指派給 Azure 虛擬桌面服務主體,並將 RoleDefinitionName
參數的值取代為您需要指派的角色名稱,並將 ApplicationId
參數取代為先前資料表中您想要指派的服務主體應用程式識別碼。 此範例會將桌面虛擬化開啟/關閉參與者 角色指派給訂用帳戶的 Azure 虛擬桌面 服務主體:
$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 的 desktopvirtualization 延伸模組,將角色指派給 Azure 虛擬桌面服務主體。
使用 Bash 終端機類型,在 Azure 入口網站中啟動 Azure Cloud Shell ,或在本機裝置上執行 Azure CLI。
如果您使用 Cloud Shell,請確定您的 Azure 內容已設定為您想要使用的訂用帳戶 。
如果您在本機使用 Azure CLI,請先使用 Azure CLI 登入 ,然後確認您的 Azure 內容已設定為您想要使用的訂用帳戶 。
使用下列命令列出可用的所有訂用帳戶,以尋找要新增角色指派的訂用帳戶識別碼:
az account list --output table
執行下列命令,將 SubscriptionId 的值儲存在變數中,並將此範例中的訂用帳戶識別碼取代為您自己的訂用帳戶識別碼:
subId=00000000-0000-0000-0000-000000000000
執行下列命令,將角色指派給 Azure 虛擬桌面服務主體,並將 role
參數的值取代為您需要指派的角色名稱,並將 assignee
參數取代為先前資料表中您想要指派的服務主體應用程式識別碼。 此範例會將桌面虛擬化開啟/關閉參與者 角色指派給訂用帳戶的 Azure 虛擬桌面 服務主體:
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 虛擬桌面的內建 Azure RBAC 角色 。