Azure 虚拟桌面支持为 Azure 资源的托管标识分配权限,以便需要对 Azure 订阅中的虚拟机、密钥保管库和虚拟网络执行 Azure 资源管理器 (ARM) 作。 以下功能可以使用托管标识:
某些 Azure 虚拟桌面功能无法使用托管标识。 需要使用 Azure 虚拟桌面服务主体方法将Microsoft Entra角色的 Azure RBAC 角色分配给服务主体的功能包括:
使用托管标识时,有两个选项:
详细了解 系统分配的托管标识和用户分配的托管标识之间的差异。
先决条件
若要创建系统分配的托管标识并将其分配给主机池,需要:
创建和分配系统分配的托管标识
选择方案的相关选项卡。
下面介绍如何使用 Azure 门户创建系统分配的托管标识:
登录 Azure 门户。
在搜索栏中,输入 Azure 虚拟桌面 并选择匹配的服务条目
选择“ 主机池”,然后选择要配置的主机池的名称。
选择“ 标识 (预览”) 。
选择“ 分配托管标识 ”,以便选中该框,然后选择“ 系统分配的托管标识”。
选择“ 保存 ”以创建并分配系统分配的托管标识。
下面介绍如何使用 Azure PowerShell 创建系统分配的托管标识。 请务必更改 <placeholder> 自己的值。
使用 PowerShell 终端类型在Azure 门户中打开 Azure Cloud Shell,或在本地设备上运行 PowerShell。
获取主机池的当前值:
$parameters = @{
Name = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
}
$existingHostPool = Get-AzWvdHostPool @parameters
New-AzWvdHostPool使用相同的信息运行命令,仅将 更改为IdentityType“SystemAssigned”。 由于此主机池已存在,因此此命令仅更改 IdentityType 属性:
$parameters = @{
Name = $existingHostPool.Name
ResourceGroupName = $existingHostPool.ResourceGroupName
Location = $existingHostPool.Location
HostPoolType = $existingHostPool.HostPoolType
LoadBalancerType = $existingHostPool.LoadBalancerType
PreferredAppGroupType = $existingHostPool.PreferredAppGroupType
IdentityType = 'SystemAssigned'
}
New-AzWvdHostPool @parameters
若要检查更改,请运行以下命令:
$parameters = @{
Name = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
}
Get-AzWvdHostPool @parameters | Format-Table Name, IdentityType
输出应类似于以下示例:
Name IdentityType
----------- ----------------
contosohp01 SystemAssigned
先决条件
若要将用户分配的托管标识分配给主机池,需要:
分配用户分配的托管标识
选择方案的相关选项卡。
下面介绍如何使用 Azure 门户分配用户分配的托管标识:
登录 Azure 门户。
在搜索栏中,输入 Azure 虚拟桌面 并选择匹配的服务条目
选择“ 主机池”,然后选择要配置的主机池的名称。
选择“ 标识 (预览”) 。
选择“ 分配托管标识” ,以便选中该框,然后选择“ 用户分配的托管标识”。
对于 “订阅”,请从下拉菜单中选择相应的订阅。
对于 “现有用户分配的托管标识”,请从下拉菜单中选择适当的托管标识。
选择“ 保存” 以应用新的托管标识。
下面介绍如何使用 Azure PowerShell 分配用户分配的托管标识。 请务必更改 <placeholder> 自己的值。
使用 PowerShell 终端类型在Azure 门户中打开 Azure Cloud Shell,或在本地设备上运行 PowerShell。
获取主机池的当前值:
$parameters = @{
Name = '<HostPoolName>'
ResourceGroupName = '<HostPoolResourceGroupName>'
}
$existingHostPool = Get-AzWvdHostPool @parameters
获取要分配给主机池的托管标识对象:
$parameters = @{
Name = '<ManagedIdentityName>'
ResourceGroupName = '<ManagedIdentityResourceGroupName>'
}
$managedIdentity = Get-AzUserAssignedIdentity @parameters
New-AzWvdHostPool使用相同的信息运行命令,仅将 更改为IdentityType“SystemAssigned”。 由于此主机池已存在,因此此命令仅更改 IdentityType 属性:
$parameters = @{
Name = $existingHostPool.Name
ResourceGroupName = $existingHostPool.ResourceGroupName
Location = $existingHostPool.Location
HostPoolType = $existingHostPool.HostPoolType
LoadBalancerType = $existingHostPool.LoadBalancerType
PreferredAppGroupType = $existingHostPool.PreferredAppGroupType
IdentityType = 'UserAssigned'
IdentityUserAssignedIdentity = @{$managedIdentity.Id = @{}}
}
New-AzWvdHostPool @parameters
若要检查更改,请运行以下命令:
$parameters = @{
Name = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
}
Get-AzWvdHostPool @parameters | Format-Table Name, IdentityType, IdentityUserAssignedIdentity
输出应类似于以下示例:
Name IdentityType IdentityUserAssignedIdentity
----------- ---------------- ----------------------------
contosohp01 UserAssigned {...
删除托管标识
从主机池中删除托管标识的行为略有不同,具体取决于托管标识的标识类型:
-
系统分配:完成删除后,Azure 会自动删除托管标识和所有关联的元数据。
-
用户分配:完成删除后,Azure 会删除主机池与托管标识之间的关联,但不进行任何其他更改。 例如,它不会更改分配给托管标识的任何权限。
重要
从 2025 年 11 月 1 日起, 使用会话主机配置配置的主机池将需要托管标识才能将会话主机添加到主机池。 这取代了对 Azure 虚拟桌面服务主体的依赖,并允许更安全的配置。 详细了解如何将 托管标识与 Azure 虚拟桌面主机池配合使用。
选择方案的相关选项卡。
下面介绍如何使用 Azure 门户删除托管标识:
登录 Azure 门户。
在搜索栏中,输入 Azure 虚拟桌面 并选择匹配的服务条目
选择“ 主机池”,然后选择要配置的主机池的名称。
选择“ 标识 (预览”) 。
选择“ 分配托管标识” ,以便取消选中该框。
选择“ 保存 ”以完成托管标识的删除。
下面介绍如何使用 Azure PowerShell 删除托管标识。 请务必更改 <placeholder> 自己的值。
使用 PowerShell 终端类型在Azure 门户中打开 Azure Cloud Shell,或在本地设备上运行 PowerShell。
获取主机池的当前值:
$parameters = @{
Name = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
}
$existingHostPool = Get-AzWvdHostPool @parameters
New-AzWvdHostPool使用相同的信息运行命令,仅将 更改为IdentityType“None”。 由于此主机池已存在,因此此命令仅更改 IdentityType 属性:
$parameters = @{
Name = $existingHostPool.Name
ResourceGroupName = $existingHostPool.ResourceGroupName
Location = $existingHostPool.Location
HostPoolType = $existingHostPool.HostPoolType
LoadBalancerType = $existingHostPool.LoadBalancerType
PreferredAppGroupType = $existingHostPool.PreferredAppGroupType
IdentityType = 'None'
}
New-AzWvdHostPool @parameters
若要检查更改,请运行以下命令:
$parameters = @{
Name = '<HostPoolName>'
ResourceGroupName = '<ResourceGroupName>'
}
Get-AzWvdHostPool @parameters | Format-Table Name, IdentityType
输出应类似于以下示例:
Name IdentityType
----------- ----------------
contosohp01 None
相关内容