有关通过 Microsoft Entra 进行访问的常见问题解答

Azure DevOps Services

重要

自 2020 年 3 月 2 日开始,Azure DevOps 不再支持备用凭据身份验证。 如果你仍在使用备用凭据,我们强烈建议你切换到更安全的身份验证方法, (例如个人访问令牌) 。 了解详细信息

了解有关通过 Microsoft Entra ID 访问 Azure DevOps 组织的以下常见问题(常见问题解答)的解答。 我们按以下主题对常见问题解答进行了分组:

使用 Microsoft Entra ID 进行常规访问

为什么我在Azure 门户看不到我的组织?

在这两个应用程序中,都必须具有 Azure 服务管理员istrator 或 Coadministrator 权限,才能将 Azure 订阅链接到 Azure DevOps 中的组织。 此外,在Azure 门户中,必须具有项目集合管理员或组织所有者权限。

使用 Microsoft Entra ID 设置现有 Azure DevOps 实例需要什么?

请确保满足以下文章中的先决条件,连接组织到 Microsoft Entra ID

我更改了 Microsoft Entra ID,但他们似乎没有生效,为什么?

在 Microsoft Entra ID 中所做的更改最多可能需要 1 小时才能在 Azure DevOps 中显示。

能否将 Microsoft 365 和 Microsoft Entra ID 与 Azure DevOps 配合使用?

是。

问:为什么必须选择“工作或学校帐户”和“个人帐户”?

答:当你使用电子邮件地址登录时,会发生这种情况 (,例如, jamalhartnett@fabrikam.com) 由个人 Microsoft 帐户以及工作帐户或学校帐户共享。 尽管这两个标识使用相同的登录地址,但它们仍然是单独的标识。 这两个标识具有不同的配置文件、安全设置和权限。

  • 如果使用此标识创建组织,或者以前使用此标识登录,请选择“ 工作或学校帐户 ”。 标识由 Microsoft Entra ID 中的组织的目录进行身份验证,该目录控制对组织的访问。

  • 如果在 Azure DevOps 中使用了 Microsoft 帐户,请选择“ 个人 帐户”。 你的标识由 Microsoft 帐户的全局目录进行身份验证。

我的组织仅使用 Microsoft 帐户。 是否可以切换到 Microsoft Entra ID?

的,但在切换之前,请确保 Microsoft Entra ID 满足共享以下项的需求:

  • 工作项
  • code
  • resources
  • 团队和合作伙伴的其他资产

详细了解如何使用 Microsoft 帐户与 Microsoft Entra ID 控制访问权限,以及如何 在准备就绪时切换。

问:为什么在选择“个人 Microsoft 帐户”或“工作或学校帐户”后无法登录?

答:如果登录地址由个人 Microsoft 帐户和工作帐户或学校帐户共享,但所选标识没有访问权限,则无法登录。 尽管这两个标识使用相同的登录地址,但它们是独立的:它们具有不同的配置文件、安全设置和权限。

通过完成以下步骤,从 Azure DevOps 完全注销。 关闭浏览器可能不会完全注销。 再次登录并选择其他标识:

  1. 关闭所有浏览器,包括未运行 Azure DevOps 的浏览器。

  2. 打开专用或隐身浏览会话。

  3. 转到此 URL: https://aka.ms/vssignout

    你将看到一条消息,显示“注销正在进行”。注销后,会重定向到 Azure DevOps @dev.azure.microsoft.com 网页。

    提示

    如果注销页面需要一分钟多的时间才能注销,请关闭浏览器并继续。

  4. 再次登录到 Azure DevOps。 选择其他标识。

如果 Azure 订阅被禁用,会发生什么情况?

如果你是组织所有者或 Azure 订阅帐户管理员,请在帐户中心检查订阅状态,然后尝试修复订阅。 已还原付费设置。 或者,可以通过取消组织与禁用订阅的链接,将组织链接到另一个 Azure 订阅。 禁用订阅后,组织会返回到每月免费限制,直到订阅得到修复。

Microsoft Entra 用户和权限

如果在此处找不到问题的答案,请参阅 用户和权限管理常见问题解答

为什么必须向目录添加用户?

你的组织通过 Microsoft Entra ID 对用户进行身份验证和控制访问权限。 所有用户必须是目录成员才能获取访问权限。

作为目录管理员,你可以 将用户添加到目录。 如果你不是管理员,请与目录管理员协作以添加用户。 详细了解如何使用目录控制对 Azure DevOps Services 的访问

当前用户会发生什么情况?

