关于权限、访问和安全组

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022

在本文中,你将了解通过 Azure DevOps 中的继承、安全组、角色等访问级别和权限。

有关默认权限的概述,请参阅 默认权限快速参考。

有关详细信息,请参阅安全性概述。

有关大型组织的性能指南,请参阅 权限性能建议。

小窍门

可以使用 AI 帮助完成 Azure DevOps 任务。 请参阅 在 Azure DevOps MCP Server 启用 AI 辅助功能 即可入门。

访问级别

所有 Azure DevOps 用户都有一个访问级别,该级别授予或限制对特定 Web 门户功能的访问。 存在三个主要访问级别: 利益干系人、 基本和 基本 + 测试计划。 若要向用户授予对敏捷项目组合管理或测试用例管理功能的访问权限,请更改访问级别,而不是权限。 有关详细信息,请参阅 关于访问级别。

权限

Azure DevOps 中的所有用户都属于一个或多个默认安全组。 向允许或拒绝访问功能或任务的安全组分配权限。

  • 成员继承分配给其安全组的权限。
  • 在不同级别定义权限:组织/集合、项目或对象。
  • 通过 基于角色的分配 管理某些权限(例如,团队管理员、扩展管理或管道资源角色)。
  • 管理员可以定义自定义安全组来管理不同功能区域的权限。

在 Azure DevOps 中管理权限涉及两个关键组:项目集合管理员和项目管理员。

项目集合管理员:

  • 在组织或项目集合中具有广泛的管理权限。
  • 管理组织的设置、策略和流程。
  • 创建和管理项目。

项目管理员:

  • 在项目级别进行操作。
  • 在 Web 门户的“项目”设置中管理安全组和权限。
  • 处理特定对象参与者在项目中创建的权限。

权限状态

分配权限以授予或限制访问:

用户或组具有权限:

  • 允许
  • 允许(继承)
  • 允许(系统)

用户或组没有权限:

  • 拒绝
  • 拒绝(继承)
  • 拒绝(系统)
  • 未设置
权限状态 说明
允许 在当前范围内,向所选用户或组显式授予权限。
允许(继承) 通过父作用域或组成员身份授予该权限。
允许(系统) 授予由 Azure DevOps 管理的权限。 无法编辑系统权限。
拒绝 显式拒绝当前范围内所选用户或组的权限。
拒绝(继承) 通过父范围或组成员身份拒绝权限。
拒绝(系统) 拒绝由 Azure DevOps 管理的某项权限。 无法编辑系统权限。
未设置 在当前作用域内,既不授予也不拒绝该权限。 其他适用的分配项决定最终生效的权限。

Azure DevOps从直接分配、组成员身份和继承的分配中计算有效权限。 当它在同一范围内合并分配时, Deny 通常优先于 Allow。 在对象层次结构中,子对象上的显式赋值可以覆盖其从父对象继承的同一标识的值。

警告

修改组的权限时,它会影响该组中的所有用户。 即使是单个权限更改也会影响数百个用户,因此在进行任何调整之前,请考虑潜在影响。

权限继承

权限遵循层次结构,因此可以从父节点继承权限或重写这些权限。

组继承:

  • 用户会收到他们所属的组的组合权限。
  • 在同一范围内,一个组中的 Deny 通常优先于另一个组中的 Allow 。
  • 未设置 不会授予或拒绝权限,也不会替代另一个组的分配。

对象级继承:

将对象级权限分配给区域、迭代、版本控制文件夹和工作项查询文件夹等节点。 这些权限沿层级向下继承。

对象层次结构规则:

  • 除非被显式重写,否则在较高级节点设置的权限将被所有子节点继承。
  • 如果子节点未明确允许或拒绝某个权限,则该子节点将从其父节点继承该权限。
  • 如果为子节点上的标识显式设置权限,则从该标识的父级继承的值不适用于子节点。
  • 解析对象层次结构后,Azure DevOps合并适用的直接分配和组分配。 来自所得范围内其他组的 拒绝 仍可能优先于 允许。

示例:

  • 在 (父节点)上明确area-1。
  • 针对 (子节点)明确area-1/sub-area-1。
  • 在这种情况下,用户在 上会收到 area-1/sub-area-1,覆盖从父节点继承的 Deny。

若要了解某项权限为何是继承的,请选择该权限的原因? 若要打开 “安全 ”页,请参阅 “查看权限”。

屏幕截图显示“权限”对话框、预览页、为什么链接被注释。

此时会打开一个新对话框,显示该权限的继承信息。

屏幕截图显示“权限”对话框、当前页、为什么链接被注释。

一个新窗口显示该权限的继承信息。

显示“权限跟踪”对话框的屏幕截图。

安全组和成员资格

安全组为其成员分配特定权限。

