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

Azure DevOps Services

重要

Azure DevOps 不支持备用凭据身份验证。 如果仍在使用备用凭据,强烈建议切换到更安全的身份验证方法。

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

具有 Microsoft Entra ID 的常规访问

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

在这两个应用程序中,都必须具有 Azure 服务管理员或 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 Entra ID 中的组织的目录对标识进行身份验证,并控制对组织的访问。

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

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

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

  • 工作项
  • 代码
  • 资源
  • 团队和合作伙伴的其他资产

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

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

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

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

是的,但从目录中删除用户会删除该用户对所有组织以及与该目录关联的其他资产的访问权限。 有关详细信息,请参阅 从Microsoft Entra 目录中删除用户。

为什么尝试将用户从 Microsoft Entra ID 添加到 Azure DevOps 组织时“找不到标识”?

你可能是 azure DevOps 组织(而不是成员)Microsoft Entra ID 中的来宾。 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 ID 的可能性。 完成后,可以删除新用户。

处理

  1. 组织目录的用户管理员身份登录到Azure 门户
  2. 转到支持 Azure DevOps 组织的租户。
  3. 打开管理 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 使用方括号 []指示成员资格范围。 例如,请考虑以下权限设置页:

具有各种范围的权限设置

作用域名 定义
[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 不会自动从这些用户回收访问级别。 若要手动删除其访问权限,请转到 “用户”。

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

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

是否可以使用 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 组,并将其从组织中删除。

项目的屏幕截图,其中突出显示了“删除”选项

当我从组织中删除该用户时,为何要求从 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 组继承成员身份和权限的用户和组不再继承这些权限。 Microsoft添加到 Azure DevOps 组织的 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”,然后选择“解决”

    选择Microsoft Entra ID,然后选择“解析”

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

    解决断开连接的用户问题

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

  • 重试。

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

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

当我尝试邀请新用户加入我的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,但在连接后尝试解决映射问题,并选择加粗文本以查看哪些用户受到影响。 如果仍需要帮助, 请联系支持人员

显示Microsoft Entra 连接警告的屏幕截图。

在 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 的帮助或支持?

从以下支持选项中进行选择: