Edit

About permissions and security groups

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

In this article, you learn about access levels and permissions through inheritance, security groups, roles, and more in Azure DevOps.

For an overview of default permissions, see Default permissions quick reference.

For more information, see Security overview.

For performance guidance for large organizations, see Permission performance recommendations.

Tip

You can use AI to help with Azure DevOps tasks. See Enable AI assistance with Azure DevOps MCP Server to get started.

Access levels

All Azure DevOps users have an access level, which grants or restricts access to specific web portal features. Three main access levels exist: Stakeholder, Basic, and Basic + Test Plans. To give a user access to Agile portfolio management or test case management features, change access levels, not permissions. For more information, see About access levels.

Permissions

All users in Azure DevOps belong to one or more default security groups. Assign permissions to security groups that either Allow or Deny access to features or tasks.

  • Members inherit the permissions assigned to their security group.
  • Define permissions at different levels: organization/collection, project, or object.
  • Manage some permissions through role-based assignments (for example, team administrator, extension management, or pipeline resource roles).
  • Administrators can define custom security groups to manage permissions for different functional areas.

Managing permissions in Azure DevOps involves two key groups: Project Collection Administrators and Project Administrators.

Project Collection Administrators:

  • Have broad administrative permissions within an organization or project collection.
  • Manage settings, policies, and processes for the organization.
  • Create and manage projects.

Project Administrators:

  • Operate at the project level.
  • Manage security groups and permissions from the Project settings in the web portal.
  • Handle permissions for specific objects contributors create within the project.

Permission states

Assign permissions to grant or restrict access:

User or group has permission:

  • Allow
  • Allow (inherited)
  • Allow (system)

User or group doesn't have permission:

  • Deny
  • Deny (inherited)
  • Deny (system)
  • Not set
Permission state Description
Allow Explicitly grants the permission to the selected user or group at the current scope.
Allow (inherited) Grants the permission through a parent scope or group membership.
Allow (system) Grants a permission that Azure DevOps manages. You can't edit system permissions.
Deny Explicitly denies the permission to the selected user or group at the current scope.
Deny (inherited) Denies the permission through a parent scope or group membership.
Deny (system) Denies a permission that Azure DevOps manages. You can't edit system permissions.
Not set Neither grants nor denies the permission at the current scope. Other applicable assignments determine the effective permission.

Azure DevOps calculates effective permissions from direct assignments, group memberships, and inherited assignments. When it combines assignments at the same scope, Deny generally takes precedence over Allow. In an object hierarchy, an explicit assignment on a child object can replace the value inherited from its parent for the same identity.

Warning

When you modify a permission for a group, it affects all users in that group. Even a single permission change can impact hundreds of users, so consider the potential effects before making any adjustments.

Permission inheritance

Permissions follow a hierarchy, so you can inherit permissions from a parent node or override them.

Group inheritance:

  • Users receive the combined permissions of the groups they belong to.
  • At the same scope, a Deny from one group generally takes precedence over an Allow from another group.
  • Not set doesn't grant or deny a permission and doesn't override an assignment from another group.

Object-level inheritance:

You assign object-level permissions to nodes like areas, iterations, version control folders, and work item query folders. These permissions are inherited down the hierarchy.

Object hierarchy rules:

  • Permissions set at a higher-level node get inherited by all subnodes unless explicitly overridden.
  • If a permission isn't explicitly allowed or denied for a subnode, it inherits the permission from its parent.
  • If a permission is explicitly set for an identity on a subnode, the value inherited from the parent for that identity doesn't apply on the subnode.
  • After resolving the object hierarchy, Azure DevOps combines the applicable direct and group assignments. A Deny from another group at the resulting scope can still take precedence over an Allow.

Example:

  • Explicitly Deny on area-1 (parent node).
  • Explicitly Allow for area-1/sub-area-1 (child node).
  • In this case, the user receives an Allow on area-1/sub-area-1, overriding the inherited Deny from the parent node.

To understand why a permission is inherited, select Why? for that permission. To open a Security page, see View permissions.

Screenshot showing Permissions dialog, preview page, Why link annotated.

A new dialog opens that shows the inheritance information for that permission.

Screenshot showing Permissions dialog, current page, Why link annotated.

A new window shows the inheritance information for that permission.

