排查访问和权限问题

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

由于 Azure DevOps 具有广泛的安全性和权限结构,你可以调查用户无法访问他们期望的项目、服务或功能的原因。 查找分步指南,了解并解决项目成员在连接到项目或访问 Azure DevOps 服务或功能时可能遇到的问题。

在使用本指南之前,我们建议你熟悉以下内容:

提示

创建 Azure DevOps 安全组时,请以一种易于辨别的方式对其进行标记,以限制访问。

权限设置在以下级别之一:

  • 对象级别
  • 项目级别
  • 组织或项目集合级别
  • 安全角色
  • 团队管理员角色

常见的访问和权限问题

请参阅以下最常见的原因:项目成员无法访问项目、服务或功能:

问题 故障排除操作
其访问级别不支持访问服务或功能。 若要确定是否是原因, 请确定用户的访问级别和订阅状态
他们在安全组中的成员身份不支持访问某个功能,或者他们已被显式拒绝访问某个功能的权限。 若要确定是否是原因, 请跟踪权限
用户最近已被授予权限,但客户端需要刷新才能识别更改。 让用户 刷新或重新评估其权限
用户尝试执行仅授予特定团队的团队管理员的功能,但尚未授予该角色。 若要将他们添加到角色,请参阅 添加,删除团队管理员
用户尚未启用预览功能。 让用户打开预览功能并确定特定功能的开/关状态。 有关详细信息,请参阅 管理预览功能
项目成员已添加到受限范围安全组,例如Project-Scoped用户组。 若要确定是否是原因, 请查找用户的安全组成员身份

不太常见的访问和权限问题

访问受限的较不常见原因是发生了以下事件之一:

问题 故障排除操作
项目管理员禁用了服务。 在这种情况下,没有人有权访问禁用的服务。 若要确定是否禁用某个服务,请参阅 打开或关闭 Azure DevOps 服务
项目集合管理员禁用了预览功能,该功能对组织中的所有项目成员禁用此功能。 请参阅 管理预览功能
管理用户访问级别或项目成员身份的组规则限制访问。 请参阅 确定用户的访问权限级别和订阅状态
自定义规则已定义为工作项类型的工作流。 请参阅 应用于限制选择操作的工作项类型的规则

确定用户的访问级别和订阅状态

可以将用户或用户组分配到以下访问级别之一:

  • 利益干系人
  • 基本
  • 基本 + Test Plans
  • Visual Studio 订阅

有关 Azure DevOps 中的访问级别限制的详细信息,请参阅 支持的访问权限级别

若要使用 Azure DevOps 功能,必须将用户添加到具有相应权限的安全组。 用户还需要访问 Web 门户。 选择功能的限制取决于用户分配到的访问级别和安全组。

用户可能由于以下原因而失去访问权限:

失去访问权限的原因 故障排除操作
用户的 Visual Studio 订阅已过期。 同时,此用户可以 作为利益干系人工作,也可以向用户授予基本访问权限,直到用户续订其订阅。 用户登录后,Azure DevOps 会自动还原访问权限。
用于计费的 Azure 订阅不再有效。 使用此订阅进行的所有购买都会受到影响,包括 Visual Studio 订阅。 若要解决此问题,请访问 Azure 帐户门户
用于计费的 Azure 订阅已从组织中删除。 详细了解如何 链接组织

否则,在日历月的第一天,未登录到组织时间最长的用户首先失去访问权限。 如果你的组织具有不再需要访问权限的用户,请 将其从组织中删除

有关权限的详细信息,请参阅 权限和组权限查找指南

跟踪权限

使用权限跟踪确定用户权限不允许他们访问特定功能的原因。 了解用户或管理员如何调查权限的继承。 若要从 Web 门户跟踪权限,请打开相应级别的权限或安全页。 有关详细信息,请参阅 请求增加权限级别

如果用户遇到权限问题,并且你使用默认安全组或自定义组获取权限,则可以使用权限跟踪调查这些权限的源。 权限问题可能是由于延迟更改。 Microsoft Entra 组成员身份或权限更改可能需要长达 1 小时才能在整个 Azure DevOps 中传播。 如果用户遇到无法立即解决的问题,请等待一天,看看他们是否解决了。 有关用户和访问管理的详细信息,请参阅 在 Azure DevOps 中管理用户和访问权限

如果用户遇到权限问题,并且你使用默认安全组或自定义组获取权限,则可以使用权限跟踪调查这些权限的源。 权限问题可能是因为用户没有必要的访问级别。

用户可以直接或通过组接收其有效权限。

完成以下步骤,以便管理员能够确切地了解这些权限来自何处,并根据需要对其进行调整。

  1. 选择“ 项目设置>权限>用户”,然后选择该用户。

    筛选器框的屏幕截图,输入用户名。

    现在,你应该有一个特定于用户的视图,该视图显示他们拥有的权限。

  2. 若要跟踪用户具有或没有列出的任何权限的原因,请选择相应权限旁边的信息图标。

选择相应权限旁边的信息图标的屏幕截图。

