为 Azure Bastion 配置Microsoft Entra ID 身份验证

Microsoft Azure Bastion 的 Entra ID 身份验证允许使用组织标识而不是本地虚拟机凭据登录到虚拟机。 使用 Entra ID 身份验证,可以强制实施 多重身份验证(MFA),应用 条件访问策略,并在 Azure 虚拟机中集中管理标识。

注释

在 Microsoft Entra 门户中为 RDP 连接提供的 Entra ID 身份验证处于 公开预览阶段。 Microsoft门户中 SSH 连接的 Entra ID 身份验证 已正式发布

先决条件

在配置 Entra ID 身份验证之前,请验证以下内容:

  • Azure Bastion 主机: 部署在虚拟机所在的虚拟网络或 对等互连虚拟网络中的 Bastion 主机。 最小 SKU 取决于连接方法:

    连接方法 最小 SKU
    Azure 门户(RDP 或 SSH) 基本
    本地客户端 (使用 RDP 和 --enable-mfa) 标准
    原生客户端(使用 SSH 和 --auth-type AAD 标准
  • 支持的操作系统:

    • Windows 虚拟机(RDP): Windows 10 版本 20H2 或更高版本、Windows 11 21H2 或更高版本或 Windows Server 2022 或更高版本。
    • Linux 虚拟机(SSH): 支持 AADSSHLoginForLinux 扩展的任何 Linux 分发版。
  • 本机客户端连接: Azure CLI 2.32 或更高版本。 运行 az extension add --name ssh 以安装 SSH 扩展。 有关设置详细信息,请参阅 为本机客户端连接配置 Bastion

Entra ID 身份验证概述

Entra ID 身份验证支持 RDP 和 SSH 连接。 身份验证流的工作原理如下:

  1. 通过 Azure Bastion 启动与虚拟机的连接。
  2. Bastion 会将你重定向到 Microsoft Entra ID 进行身份验证,其中会评估 MFA 和条件访问策略。
  3. 身份验证成功后,Bastion 会中介连接到目标虚拟机。
  4. 虚拟机级扩展(AADLoginForWindowsAADSSHLoginForLinux)验证 Entra ID 令牌,并根据分配的角色授予访问权限。

通过两种连接方法提供 Entra ID 身份验证:

满足所有要求后,Microsoft Entra ID 在 Azure 门户的 Bastion 连接页上显示为默认身份验证选项。 如果未满足任何要求,则不会显示该选项。

注释

登录体验在连接方法之间有所不同。 门户连接使用无密码身份验证 - 使用 Entra ID 凭据登录,不需要本地 VM 密码。 MFA 完成后,本机客户端 RDP 连接会提示输入密码。 有关详细信息,请参阅 通过 Microsoft Entra ID 使用密码/无密码身份验证登录

分配角色

使用 Entra ID 进行身份验证的用户需要以下角色分配中的之一

还需要对相关资源进行以下 读取者 角色分配:

  • 虚拟机上的读者角色。
  • NIC 上的读者角色(使用虚拟机的专用 IP)。
  • Azure Bastion 资源上的读者角色。
  • 目标虚拟机的虚拟网络上的读取者角色(如果 Bastion 部署位于对等虚拟网络中)。

可以在虚拟机、资源组或订阅范围内分配角色。

按照以下步骤使用 Azure 门户分配所需的角色:

  1. Azure 门户中,导航到要配置的虚拟机。
  2. 从左侧菜单中选择“访问控制 (IAM)”
  3. 选择添加>添加角色分配
  4. 在“ 角色 ”选项卡上,搜索并选择 “虚拟机管理员登录名 ”(或 “虚拟机用户登录 名”进行标准访问)。 选择“下一步”。
  5. 在“ 成员 ”选项卡上,选择“ + 选择成员”,搜索用户或组,选择它们,然后选择“ 选择”。
  6. 选择“查看 + 分配”以完成角色分配。
  7. 重复前面的步骤,在虚拟机、NIC、Bastion 资源和虚拟网络上分配所需的读取者角色。

安装虚拟机扩展

虚拟机扩展会验证 Entra ID 令牌并授予对虚拟机的访问权限。 可以通过在创建虚拟机时选择 使用 Microsoft Entra ID 登录 来启用扩展,或使用以下步骤将其添加到现有虚拟机。

在 Windows 虚拟机上安装 AADLoginForWindows 扩展。

支持的作系统: Windows 10 版本 20H2 或更高版本、Windows 11 21H2 或更高版本、Windows Server 2022 或更高版本。

Azure CLI

az vm extension set \
  --publisher Microsoft.Azure.ActiveDirectory \
  --name AADLoginForWindows \
  --resource-group "<ResourceGroupName>" \
  --vm-name "<VMName>"

使用 Entra ID 身份验证进行连接

完成角色分配并安装虚拟机扩展后,可以使用 Entra ID 身份验证连接到虚拟机。 满足所有要求后, Microsoft Entra ID 在 Azure 门户的 Bastion 连接页上显示为默认身份验证选项。

在 Azure 门户中使用 RDP 和 Entra ID 身份验证连接到 Windows 虚拟机。 基本 SKU 或更高版本是必需的。

  1. Azure 门户中,导航到 Windows 虚拟机。 选择 连接>Bastion
  2. “连接设置” 部分中,将 “协议 ”设置为 RDP。 如果将其从默认值 3389 更改,请输入端口号。
  3. 对于身份验证类型,请选择Microsoft Entra ID (预览版)。 如果未显示此选项,请验证是否已安装虚拟机扩展并分配所需的角色。
  4. 选择 “连接 ”以在新浏览器选项卡中打开 RDP 连接。
  5. 出现提示时,请使用 Microsoft Entra ID 凭据登录。 在此步骤中评估多重身份验证(MFA)和条件访问策略。

注释

如果遇到登录问题,请参阅 “排查 Microsoft Entra 登录问题”

局限性

  • 门户中的 RDP 和 Entra ID 身份验证不能与 图形会话录制同时使用。
  • Microsoft 基于 IP 的 RDP 或 SSH 连接不支持 Entra ID 身份验证。
  • Microsoft Entra ID 身份验证仅支持用于 Windows 虚拟机的 RDP 和 Linux 虚拟机的 SSH 的门户连接。
  • 对于本机客户端 RDP 连接,仅允许从已 Microsoft Entra 注册、加入或混合加入的 Windows 10 或更高版本电脑上,远程连接到已加入 Microsoft Entra ID 的虚拟机,并且该电脑必须与虚拟机在同一目录中。

后续步骤