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

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

为何启用 MFA 策略?

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

启用后,来宾用户不仅需要用户名和密码才能访问资源,而且必须满足其他安全要求。 可以在租户、应用或单个来宾用户级别强制实施 MFA 策略,就像为你自己的组织成员启用策略一样。

注释

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

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

将 Visual Studio 与 MFA 策略配合使用

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

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

从下拉列表中选择 Web 身份验证代理。

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

警告

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

使用 Windows 身份验证代理

若要开始使用 WAM 作为 Visual Studio 中的身份验证机制,

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

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

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

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

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

启用系统 Web 浏览器

注释

为获得最佳体验,建议先清除系统的默认 Web 浏览器数据,然后再继续执行此工作流。 此外,如果你在 Access 工作或学校下的 Windows 10 设置中有工作或学校帐户,请验证它们是否已正确进行身份验证。

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

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

使用 MFA 策略登录到其他帐户

可以通过 个人资料卡 或帐户设置对话框 (文件 > 帐户设置...)登录或将帐户添加到 Visual Studio。

Windows 身份验证代理

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

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

系统 Web 浏览器

启用系统 Web 浏览器工作流后,可以像平常一样登录或向 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 Broker 以外的身份验证机制,可以按照说明切换以 启用系统 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支持社区技术支持 可能会有所帮助。

首次启动时出错

首次启动 Visual Studio 时可能会遇到错误。 错误对话框将显示阻止 Visual Studio 打开的问题。

访问被拒绝

可能会看到以下错误之一:

显示访问路径'C:\Users\<UserName>\AppData\Local\.IdentityService\<Some file name>'被拒绝的错误屏幕截图。

显示拒绝访问路径 'C:\Users\<UserName>\AppData\Local\.IdentityService\' 的错误屏幕截图。

如果遇到这些错误,请关闭 Visual Studio 的任何打开实例,并删除错误消息中提到的文件或目录以解决该问题。

在删除文件之前,请检查文件的安全权限,并考虑记录 开发人员社区 反馈票证。 这有助于我们更好地了解为何拒绝访问这些文件或目录。

在反馈票证中,请提供以下信息来帮助我们调查问题:

  1. 具有错误中提到的文件或目录权限的组和用户的说明或屏幕截图。 若要查看此内容,请右键单击文件或目录,然后选择 “属性>安全性”。
  2. 用于运行 Visual Studio 的用户帐户。
  3. 如果启动 Visual Studio 第二次时错误仍然存在,