Screenshot showing the Permissions trace dialog.

Security groups and membership

Security groups assign specific permissions to their members.

When you create an organization, collection, or project, Azure DevOps creates a set of default security groups and automatically assigns default permissions to these groups. You define more security groups by using the following actions:

  • Creating custom security groups at the following levels:
    • Project-level
    • Organization- or collection-level
    • Server-level (on-premises only)
  • Adding a team, which creates a team security group

You can't create an object-level security group, but you can assign a custom group to an object-level and assign permissions to that level. For more information, see Set object-level permissions.

Default security groups

Most Azure DevOps users are added to the Contributors security group and granted the Basic access level. The Contributors group provides read and write access to repositories, work tracking, pipelines, and more. Basic access provides access to all features and tasks for using Azure Boards, Azure Repos, Azure Pipelines, and Azure Artifacts. Users who need access to manage Azure Test Plans require Basic + Test Plans or an applicable Visual Studio subscription benefit.

The following security groups are defined by default for each project and organization. You typically add users or groups to the Readers, Contributors, or Project Administrators groups.

Project Organization or Collection
- Build Administrators
- Contributors
- Project Administrators
- Project Valid Users
- Readers
- Release Administrators
- TeamName Team
- Project Collection Administrators
- Project Collection Build Administrators
- Project Collection Build Service Accounts
- Project Collection Proxy Service Accounts
- Project Collection Service Accounts
- Project Collection Test Service Accounts
- Project Collection Valid Users
- Project-scoped Users
- Security Service Group

For a description of each of these groups, see Security groups, service accounts, and permissions. For default permission assignments made to the most common default security groups, see Default permissions and access.

The following security groups are defined by default for each project and project collection. You typically add users or groups to the Readers, Contributors, or Project Administrators groups.

Only add service accounts to Azure DevOps service account groups. To understand valid user groups, see Valid user groups later in this article.

Project level Collection level
- Build Administrators
- Contributors
- Project Administrators
- Project Valid Users
- Readers
- Release Administrators
- TeamName Team
- Project Collection Administrators
- Project Collection Build Administrators
- Project Collection Build Service Accounts
- Project Collection Proxy Service Accounts
- Project Collection Service Accounts
- Project Collection Test Service Accounts
- Project Collection Valid Users
- Security Service Group

Add users who manage project-level features to the Project Administrators group. These features include teams, area and iteration paths, repositories, service hooks, and service endpoints.

Add users who manage organization or collection-level features to the Project Collection Administrators group. These features include projects, policies, processes, retention policies, agent and deployment pools, and extensions. For more information, see About user, team, project, and organization-level settings.

Membership, permission, and access level management

Azure DevOps controls access through these three inter-connected functional areas:

  • Membership management supports adding individual user accounts and groups to default security groups. Each default group is associated with a set of default permissions. All users added to any security group are added to the Valid Users group. A valid user is someone who can connect to a project, collection, or organization.
  • Permission management controls access to specific functional tasks at different levels of the system. Object-level permissions set permissions on a file, folder, build pipeline, or a shared query. Permission settings correspond to Allow, Deny, Inherited allow, Inherited deny, System allow, System deny, and Not set.
  • Access level management controls access to web portal features. Based on licensing and the user's role, administrators assign Stakeholder, Basic, Basic + Test Plans, or an applicable Visual Studio subscription access level.

Each functional area uses security groups to simplify management across the deployment. You add users and groups through the web administration context. Permissions are automatically set based on the security group that you add users to. Or permissions are based on the object, project, collection, or server level to which you add groups.

Security group members can be a combination of users, other groups, and Microsoft Entra groups.

Security group members can be a combination of users, other groups, and Active Directory groups or a Workgroup.

You can create local groups or Active Directory (AD) groups to manage your users.

Active Directory and Microsoft Entra security groups

You can populate security groups by adding individual users. But, for ease of management, it's more efficient to populate these groups using Microsoft Entra ID for Azure DevOps Services and Active Directory (AD) or Windows user groups for Azure DevOps Server. This approach allows you to manage group membership and permissions more effectively across multiple computers.

If you only need to manage a small set of users, you can skip this step. But, if you anticipate that your organization might grow, consider setting up Active Directory or Microsoft Entra ID. Also, if you plan to use extra services, it's essential to configure Microsoft Entra ID for use with Azure DevOps to support billing.