Azure DevOps Services 中的工作与 Microsoft Entra ID 的凭据相关联。 组织连接到目录后,如果用户的凭据地址出现在连接的目录中,则继续无缝工作。 如果未显示用户的地址,则必须 将这些用户添加到目录中。 你的组织可能有将用户添加到目录的策略,因此请先了解详细信息。

如何实现了解我的组织是否使用 Microsoft Entra ID 来控制访问?

如果至少具有基本访问权限,请转到组织设置,然后选择“Microsoft Entra ID”选项卡。可以连接目录断开连接目录

我的组织使用 Microsoft Entra ID 控制访问权限。 是否可以只从目录中删除用户?

是的,但从目录中删除用户会删除该用户对所有组织以及与该目录关联的其他资产的访问权限。 必须具有 Microsoft Entra Global 管理员istrator 权限才能从 Microsoft Entra 目录中删除用户。

尝试将 Microsoft Entra ID 中的用户添加到 Azure DevOps 组织时,为何“找不到标识”?

你可能是 Microsoft Entra ID 中的来宾,可以备份 Azure DevOps 组织,而不是成员。 Microsoft Entra 来宾无法按 Azure DevOps 所需的方式搜索 Microsoft Entra ID。 例如,Microsoft Entra 来宾无法使用 Azure DevOps Web 门户搜索或选择尚未添加到 Azure DevOps 组织的用户。 了解如何将 Microsoft Entra 来宾转换为成员

如果我们不能使用相同的登录地址怎么办?

将这些用户添加到具有新工作或学校帐户的目录,并重新分配访问级别并将其读取到任何项目。 如果他们具有现有的工作或学校帐户,则可以改用这些帐户。 工作不会丢失,并且会保留其当前登录地址。 用户可以迁移他们想要保留的工作,但工作历史记录除外。 有关详细信息,请参阅 如何添加组织用户

如果我意外删除 Microsoft Entra ID 中的用户,该怎么办?

还原用户,而不是创建新用户。 如果创建新用户,即使使用相同的电子邮件地址,此用户也不会与以前的标识相关联。

如何将 Microsoft Entra 来宾转换为成员?

从下列两个选项中进行选择:

使用 Microsoft Graph PowerShell 将 UserType 从来宾转换为成员

警告

此过程是高级的, 我们不建议这样做,但它允许用户从 Azure DevOps 组织查询 Microsoft Entra ID。

先决条件

进行 UserType 更改的用户必须具有以下项:

  • Microsoft Entra ID 中的工作/学校帐户(WSA)/本机用户。 不能使用 Microsoft 帐户更改 UserType。
  • 全局管理员权限

重要

建议在 Microsoft Entra ID 中创建全新的 Microsoft Entra 用户(本机) Microsoft Entra 用户。 然后,使用该用户完成以下步骤。 此新用户应消除连接到错误的 Microsoft Entra ID 的可能性。 完成后,可以删除新用户。

处理

  1. 以组织目录的全局管理员身份登录到 Azure 门户
  2. 转到支持 Azure DevOps 组织的租户。
  3. 打开 管理员istrative Windows PowerShell 提示符以使用 Microsoft Graph PowerShell。
  4. 执行 Install-Module -Name Microsoft.Graph -Scope CurrentUserMicrosoft Graph 从PowerShell 库下载。
  5. 安装完成后,执行 Connect-MgGraph -Scopes "User.ReadWrite.All"。 系统会提示你登录到 Microsoft Entra ID。 请务必使用符合以前提及条件的 ID 并同意权限。
  6. 执行Get-MgUser -Filter "DisplayName eq '<display name'" -property DisplayName, ID, UserPrincipalName, UserType | Select DisplayName, ID, UserPrincipalName, UserType,其中<display_name>是用户的显示名称,如Azure 门户所示。 我们希望将 userType 更改为 Member.
  7. Execute Update-MgUser -UserId string -UserType Member,其中 string Id 的值由上一个命令返回。 用户设置为成员状态。
  8. 再次执行 Get-MgUser -Filter "DisplayName eq '<display name'" -property DisplayName, ID, UserPrincipalName, UserType | Select DisplayName, ID, UserPrincipalName, UserType 以验证 UserType 是否已更改。 还可以在Azure 门户的 Microsoft Entra ID 部分进行验证。

虽然这不是常态,但我们发现,此更改需要几个小时甚至几天才能反映在 Azure DevOps 中。 如果它不能立即解决 Azure DevOps 问题,请稍等片刻,然后继续尝试。

Microsoft Entra 组

为什么无法将 Azure DevOps 权限直接分配给 Microsoft Entra 组?