创建组织、集合或项目时,Azure DevOps 会创建一组默认安全组,并自动向这些组分配默认权限。 通过以下操作定义更多的安全组:

  • 在以下级别创建自定义安全组:
    • 项目级别
    • 组织级别或集合级别
    • 服务器级(仅限本地部署)
  • 添加团队,用于创建团队安全组

无法创建对象级安全组,但可以将自定义组分配给对象级别,并为该级别分配权限。 有关详细信息,请参阅设置对象级权限。

默认安全组

大多数 Azure DevOps 用户将添加到 参与者 安全组并授予 基本 访问级别。 参与者组提供对存储库、工作跟踪、管道等的读取和写入访问权限。 凭借基本访问权限,可以访问使用 Azure Boards、Azure Repos、Azure Pipelines 和 Azure Artifacts 的所有功能和任务。 需要访问权限来管理 Azure Test Plans 的用户,需要拥有 Basic + Test Plans 或相应的 Visual Studio 订阅权益。

默认情况下,为每个项目和组织定义了以下安全组。 通常将用户或组添加到读取者、参与者或项目管理员组。

集成 组织或集合
- 生成管理员
- 参与者
- 项目管理员
- 项目有效用户
- 读取者
- 发布管理员
- TeamName 团队
- 项目集合管理员
- 项目集合生成管理员
- 项目集合生成服务帐户
- 项目集合代理服务帐户
- 项目集合服务帐户
- 项目集合测试服务帐户
- 项目集合有效用户
- 项目范围内用户
- 安全服务组

有关其中每个组的说明,请参阅安全组、服务帐户和权限。 有关对最常见的默认安全组进行的默认权限分配,请参阅默认权限和访问权限。

默认情况下,为每个项目和项目集合定义以下安全组。 通常将用户或组添加到读取者、参与者或项目管理员组。

仅将服务帐户添加到 Azure DevOps 服务帐户组。 若要了解有效的用户组,请参阅本文后面的有效用户组。

项目级别 集合级别
- 生成管理员
- 参与者
- 项目管理员
- 项目有效用户
- 读取者
- 发布管理员
- TeamName 团队
- 项目集合管理员
- 项目集合生成管理员
- 项目集合生成服务帐户
- 项目集合代理服务帐户
- 项目集合服务帐户
- 项目集合测试服务帐户
- 项目集合有效用户
- 安全服务组

将管理项目级功能的用户添加到 “项目管理员 ”组。 这些功能包括团队、区域和迭代路径、存储库、服务挂钩和服务终结点。

将管理组织或集合级别功能的用户添加到 项目集合管理员 组。 这些功能包括项目、策略、进程、保留策略、代理和部署池以及扩展。 有关详细信息,请参阅关于用户、团队、项目和组织级设置。

成员资格、权限和访问级别管理

Azure DevOps 通过以下三个相互连接的功能区域控制访问:

  • 成员资格管理支持将个人用户帐户和组添加到默认安全组。 每个默认组都与一组默认权限相关联。 添加到任何安全组的所有用户都将被添加到有效用户组。 有效用户是可以连接到项目、集合或组织的人。
  • 权限管理可控制处于系统不同级别的特定功能任务的访问权限。 对象级权限设置文件、文件夹、生成管道或共享查询的权限。 权限设置对应于允许、拒绝、允许(继承)、拒绝(继承)、系统允许、系统拒绝和未设置。
  • 访问级别管理控制对 Web 门户功能的访问。 根据许可和用户角色,管理员分配利益干系人、基本、基本 + 测试计划或适用的Visual Studio订阅访问级别。

每个功能区域都使用安全组来简化整个部署的管理。 可以通过 Web 管理上下文添加用户和组。 权限将根据你向其添加用户的安全组自动设置。 或者,权限基于要向其添加组的对象、项目、集合或服务器级别获取。

安全组成员可以是用户、其他组和 Microsoft Entra 组的组合。

安全组成员可以是用户、其他组和 Active Directory 组或工作组的组合。

可以创建本地组或 Active Directory (AD) 组来管理用户。

Active Directory 和 Microsoft Entra 安全组

可以通过添加单个用户来填充安全组。 但是,为了便于管理,使用用于 Azure DevOps Services 的 Microsoft Entra ID 和 Active Directory (AD) 或用于 Azure DevOps Server 的 Windows 用户组填充这些组更高效。 使用此方法可以跨多台计算机更有效地管理组成员资格和权限。

如果只需要管理一小部分用户,则可以跳过此步骤。 但是,如果你预计组织可能会增长,请考虑设置 Active Directory 或 Microsoft Entra ID。 此外,如果计划使用额外服务,则必须配置 Microsoft Entra ID,以便与 Azure DevOps 一起使用,以支持计费。

注意

