使用需要多重身份验证 (MFA) 的帐户登录 Visual Studio

本文将介绍将 Visual Studio 与需要多重身份验证 (MFA) 的帐户一起使用。

为什么要启用 MFA 策略?

在与外部来宾用户协作时,最好使用条件访问 (CA) 策略(例如多重身份验证 (MFA))来保护应用和数据。

启用后,来宾用户不仅需要用户名和密码来访问你的资源,而且还必须满足其他安全要求。 可在租户、应用或个人来宾用户级别强制实施 MFA 策略,操作方式与为你自己的组织成员启用这些策略的方式相同。

注意

与启用了 CA 策略(例如 MFA)并与两个或多个租户相关联的帐户一起使用时,Visual Studio 16.6 之前的版本可能会降低身份验证体验。

这些问题可能会导致你的 Visual Studio 实例每天多次提示重新验证。 你可能必须重新输入之前已经过身份验证的租户的凭据,即使在同一个 Visual Studio 会话过程中也是如此。

搭配使用 Visual Studio 与 MFA 策略

你还可以在 Visual Studio 中访问通过 CA 策略(如 MFA)保护的资源。 要使用此增强工作流,需要选择使用系统的默认 Web 浏览器作为添加并重新验证 Visual Studio 帐户的机制。

使用 Visual Studio 2022 版本 17.11,Windows 身份验证代理现在是在 Visual Studio 中添加和重新验证帐户身份的默认工作流。

Windows 身份验证中转站使用 Web 帐户管理器 (WAM),并提供许多好处,例如安全性、改进的 MFA 支持以及添加到操作和 Visual Studio 的帐户之间的无缝集成。 在 Visual Studio 中使用 WAM 作为身份验证机制,可以更容易地访问通过 CA 策略(如 MFA)保护的资源。

从下拉列表中选择 Web 身份验证中转站。

如果在使用 WAM 时遇到任何问题,建议使用系统 Web 浏览器作为添加和重新验证 Visual Studio 帐户身份的替代方案。

警告

如果未使用此工作流,则在添加或重新验证 Visual Studio 帐户时,可能会触发降级的体验,导致多次额外的身份验证提示。

使用 Windows 身份验证代理

若要开始在 Visual Studio 中使用 WAM 作为身份验证机制,请执行以下操作:

  1. 更新到 Visual Studio 2022 版本 17.11 或更高版本

  2. 出现提示时,从 WAM 对话框中选择一个帐户。 如果帐户未列出,请使用添加帐户添加它。

    使用 Windows 身份验证代理工作流添加帐户。

可以从 Visual Studio 中的帐户设置对话框管理帐户。

建议使用 Windows 帐户管理器 (WAM) 作为 Visual Studio 中的身份验证机制来添加和重新验证帐户身份。 但是,如果在使用 WAM 时遇到任何问题,则可以切换到使用系统 Web 浏览器。

启用系统 Web 浏览器

备注

为了获得最佳体验,建议在继续此工作流之前清除系统的默认 Web 浏览器数据。 此外,如果 Windows 10 设置中的“访问工作或学校”下有工作或学校帐户,请验证它们是否已正确通过身份验证。

若要启用系统 Web 浏览器工作流,请转到 Visual Studio 的“选项”对话框 (工具 > 选项…),选择帐户选项卡,然后从使用以下方式添加并重新验证帐户: 下拉列表中选择系统 Web 浏览器

从菜单中选择系统 Web 浏览器。

使用 MFA 策略登录其他帐户

启用系统 Web 浏览器工作流后,可以通过“帐户设置”对话框(“文件”>“帐户设置…”)按常规方式登录或向 Visual Studio 添加帐户。

可以通过配置文件卡片或“帐户设置”对话框(文件 > 帐户设置…)登录或添加帐户到Visual Studio。

Windows 身份验证代理

启用 Windows 身份验证代理工作流后,你可以像往常一样登录 Visual Studio 或向 Visual Studio 添加帐户。 Web 帐户管理器 (WAM) 允许用户使用 Windows 已知的帐户(例如,登录到 Windows 会话的帐户),从而简化登录体验。

使用 Windows 身份验证中转站工作流将其他帐户添加到 Visual Studio。

系统 Web 浏览器