由于这些组是在 Azure 中创建和管理的,因此无法直接为这些组分配 Azure DevOps 权限或保护版本控制路径。 如果尝试直接分配权限,则会收到错误。

可以将 Microsoft Entra 组添加到具有所需权限的 Azure DevOps 组。 或者,可以改为将这些权限分配给组。 Microsoft Entra 组成员从添加权限的组继承权限。

是否可以在 Azure DevOps 中管理 Microsoft Entra 组?

否,因为这些组是在 Azure 中创建和管理的。 Azure DevOps 不会存储或同步 Microsoft Entra 组的成员状态。 若要管理 Microsoft Entra 组,请使用Azure 门户、Microsoft 标识管理器(MIM)或组织支持的组管理工具。

如何实现告知 Azure DevOps 组与 Microsoft Entra 组之间的差异?

Azure DevOps UI 使用方括号 []指示成员资格范围。 例如,请考虑以下权限设置页:

Permissions Settings with various scopes

作用域名 定义
[fabrikam-fiber] 成员身份在组织设置中定义
[Project Name] 成员身份在项目设置中定义
[TEAM FOUNDATION] 成员身份直接在 Microsoft Entra ID 中定义

注意

如果将 Microsoft Entra 组添加到自定义安全组并使用类似的名称,则可能会看到似乎是重复组的内容。 检查范围 [] 以确定哪个是 DevOps 组,哪个是 Microsoft Entra 组。

为什么用户列表不显示所有 Microsoft Entra 组成员?

这些用户必须先登录到你的组织,然后才能显示在“用户”中。

如何实现分配组织对 Microsoft Entra 组成员的访问权限?

当这些组成员首次登录到组织时,Azure DevOps 会自动为其分配访问级别。 如果他们具有 Visual Studio 订阅,Azure DevOps 会为其分配相应的访问级别。 否则,Azure DevOps 将按以下顺序为他们分配下一个“最佳可用” 访问级别:基本、利益干系人。

如果对所有 Microsoft Entra 组成员没有足够的访问级别,则登录的那些成员将获得利益干系人访问权限。

如何保护对内置管理员组的访问?

需要使用 Microsoft Entra Privileged Identity Management (PIM) 组进行实时访问。 有关详细信息,请参阅 管理员组的实时访问。

为什么选择 Microsoft Entra 组时“安全”选项卡不显示所有成员?

“安全”选项卡仅在他们登录到组织后显示 Microsoft Entra 组成员,并为其分配了访问级别。

若要查看所有 Microsoft Entra 组成员,请使用组织支持的Azure 门户、MIM 或组管理工具。

为什么团队成员小组件不显示所有 Microsoft Entra 组成员?

“团队成员”小组件仅显示以前登录到组织的用户。

为什么团队容量窗格不显示所有 Microsoft Entra 组成员?

“团队容量”窗格仅显示以前登录到组织的用户。 若要设置容量,请手动将用户添加到团队。

为什么 Azure DevOps 不再从不是 Microsoft Entra 组成员的用户回收访问级别?

Azure DevOps 不会自动从这些用户回收访问级别。 若要手动删除其访问权限,请转到 “用户”。

是否可以将工作项分配给尚未登录的 Microsoft Entra 组成员?

可以将工作项分配给拥有组织权限的任何 Microsoft Entra 成员。 此操作还会将该成员添加到组织。 以这种方式添加用户时,这些用户将自动显示为“用户”,具有最佳可用访问级别。 用户也会显示在安全设置中。

是否可以使用 Microsoft Entra 组通过“In Group”子句查询工作项?

否,不支持对 Microsoft Entra 组进行查询。

是否可以使用 Microsoft Entra 组在工作项模板中设置字段规则?

否,但你可能对我们的 流程自定义计划感兴趣。

将用户添加到目录

将组织用户添加到 Microsoft Entra ID

为什么我收到一个错误,指出我的组织具有具有相同 UPN 的多个活动标识?

在连接过程中,我们根据现有用户的 UPN(通常称为登录地址)将现有用户映射到 Microsoft Entra 租户的成员。 如果检测到具有相同 UPN 的多个用户,则不知道如何映射这些用户。 如果用户更改其 UPN 以匹配组织中已有的 UPN,则会出现这种情况。

如果遇到此错误,请查看用户列表以获取任何重复项。 如果找到任何重复项,请删除不需要的用户。 如果找不到任何重复项, 请联系支持人员

是否可以在 Azure DevOps 中将当前用户从 Microsoft 帐户切换到工作帐户?

