排查访问和权限问题
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
由于 Azure DevOps 的广泛安全性和权限结构,可能需要调查用户为何无法访问预期项目、服务或功能。 查找分步指南,了解和解决用户连接到项目或访问 Azure DevOps 服务或功能时可能遇到的问题。
使用本指南之前,建议熟悉以下内容:
提示
创建 Azure DevOps 安全组时,请明确标记它以指示它是否打算限制访问。
可以在以下级别设置权限:
- 对象级别
- 项目级别
- 组织或项目集合级别
- 安全角色
- 团队管理员角色
常见的访问和权限问题
查看项目成员无法访问项目、服务或功能的最常见原因:
问题 | 故障排除操作 |
---|---|
其访问级别不支持访问服务或功能。 | 若要确定是否是原因, 请确定用户的访问级别和订阅状态。 |
安全组中的成员身份不支持访问某个功能,或者他们被显式拒绝对某个功能的权限。 | 若要确定是否是原因, 请跟踪权限。 |
用户最近被授予权限,但其客户端需要刷新才能识别更改。 | 让用户 刷新或重新评估其权限。 |
用户尝试练习仅向特定团队的团队管理员授予的功能,但他们未被授予该角色。 | 若要将他们添加到角色,请参阅 添加,删除团队管理员。 |
用户未启用预览功能。 | 让用户打开预览功能并确定特定功能的开/关状态。 有关详细信息,请参阅 管理预览功能。 |
项目成员已添加到有限的范围安全组,例如项目范围用户组。 | 若要确定是否是原因, 请查找用户的安全组成员身份。 |
不太常见的访问和权限问题
访问受限的不太常见的原因是发生以下事件之一:
问题 | 故障排除操作 |
---|---|
项目管理员禁用了服务。 在这种情况下,没有人有权访问禁用的服务。 | 若要确定是否禁用某个服务,请参阅 打开或关闭 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 中管理用户和访问权限。
如果用户遇到权限问题,并且你使用默认安全组或自定义组获取权限,则可以使用权限跟踪调查这些权限的源。 权限问题可能是因为用户没有必要的访问级别。
用户可以直接或通过组接收其有效权限。
完成以下步骤,以便管理员能够确切地了解这些权限来自何处,并根据需要对其进行调整。
选择“ 项目设置>权限>用户”,然后选择该用户。
现在,你应该有一个特定于用户的视图,该视图显示他们拥有的权限。
若要跟踪用户具有或没有列出的任何权限的原因,请选择相应权限旁边的信息图标。
生成的跟踪可让你知道他们是如何继承列出的权限的。 然后,可以通过调整提供给用户所属于组的权限来调整用户的权限。
选择“ 项目设置>安全性”,然后在筛选器框中输入用户名。
现在,你应该有一个特定于用户的视图,该视图显示他们拥有的权限。
跟踪用户具有或没有列出的任何权限的原因。 将鼠标悬停在权限上,然后选择“ 原因”。
生成的跟踪可让你知道他们是如何继承列出的权限的。 然后,可以通过调整提供给用户所属于组的权限来调整用户的权限。
有关详细信息,请参阅 “管理对特定特性和功能 的访问权限”或 “请求增加权限级别”。
刷新或重新评估权限
请参阅以下场景,其中可能需要刷新或重新评估权限。
问题
用户将添加到 Azure DevOps 或 Microsoft Entra 组。 此操作授予对组织或项目的继承访问权限。 但是,他们不能立即获得访问权限。 用户必须等待或注销,关闭浏览器,然后重新登录才能刷新其权限。
用户将添加到 Azure DevOps 组。 此操作授予对组织或项目的继承访问权限。 但是,他们不能立即获得访问权限。 用户必须等待或注销,关闭浏览器,然后重新登录才能刷新其权限。
解决方案
转到“用户设置>权限>”重新评估权限。 此函数会重新评估组成员身份和权限,然后任何最近的更改都会立即生效。
应用于限制选择操作的工作项类型的规则
在自定义流程之前,建议查看配置和自定义Azure Boards,其中提供了有关如何自定义Azure Boards以满足业务需求的指导。
有关适用于限制操作的工作项类型规则的详细信息,请参阅:
对用户隐藏组织设置
如果用户只能查看其项目或无法访问组织设置,则以下信息可能会解释原因。 若要限制用户访问组织设置,请启用“ 将用户可见性和协作限制为特定项目 预览功能”。 有关详细信息,包括重要的安全相关标注,请参阅管理组织,限制项目对用户的可见性等。
受限用户的示例包括利益干系人、Microsoft Entra 来宾用户或安全组的成员。 启用后,添加到 Project-Scoped Users 组的任何用户或组将受限于访问组织设置页,但“概述”和“项目”除外。 他们只能访问他们添加到的项目。
受限用户的示例包括利益干系人或安全组的成员。 启用后,添加到“Project-Scoped用户组”的任何用户或组将受限于访问“组织设置”页面,“概述”和“项目”除外。 他们只能访问他们添加到的项目。
有关详细信息,请参阅 管理组织、限制项目的用户可见性等。
使用 CLI 查看、添加和管理权限
可以使用命令在精细级别 az devops security permission
查看、添加和管理权限。 有关详细信息,请参阅 使用命令行工具管理权限。
对权限较小的规则进行分组
按以下顺序对组规则类型进行排名:订阅服务器 > 基本 + 测试计划 > 基本 > 利益干系人。 用户始终在所有组规则(包括任何 Visual Studio (VS) 订阅)中收到可用的最高访问级别。
注意
请参阅以下示例,其中显示了订阅者检测如何考虑组规则。
示例 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。 执行以下步骤:
关闭所有浏览器,包括未运行 Azure DevOps 的浏览器。
打开专用或隐身浏览会话。
请转到以下 URL:https://aka.ms/vssignout。
显示消息“正在注销”。注销后,会重定向到
dev.azure.microsoft.com
。再次登录到 Azure DevOps 并选择其他标识。