将 RBAC 角色分配给 Azure 虚拟桌面服务主体
本文内容
多项 Azure 虚拟桌面功能要求将 Azure 基于角色的访问控制 (Azure RBAC) 角色分配给其中一个 Azure 虚拟桌面服务主体。 要求向 Azure 虚拟桌面服务主体分配角色的功能包括:
连接时启动 VM 。
应用附加 (使用已加入 Microsoft Entra ID 的 Azure 文件存储和会话主机时)。
根据你注册 Microsoft.DesktopVirtualization 资源提供程序的时间,服务主体名称以 Azure 虚拟桌面 或 Windows 虚拟桌面 开头。 如果使用 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
本文介绍如何使用 Microsoft Azure 门户、Azure CLI 或 Azure PowerShell 将 Azure RBAC 角色分配给正确的 Azure 虚拟桌面服务主体。
先决条件
将角色分配给 Azure 虚拟桌面服务主体之前,需要满足以下先决条件:
向 Azure 虚拟桌面服务主体分配角色
若要将角色分配给 Azure 虚拟桌面服务主体,请选择方案的相关选项卡,并按照步骤进行操作。 在这些示例中,角色分配的范围是 Azure 订阅,但需要使用每项功能所需的范围和角色。
下面介绍了如何使用 Microsoft Azure 门户向 Azure 虚拟桌面服务主体分配角色。
登录 Azure 门户 。
在搜索框中,输入“Microsoft Entra ID”并选择匹配的服务条目。
在“概述”页面的“搜索租户 ”搜索框中,输入要从前面表中分配的服务主体的应用程序 ID。
在结果中,为要分配的服务主体选择匹配的企业应用程序,启动 Azure 虚拟桌面 或 Windows 虚拟桌面 。
在“属性”下,记下“名称 ”和“对象 ID ”。 对象 ID 与应用程序 ID 相关,并且对租户是唯一的。
在搜索框中,输入“订阅 ”并选择匹配的服务条目。
选择要将角色分配添加到的订阅。
选择“访问控制(IAM) ”,然后依次选择“+ 添加 ”和“添加角色分配 ”。
选择要分配给 Azure 虚拟桌面服务主体的角色,然后选择“下一步 ”。
确保将“将访问权限分配到”设置为“Azure AD 用户、组或服务主体”,然后选中“选择成员”。
输入之前记下的企业应用程序的名称。
从结果中选择匹配的条目,然后选择“选择 ”。 如果有两个具有相同名称的条目,请暂时将它们都选中。
查看表中的成员列表。 如果有两个条目,请删除与之前记下的对象 ID 不匹配的条目。
选择“下一步 ”,然后选择“查看 + 分配 ”以完成角色分配。
下面介绍了如何使用 Az.DesktopVirtualization PowerShell 模块向 Azure 虚拟桌面服务主体分配角色。 请务必将 <placeholder>
值更改为你自己的值。
在本地设备上运行 PowerShell。
通过使用以下命令列出所有可用的 ID,找到你想要向其添加角色分配的订阅的 ID:
Get-AzSubscription
运行以下命令,将此示例中的订阅 ID 替换为你自己的值,从而将订阅 ID 存储在变量中:
$subId = "<SubscriptionID>"
通过运行以下命令将角色分配给 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 的 desktopvirtualization 扩展向 Azure 虚拟桌面服务主体分配角色。
在本地设备上运行 Azure CLI。
通过使用以下命令列出所有可用的 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 内置角色 。