如果没有 Microsoft Entra ID,所有 Azure DevOps 用户都必须使用 Microsoft 帐户登录,并且必须按单个用户帐户管理帐户访问权限。 即使你使用 Microsoft 帐户管理帐户访问权限,也要设置 Azure 订阅来管理计费。

若要设置 Microsoft Entra ID 以用于 Azure DevOps Services,请参阅将组织连接到 Microsoft Entra ID。

当你的组织连接到 Microsoft Entra ID 时,你可以定义和管理各种组织策略,以增强安全性并简化对应用程序的访问。 有关详细信息,请参阅关于安全性、安全策略。

若要使用 Microsoft Entra ID 管理组织访问权限,请参阅以下文章:

Azure DevOps 会在 Microsoft Entra ID 更改后的一小时内将更改注册到 Microsoft Entra 组。 通过组成员身份刷新所有继承的权限。 若要刷新 Microsoft Entra 会员资格和在 Azure DevOps 中继承的权限,请注销,然后重新登录,或 触发刷新以重新评估权限。

若要设置 Active Directory 以与 Azure DevOps Server 一起使用,请参阅以下文章:

在安装 Azure DevOps Server 之前,请先安装 Active Directory。

有效的用户组

将用户帐户直接添加到安全组时,用户会自动成为以下有效用户组之一的一部分。

  • 项目集合有效用户:添加到组织级别组的所有成员。
  • 项目有效用户:添加到项目级别组的所有成员。
  • Server\Azure DevOps 有效用户:添加到服务器级组的所有成员。
  • ProjectCollectionName\项目集合有效用户:添加到集合级别组的所有成员。
  • ProjectName\项目有效用户:添加到项目级组的所有成员。

分配给这些组的默认权限主要提供读取访问权限,例如查看生成资源、查看项目级信息和查看集合级别信息。

若要访问项目资源,用户需要 查看项目级信息 以及特定资源所需的任何权限。 区域路径权限 控制对项目内工作项和测试项目的访问权限;他们不控制用户是否可以访问该项目。 不要更改有效用户组的默认权限。 拒绝向其中一个组授予 查看项目级信息、查看集合级信息 或 查看实例级信息 权限,可能会阻止该组的所有成员访问相应范围的信息。

项目范围内的用户组

默认情况下,添加到组织的用户可以查看其所属项目以外的组织和项目信息。

若要限制特定用户(例如,利益干系人、Microsoft Entra 来宾用户或特定安全组的成员),可以启用将用户可见性和协作限制在特定项目上预览功能。 启用此功能时, Project-Scoped 用户组 中的用户和组只能访问显式向其添加的项目。 此功能还会限制他们对人员选取器中的组织设置和标识的访问权限。

警告

使用此预览功能时,请考虑以下限制:

  • 本部分所述的有限可见性功能仅适用于通过 Web 门户的交互。 通过使用 REST API 或 az devops CLI 命令,项目成员可以访问受限数据。
  • 受限组中的用户只能选择那些被显式添加到 Azure DevOps 的用户,而不能选择通过 Microsoft Entra 组成员身份获得访问权限的用户。
  • 作为 Microsoft Entra ID 中具有默认访问权限的受限组成员的来宾用户无法使用人员选取器搜索用户。

有关设置步骤和限制,请参阅 “限制用户可见性”。

注意

安全组在组织级别进行管理,即使它们用于特定项目也是如此。 根据用户权限,某些组可能在 Web 门户中隐藏。 若要查看组织中的所有组名称,可以使用 Azure DevOps CLI 工具或 REST API。 有关详细信息,请参阅添加和管理安全组。

注意

安全组在集合级别进行管理,即使它们用于特定项目。 根据用户权限,某些组可能在 Web 门户中隐藏。 若要查看集合中的所有组名称,可以使用 Azure DevOps CLI 工具或 REST API。 有关详细信息,请参阅添加和管理安全组。

基于角色的权限

使用基于角色的权限,可以向角色分配用户帐户或安全组,每个角色都有一个或多个权限。 以下资源支持基于角色的权限:

有关详细信息,请参阅关于管道安全角色。

下图说明了在项目和集合级别定义的安全组如何为对象、项目和组织分配权限。

概念图将默认安全组映射到权限级别(云)。

下图说明了如何将在项目和集合级别定义的安全组分配给在对象、项目和集合级分配的权限。 只能将服务器级安全组定义为服务器级权限。

概念图将默认安全组映射到本地权限级别。

项目管理员或项目集合管理员组的成员管理所有团队的所有团队工具。

预览功能

预览功能在正式发布之前提供对功能的早期访问。 用户可以管理用户级别提供的预览功能。 Project集合管理员组的成员可以管理Azure DevOps服务和Azure DevOps Server中的集合级预览功能中的组织级预览功能。 有关详细信息,请参阅管理或启用功能。

后续步骤