你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn 。
将 RBAC 角色分配给 Azure 虚拟桌面服务主体
本文内容
多个 Azure 虚拟桌面功能要求将 Azure 基于角色的访问控制(Azure RBAC)角色分配给其中一个 Azure 虚拟桌面服务主体。 需要向 Azure 虚拟桌面服务主体分配角色的功能包括:
自动缩放 。
在 连接 上启动 VM。
应用附加 (使用Azure 文件存储和已加入 Microsoft Entra ID 的会话主机时)。
提示
可以在每个功能的文章中找到需要分配给哪个服务主体的角色。 有关特定于 Azure 虚拟桌面的所有可用角色的列表,请参阅 Azure 虚拟桌面 的内置 Azure RBAC 角色,若要详细了解 Azure RBAC,请参阅 Azure RBAC 文档 。
根据注册 Microsoft.DesktopVirtualization 资源提供程序时,服务主体名称以 Azure 虚拟桌面 或 Windows 虚拟桌面 开头。 如果使用了 Azure 虚拟桌面经典版和 Azure 虚拟桌面(Azure 资源管理器),则会看到具有相同名称的应用。 可以通过检查其应用程序 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 门户、Azure CLI 或 Azure PowerShell 将角色分配给正确的 Azure 虚拟桌面服务主体。
先决条件
在将角色分配给 Azure 虚拟桌面服务主体之前,需要满足以下先决条件:
将角色分配给 Azure 虚拟桌面服务主体
若要将角色分配给 Azure 虚拟桌面服务主体,请选择方案的相关选项卡,并按照步骤操作。 在这些示例中,角色分配的范围是 Azure 订阅,但需要使用每个功能所需的范围和角色。
下面介绍如何使用Azure 门户将角色分配给 Azure 虚拟桌面服务主体。
登录 Azure 门户 。
在搜索框中,输入“Microsoft Entra ID”并选择匹配的服务条目。
在“概述”页上,在“搜索租户”的搜索框中 ,输入要从前面的表中分配的服务主体的应用程序 ID。
在结果中,选择要分配的服务主体的匹配企业应用程序,从 Azure 虚拟桌面 或 Windows 虚拟桌面 开始。
在“属性”下,记下“名称 ”和“对象 ID ”。 对象 ID 与应用程序 ID 相关,并且对租户是唯一的。
在搜索框中,输入“订阅 ”并选择匹配的服务条目。
选择要将角色分配添加到的订阅。
选择“访问控制(IAM) ”,然后依次选择“+ 添加 ”和“添加角色分配 ”。
选择要分配给 Azure 虚拟桌面服务主体的角色,然后选择“下一步 ”。
确保将“将访问权限分配到”设置为“Azure AD 用户、组或服务主体”,然后选中“选择成员”。
输入前面记下的企业应用程序的名称。
从结果中选择匹配的条目,然后选择“选择 ”。 如果有两个具有相同名称的条目,请暂时选择两个条目。
查看表中的成员列表。 如果有两个条目,请删除与之前记下的对象 ID 不匹配的条目。
选择“下一步 ”,然后选择“查看 + 分配 ”以完成角色分配。
下面介绍如何使用 Az.DesktopVirtualization PowerShell 模块将角色分配给 Azure 虚拟桌面服务主体。
在 Azure 门户中启动 PowerShell 终端类型的 Azure Cloud Shell ,或在本地设备上运行 PowerShell。
如果使用 Cloud Shell,请确保将 Azure 上下文设置为要使用的订阅 。
如果在本地使用 PowerShell,请先使用 PowerShell 登录 ,然后确保 Azure 上下文设置为要使用的订阅 。
通过使用以下命令列出所有可用的 ID,找到你想要向其添加角色分配的订阅的 ID:
Get-AzSubscription
运行以下命令,将此示例中的订阅 ID 替换为你自己的值,从而将订阅 ID 存储在变量中:
$subId = "00000000-0000-0000-0000-000000000000"
运行以下命令,将角色分配给 Azure 虚拟桌面服务主体,将参数的值 RoleDefinitionName
替换为需要分配的角色的名称,并将 ApplicationId
参数替换为要从前面的表中分配的服务主体的应用程序 ID。 此示例将 桌面虚拟化电源关闭参与者 角色分配给 订阅上的 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 的 桌面虚拟化 扩展将角色分配给 Azure 虚拟桌面服务主体。
在 Azure 门户中启动 Bash 终端类型的 Azure Cloud Shell ,或在本地设备上运行 Azure CLI。
如果使用 Cloud Shell,请确保将 Azure 上下文设置为要使用的订阅 。
如果在本地使用 Azure CLI,请先使用 Azure CLI 登录 ,然后确保 Azure 上下文设置为要使用的订阅 。
通过使用以下命令列出所有可用的 ID,找到你想要向其添加角色分配的订阅的 ID:
az account list --output table
运行以下命令,将此示例中的订阅 ID 替换为你自己的值,从而将 SubscriptionId 的值存储在变量中:
subId=00000000-0000-0000-0000-000000000000
运行以下命令,将角色分配给 Azure 虚拟桌面服务主体,将参数的值 role
替换为需要分配的角色的名称,并将 assignee
参数替换为要从前面的表中分配的服务主体的应用程序 ID。 此示例将 桌面虚拟化电源关闭参与者 角色分配给 订阅上的 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 内置角色 。