Note

Without Microsoft Entra ID, all Azure DevOps users must sign in using Microsoft accounts, and you must manage account access by individual user accounts. Even if you manage account access using Microsoft accounts, set up an Azure subscription to manage billing.

To set up Microsoft Entra ID for use with Azure DevOps Services, see Connect your organization to Microsoft Entra ID.

When your organization is connected to Microsoft Entra ID, you can define and manage various organization policies to enhance security and streamline access to applications. For more information, see About security, Security-policies.

To manage organizational access with Microsoft Entra ID, see the following articles:

Azure DevOps registers changes made to a Microsoft Entra group within an hour of that change in Microsoft Entra ID. Any inherited permissions through group membership are refreshed. To refresh your Microsoft Entra membership and inherited permissions in Azure DevOps, sign out and then sign back in, or trigger a refresh to reevaluate your permission.

To set up Active Directory for use with Azure DevOps Server, see the following articles:

Install Active Directory before you install Azure DevOps Server.

Valid user groups

When you add user accounts directly to a security group, the users automatically become part of one of the following valid user groups.

  • Project Collection Valid Users: All members added to an organization-level group.
  • Project Valid Users: All members added to a project-level group.
  • Server\Azure DevOps Valid Users: All members added to server-level groups.
  • ProjectCollectionName\Project Collection Valid Users: All members added to collection-level groups.
  • ProjectName\Project Valid Users: All members added to project-level groups.

The default permissions assigned to these groups primarily provide read access, such as View build resources, View project-level information, and View collection-level information.

To access project resources, a user needs View project-level information and any permissions required for the specific resource. Area path permissions control access to work items and test artifacts within a project; they don't control whether a user can access the project. Don't change the default permissions for a Valid Users group. Denying View project-level information, View collection-level information, or View instance-level information to one of these groups can block all its members from the corresponding scope.

Project-scoped users group

By default, users you add to an organization can view organization and project information beyond the projects they're members of.

To restrict specific users, such as Stakeholders, Microsoft Entra guest users, or members of a particular security group, you can enable the Limit user visibility and collaboration to specific projects preview feature for the organization. When you enable this feature, users and groups in the Project-Scoped Users group can access only the projects to which you explicitly add them. The feature also limits their access to organization settings and identities in people pickers.

Warning

Consider the following limitations when using this preview feature:

  • The limited visibility features described in this section apply only to interactions through the web portal. By using the REST APIs or az devops CLI commands, project members can access the restricted data.
  • Users in the limited group can only select users who are explicitly added to Azure DevOps and not users who have access through Microsoft Entra group membership.
  • Guest users who are members in the limited group with default access in Microsoft Entra ID, can't search for users with the people picker.

For setup steps and limitations, see Limit user visibility.

Note

Security groups are managed at the organization level, even if they're used for specific projects. Depending on user permissions, some groups might be hidden in the web portal. To view all group names within an organization, you can use the Azure DevOps CLI tool or REST APIs. For more information, see Add and manage security groups.

Note

Security groups are managed at the collection level, even if they're used for specific projects. Depending on user permissions, some groups might be hidden in the web portal. To view all group names within a collection, you can use the Azure DevOps CLI tool or REST APIs. For more information, see Add and manage security groups.

Role-based permissions

With role-based permissions, you assign user accounts or security groups to a role, and each role has one or more permissions. The following resources support role-based permissions:

For more information, see About pipeline security roles.

The following image illustrates how security groups defined at the project and collection level can assign permissions to objects, projects, and the organization.

Conceptual diagram mapping default security groups to permission levels, cloud.

The following image illustrates how security groups defined at the project and collection-level can be assigned to permissions assigned at the object, project, and collection level. You can only define server-level security groups to server-level permissions.

Conceptual diagram mapping default security groups to permission levels, on-premises.

Members of the Project Administrators or Project Collection Administrators groups manage all team tools for all teams.

Preview features

Preview features provide early access to functionality before it becomes generally available. Users can manage preview features offered at the user level. Members of the Project Collection Administrators group can manage organization-level preview features in Azure DevOps Services and collection-level preview features in Azure DevOps Server. For more information, see Manage or enable features.

Next step