启用系统 Web 浏览器工作流后,你可以像往常一样登录 Visual Studio 或向 Visual Studio 添加帐户。

向 Visual Studio 添加新的个性化帐户。

此操作将打开系统的默认 Web 浏览器,要求你登录帐户,并验证任何所需的 MFA 策略。

在登录过程中,你可能会收到询问你是否保持登录状态的其他提示。 在第二次使用帐户登录时,可能会显示此提示。 为了最大限度地减少重新输入凭据的需要,建议选择“是”,因为这可确保在浏览器会话中保留凭据。

保持登录状态?

根据你的开发活动和资源配置,系统可能仍会提示你在会话期间重新输入凭据。 当你添加新资源或尝试访问资源时,如果之前未满足其 CA/MFA 授权要求,可能会发生这种情况。

重新验证帐户

如果你的帐户有问题,Visual Studio 可能会要求你重新输入帐户凭据。

显示需要重新进行身份验证的帐户的屏幕截图。

单击“重新输入凭据”会打开系统的默认 Web 浏览器,并尝试自动刷新你的凭据。 如果失败,系统将要求登录你的帐户并验证任何所需的 CA/MFA 策略。

如果你的帐户与多个 Azure Active Directory 相关联,并且其中一个或多个目录遇到访问问题,则“重新输入凭据”对话框将显示受影响的目录和关联的 AADSTS 错误代码

你将能够取消选择不想重新进行身份验证的任何目录,并继续使用主目录进行常规登录操作,以及保持选中状态的任何来宾租户。 在删除帐户筛选器之前,将无法访问取消选择的目录供将来使用。

重新验证 Visual Studio 帐户。

备注

为了获得最佳体验,请保持浏览器打开,直到为资源验证了所有 CA/MFA 策略。 关闭浏览器可能会导致以前生成的 MFA 状态丢失,并且可能会提示其他授权提示。

排查登录问题

CA/MFA 问题

如果遇到 CA/MFA 问题,并且/或即使在使用系统 Web 浏览器时也无法登录,请尝试以下步骤来解决此问题:

  1. 在 Visual Studio 中退出登录帐户。
  2. 选择“工具”>“选项”>“帐户”> 取消选中“跨所有 Azure Active Directory 进行身份验证”。
  3. 重新登录。

备注

完成这些步骤后,你或许能够登录,但你的帐户将处于筛选状态。 处于筛选状态时,只有帐户的默认租户和资源可用。 所有其他 Microsoft Entra 租户和资源将不可访问,但你可以手动重新添加它们

预授权问题

预授权错误对话框的屏幕截图。

从 Visual Studio 2022 版本 17.5 开始,如果看到前面的错误对话框,请尝试以下步骤来解决问题:

  1. 在 Visual Studio 中退出登录帐户。
  2. 重新登录。
  3. 创建新的“报告问题”票证,说明在遇到问题之前正在执行的活动和/或尝试访问的资源。

备注

创建票证将帮助我们识别有问题的区域,并提供调查和解决问题所需的日志。

Web 帐户管理器 (WAM) 错误

如果使用 Windows 身份验证中转站工作流登录到 Visual Studio 时遇到错误,请按照错误对话框中列出的操作来解决或报告问题。 使用对话框上的链接了解有关错误的更多信息或者查看错误日志。

TPM(受信任的平台模块)错误

例如,如果看到以下错误对话框,可以尝试按照 TPM 错误故障排除的说明来解决问题。

WAM 错误对话框的屏幕截图,其中包含用于解决错误的“更改身份验证机制”选项。

如果需要切换到 Windows 中转站以外的身份验证机制,可以按照说明切换以启用系统 Web 浏览器。 如果这些说明不起作用,并且你有支持合同,请在技术支持处开具支持票证

如何在 Visual Studio 中选择退出使用特定 Microsoft Entra 租户

Visual Studio 2019 版本 16.6 及更高版本能够灵活地筛选掉租户(单独或全局),从而有效地对 Visual Studio 隐藏它们。 筛选出特定租户后,无需再向该租户进行身份验证,但这也意味着你将无法访问任何关联资源。

当你有多个租户并且想要通过面向特定的子集来优化开发环境时,此功能很有用。 在无法验证特定 CA/MFA 策略的情况下,此功能也很有用,因为你可以筛选出违规的租户。