否。 尽管你可以向组织添加新的工作帐户,但它们将被视为新用户。 如果要访问所有工作(包括其历史记录),则必须使用在组织连接到 Microsoft Entra ID 之前使用的相同登录地址。 将 Microsoft 帐户作为成员添加到 Microsoft Entra ID。

为什么无法将其他目录中的用户添加到我的 Microsoft Entra ID?

你必须是这些目录中的成员或具有读取访问权限。 否则,可以通过 Microsoft Entra 管理员使用 B2B 协作添加它们。 还可以通过使用 Microsoft 帐户或在你的目录中为他们创建新的工作帐户来添加它们。

如果在尝试将用户映射到组织的现有成员时出错,该怎么办?

可以将用户映射到尚未成为组织活动成员的其他标识,或将现有用户添加到 Microsoft Entra ID。 如果仍需要映射到现有的 Azure DevOps 组织成员, 请联系支持人员。

如何实现将我的工作或学校帐户与我的 Visual Studio 与 MSDN 订阅配合使用?

如果使用 Microsoft 帐户通过 MSDN 激活 Visual Studio 订阅将 Azure DevOps 作为权益,则可以添加工作或学校帐户。 Microsoft Entra ID 必须管理帐户。 了解如何使用 MSDN 订阅将工作或学校帐户链接到 Visual Studio

是否可以控制外部用户在连接目录中对组织的访问?

是的,但仅适用于通过 Microsoft 365添加为来宾或由 Microsoft Entra 管理员使用 B2B 协作添加的外部用户。 这些外部用户是在连接的目录外部管理的。 若要了解详细信息,请联系 Microsoft Entra 管理员。 以下设置不会影响 直接添加到组织目录的用户

在开始之前,请确保至少具有基本访问权限,而不是利益干系人。

完成 添加外部用户的先决条件,将“外部来宾访问”设置为 “打开”。

删除用户或组

如何实现从 Azure DevOps 中删除 Microsoft Entra 组?

转到项目集合或项目。 在上栏中,选择“ 设置”,然后选择“ 安全性”。

找到 Microsoft Entra 组,并将其从组织中删除。

Screenshot of project, with Delete option highlighted

为什么从组织中删除该用户时,我要求从 Microsoft Entra 组中删除用户?

用户可以作为个人和 Azure DevOps 组中 Microsoft Entra 组的成员属于组织。 这些用户仍然是这些 Microsoft Entra 组的成员时仍可访问你的组织。

若要阻止用户的所有访问,请将其从组织中的 Microsoft Entra 组中删除,或从组织中删除这些组。 我们目前无法完全阻止访问或对此类用户进行例外。

如果删除了 Microsoft Entra 用户,是否也撤销了所有相关的 PAT?

已禁用或从目录中删除的用户无法再通过任何机制(包括通过 PAT 或 SSH)访问组织。

连接连接、断开或更改 Microsoft Entra 连接

如何管理连接到 Microsoft Entra ID 的多个组织?

可以下载 Microsoft Entra 租户支持的组织的完整列表。 有关详细信息,请参阅 获取 Microsoft Entra ID 支持的组织列表。

是否可以将我的组织连接到从 Microsoft 365 创建的 Microsoft Entra ID?

是。 如果找不到从 Microsoft 365 创建的 Microsoft Entra ID,请参阅为什么看不到要连接的目录?

为什么看不到要连接到的目录? 应采取何种操作?

对于以下任何情况,你可能不会看到该目录:

  • 无法将你识别为管理目录连接的 组织所有者

  • 与 Microsoft Entra 组织管理员交谈,并要求他们让你成为组织成员。 你可能不是组织的一部分。

为什么我的组织已连接到目录? 是否可以更改该目录?

组织所有者创建组织时或之后的某个时间连接到目录。 使用工作或学校帐户创建组织时,组织会自动连接到管理该工作或学校帐户的目录。 是的,可以 切换目录。 可能需要迁移一些用户。

是否可以切换到其他目录?

是。 有关详细信息,请参阅 “切换到其他 Microsoft Entra ID”。

重要

从 Microsoft Entra 组继承成员身份和权限的用户和组在传输后不再继承这些权限。 更改 Microsoft Entra 连接时,添加到 Azure DevOps 组织的 Microsoft Entra 组不会转移并停止存在于组织中。 与这些 Microsoft Entra 组建立的所有权限和成员关系在传输后也不再存在。 此外,请注意 ,更改 Microsoft Entra 连接时在 Microsoft Entra 组上启用的组规则 将停止存在。