生成的跟踪可让你知道他们是如何继承列出的权限的。 然后,可以通过调整提供给用户所属于组的权限来调整用户的权限。

  1. 选择“ 项目设置>安全性”,然后在筛选器框中输入用户名。

    在筛选器框中输入用户名的屏幕截图,Azure DevOps Server 2019 年。

    现在,你应该有一个特定于用户的视图,该视图显示他们拥有的权限。

  2. 跟踪用户具有或没有列出的任何权限的原因。 将鼠标悬停在权限上,然后选择“ 原因”。

    项目级别信息的权限列表视图中的“选择原因”的屏幕截图,Azure DevOps Server 2019 年。

生成的跟踪可让你知道他们是如何继承列出的权限的。 然后,可以通过调整提供给用户所属于组的权限来调整用户的权限。

显示继承的权限的跟踪的屏幕截图,Azure DevOps Server 2019 年。

有关详细信息,请参阅 授予或限制对所选功能和功能的访问权限请求提高权限级别

刷新或重新评估权限

请参阅以下方案,其中可能需要刷新或重新评估权限。

问题

用户将添加到 Azure DevOps 或 Microsoft Entra 组。 此操作授予对组织或项目的继承访问权限。 但是,他们不能立即获得访问权限。 用户必须等待或注销,关闭浏览器,然后重新登录才能刷新其权限。

用户将添加到 Azure DevOps 组。 此操作授予对组织或项目的继承访问权限。 但是,他们不能立即获得访问权限。 用户必须等待或注销,关闭浏览器,然后重新登录才能刷新其权限。

解决方案

“用户设置”的“ 权限 ”页上,可以选择“ 重新评估权限”。 此函数会重新评估组成员身份和权限,然后任何最近的更改都会立即生效。

重新评估权限控件的屏幕截图。

应用于限制选择操作的工作项类型的规则

在自定义流程之前,建议查看配置和自定义Azure Boards,其中提供了有关如何自定义Azure Boards以满足业务需求的指导。

有关适用于限制操作的工作项类型规则的详细信息,请参阅:

对用户隐藏组织设置

如果用户只能查看其项目,或者无法查看组织设置,则以下信息可能会解释原因。 若要限制用户访问组织设置,可以启用 将用户可见性和协作限制为特定项目的 预览功能。 有关详细信息,包括重要的安全相关标注,请参阅 管理组织、限制项目的用户可见性等

受限用户的示例包括利益干系人、Microsoft Entra 来宾用户或安全组的成员。 启用后,添加到“Project-Scoped用户组”的任何用户或组将受限于访问“组织设置”页面,“概述”和“项目”除外。 他们只能访问已添加到的项目。

受限用户的示例包括利益干系人或安全组的成员。 启用后,添加到“Project-Scoped用户组”的任何用户或组将受限于访问“组织设置”页面,“概述”和“项目”除外。 他们只能访问已添加到的项目。

有关向用户隐藏组织设置的详细信息,请参阅 管理组织、限制项目的用户可见性等

使用 CLI 查看、添加和管理权限

可以使用命令在更精细的级别 az devops security permission 查看、添加和管理权限。 有关详细信息,请参阅 使用命令行工具管理权限

对权限较小的规则进行分组

组规则类型按以下顺序排名:订阅服务器>基本 + Test Plans>基本>利益干系人。 用户始终在所有组规则(包括 Visual Studio (VS) 订阅)之间获得最佳访问级别。

注意

  • 通过组规则对 项目读取者 所做的更改不会保留。 如果需要调整项目读取器,请考虑替代方法,例如 直接分配自定义安全组
  • 建议定期查看“用户”页的“组规则”选项卡上列出的规则。 如果对 Microsoft Entra ID 组成员身份进行了任何更改,这些更改将显示在组规则的下一次重新评估中,这些更改可在修改组规则时按需完成,或每隔 24 小时自动执行一次。 Azure DevOps 每小时更新 Microsoft Entra 组成员身份,但 Microsoft Entra ID 可能需要长达 24 小时才能更新 动态组成员身份

请参阅以下示例,其中显示了订阅者检测如何考虑组规则。

示例 1:组规则为我提供更多访问权限

如果我有 VS Pro 订阅,并且我位于一个组规则中,该规则提供基本 + Test Plans - 会发生什么情况?

预期:我得到基本 + Test Plans,因为组规则提供给我的内容大于我的订阅。 组规则分配始终提供更大的访问权限,而不是限制访问权限。

示例 2:组规则为我提供相同的访问权限

我有一个 Visual Studio Test Pro 订阅,并且我位于一个组规则中,该规则提供基本 + Test Plans - 会发生什么情况?

预期:我被检测为 Visual Studio Test Pro 订阅者,因为访问权限与组规则相同。 我已经支付了 Visual Studio Test Pro 的费用,因此我不想再次付费。

使用 GitHub

请参阅以下故障排除信息,了解何时尝试使用 GitHub 在 Azure DevOps 中部署代码。

问题

尽管将团队的其余成员添加为组织和项目成员,但无法将其添加到组织和项目。 他们会收到电子邮件,但在登录时收到错误 401。

解决方案

你可能已使用不正确的标识登录到 Azure DevOps。 完成以下步骤。

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

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

  3. 请转到以下 URL:https://aka.ms/vssignout

    将显示一条消息,指出“注销正在进行”。注销后,系统会重定向到 dev.azure.microsoft.com。

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