如何筛选掉所有租户

若要全局筛选掉所有租户,请打开“帐户设置”对话框(“文件”>“帐户设置...”>“帐户选项”),然后取消选中“在所有 Azure Active Directory 中进行身份验证”复选框。

取消选中该选项可以确保只对帐户的默认租户进行身份验证。 这也意味着你无法访问任何与你的帐户在其中充当来宾的其他租户关联的任何资源。

如何筛选掉单个租户

要筛选与你的 Visual Studio 帐户关联的租户,请打开“帐户设置”对话框(“文件”>“帐户设置…”)并单击“应用筛选器”。

应用筛选器。

此时将显示“筛选帐户”对话框,让你选择要与帐户一起使用的租户。

选择要筛选的帐户。

取消选择要筛选的租户后,“帐户设置”和“筛选帐户”对话框将显示筛选状态。

显示“帐户设置”和“筛选帐户”对话框中筛选的租户状态的屏幕截图

Visual Studio 的网络错误

登录期间,Visual Studio 可能会遇到与网络相关的错误,这些错误通常不是 Visual Studio 产品问题,可能需要由本地 IT 支持人员进行调查。

错误:“需要进行代理身份验证”

如果计算机或组织使用防火墙或代理服务器等安全措施,请确保遵循在代理或防火墙后使用 Visual Studio 的要求

SSL 错误

SSL 错误可能以多种形式出现。 一些示例如:

  • “基础连接已关闭”
  • “无法建立 SSL 连接”
  • “无法创建 SSL/TLS 安全通道”
  • “远程主机强行关闭现有连接。” (这也可能是由于防火墙阻止了连接)
  • “基础连接已关闭: 发送时出现意外错误”

这些错误可能是由以下原因引起的:

  1. 公司代理或防火墙阻止某些版本的 TLS
  2. 在计算机上启用了 TLS 1.3,但网络不支持它。 可以尝试在计算机上禁用 TLS 1.3,以测试情况是否如此。
  3. 组策略限制了允许使用哪些 SSL 算法,而此允许列表与服务器期望的不匹配。

以下资源可能有助于排查 SSL 问题:

禁用 TLS 1.3

1.3: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client] "DisabledByDefault"=dword:00000001 "Enabled"=dword:00000000

连接被拒绝错误

“无法建立连接,因为目标计算机主动拒绝了它”

此错误意味着当 Visual Studio 尝试连接到 Internet 终结点时,计算机拒绝连接。

常见原因:

  • 如果错误消息中包含地址“127.0.0.1”,这意味着试图连接到本地代理服务器,但本地代理服务器未运行。

  • VPN 连接 - 尝试断开与任何 VPN 的连接,然后重试连接。 如果有效,则需要与 VPN 提供商或网络管理员联系。 这包括公司 VPN 或第三方 VPN 服务。

  • DNS - 计算机上的域查找已解析为不指向预期服务器的地址。 这意味着连接将转到另一台未运行预期服务并拒绝连接的计算机。 若要调试此问题,可以使用 NsLookup 等工具,并将其与 Azure IP 范围和服务标记进行比较。

  • IPV6 - 某些计算机已启用 IPV6,但网络不支持该协议。 在这种情况下,你可能会看到一条连接被拒绝的消息,因为找不到服务器。 尝试在计算机上禁用 IPV6,以查看连接是否正常。

  • SSL 问题 - 请参阅 SSL 错误

  • 网络上的代理或防火墙 - 如果网络上有代理或防火墙,则它将是连接尝试与之通信的第一个设备,也可能是拒绝连接的设备。 可以通过询问网络管理员来确定防火墙或代理服务器是否阻止了连接。 或者,查看网络跟踪可以指示连接正在连接到哪台计算机,并确定谁拒绝了连接。 如果是内部网络地址,则表示代理或防火墙阻止了连接。 如果是外部 IP 地址,这通常意味着 DNS、IPV6 或 SSL 问题。

与网络相关的问题通常与计算机或网络配置有关,而不是与 Visual Studio 有关。 开发人员社区可能会提供一些支持,但它侧重于 Visual Studio 中的功能,而不是计算机配置。 对于特定于网络的支持,Microsoft 支持部门社区技术支持可能会有所帮助。