为什么以及何时应请求支持人员手动清除 SSH 密钥?

从一个 Microsoft Entra 租户切换到另一个租户时,基础标识也会更改,以及用户使用旧标识停止工作的任何 PAT 令牌或 SSH 密钥。 在租户切换过程中,不会删除上传到组织的任何活动 SSH 密钥,这可能会阻止用户在切换后上传新密钥。 建议用户在切换 Active Directory 租户 之前 删除其所有 SSH 密钥。 在租户切换过程中,我们在积压工作中处理了自动删除 SSH 密钥的工作,在此期间,如果在租户切换后被阻止上传新密钥,我们建议你联系支持部门以删除这些旧的 SSH 密钥。

我的备用凭据不再工作。 我该怎么办?

自 2020 年 3 月 2 日开始,Azure DevOps 不再支持备用凭据身份验证。 如果仍在使用备用凭据,强烈建议切换到更安全的身份验证方法, (例如个人访问令牌或 SSH) 。 了解详细信息

某些用户断开连接,但它们在 Microsoft Entra ID 中具有匹配的标识。 应采取何种操作?

  • 在 Azure DevOps 的“组织设置”中,选择“Microsoft Entra ID”,然后选择“解决”

    Select Microsoft Entra ID and then Resolve

  • 匹配标识。 完成后选择“下一步”。

    Resolve disconnected users

我在解决断开连接时收到错误消息。 应采取何种操作?

  • 重试。

  • 可能是 Microsoft Entra ID 中的来宾。 请求作为 Microsoft Entra ID 成员的组织管理员执行映射。 或者,请求 Microsoft Entra ID 的管理员将你转换为成员。

    Screenshot showing an error when resolving disconnected users.

  • 如果错误消息包含域中的用户,但你未在目录中看到他们处于活动状态,则用户可能离开了你的公司。 转到组织用户设置,从组织中删除该用户。

当我尝试邀请新用户加入我的 Microsoft Entra ID 时,我收到了 403 个例外。 我该怎么办?

你可能是 Microsoft Entra ID 中的来宾,并且无权邀请用户。 转到 Microsoft Entra ID 中的外部协作设置 ,并将“来宾可以邀请”切换为 “是”。 刷新 Microsoft Entra ID,然后重试。

我的用户是否会保留其现有的 Visual Studio 订阅?

Visual Studio 订阅管理员通常会将订阅分配给用户的公司电子邮件地址,以便用户可以接收欢迎电子邮件和通知。 如果标识和订阅电子邮件地址匹配,则用户可以访问订阅的好处。 从 Microsoft 过渡到 Microsoft Entra 标识时,用户的优势仍使用其新的 Microsoft Entra 标识。 但是,电子邮件地址必须匹配。 如果电子邮件地址不匹配,订阅管理员必须重新分配订阅。 否则,用户必须将备用标识添加到其 Visual Studio 订阅

如果我在使用人员选取器时需要登录,该怎么办?

清除浏览器缓存并删除会话的任何 Cookie。 关闭浏览器,然后重新打开。

如果我的工作项指示用户无效,该怎么办?

清除浏览器缓存并删除会话的任何 Cookie。 关闭浏览器,然后重新打开。

组织连接到 Microsoft Entra ID 后,是否会使用新 ID 更新 Azure Boards 工作项、拉取请求和其他部分?

可以,当用户的 ID 从其个人电子邮件映射到工作电子邮件时,系统会使用新 ID 更新系统中的所有部分。

如果我收到有关将失去组织访问权限的成员的警告,该怎么办?

你仍然可以连接到 Microsoft Entra ID,但在连接后尝试解决映射问题。 如果仍需要帮助, 请联系支持人员

Screenshot showing Microsoft Entra connection warning.

选择粗体文本以查看受影响的用户。

Show disconnected users

在 Azure DevOps 组织中拥有 100 多个成员,如何连接到 Microsoft Entra ID?

目前,你仍然可以连接,但帮助解决连接后断开连接的用户的映射和邀请功能不能超过 100。 请联系支持人员

为什么在从 Microsoft Entra ID 链接/取消链接后,git.exe/Visual Studio 无法进行身份验证?

如果使用 v1.15.0 之前的 GCM 版本,则必须清除租户缓存。 清除租户缓存就像删除 %LocalAppData%\GitCredentialManager\tenant.cache 每台计算机上返回登录错误的文件一样简单。 在后续登录尝试时,GCM 会根据需要自动重新创建并填充缓存文件。

问:如何实现获取 Azure DevOps 的帮助或支持?

答:可以使用以下支持选项: