Add and manage security groups

Azure DevOps Services

Security groups are used to manage permissions and access as described in Get started with permissions, access, and security groups. For example, members of the Contributors group or Project Administrators group are assigned the permissions that are allowed for those groups.

Azure DevOps is pre-configured with default security groups. You can add and manage security groups for your organization or project with the az devops security group commands. Use this command to perform the following tasks.

  • Create a new security group
  • View security groups and security group details
  • Update or delete a security group
  • Manage security group memberships for groups and users

Note

This article applies to Azure DevOps Services only. For Azure DevOps Server, you can manage security groups using the TFSSecurity command.

Prerequisites

  • To add and manage security groups, you must be a member of the Project Collection Administrators security group.
  • You must have installed the Azure DevOps CLI extension as described in Get started with Azure DevOps CLI.
  • Sign into Azure DevOps using az login.
  • For the examples in this article, set the default organization as follows: az devops configure --defaults organization=YourOrganizationURL.

Security group commands

Command Description
az devops security group create Create an Azure DevOps security group.
az devops security group delete Delete an Azure DevOps security group.
az devops security group list List all the groups in a project or organization.
az devops security group show Show group details.
az devops security group update Update name and description for a security group.
az devops security group membership add Add a member to a security group.
az devops security group membership list List the memberships for a group or user.
az devops security group membership remove Remove a member from a security group.

The following parameters are optional for all commands, and not listed in the examples provided in this article.

  • detect: Automatically detect organization. Accepted values: false, true. Default is true.
  • org: Azure DevOps organization URL. You can configure the default organization using az devops configure -d organization=ORG_URL. Required if not configured as default or picked up via git config. Example: --org https://dev.azure.com/MyOrganizationName/.

Create a security group

You can create a security group with the az devops security group create command.

az devops security group create [--description]
                                [--email-id]
                                [--groups]
                                [--name]
                                [--origin-id]
                                [--project]
                                [--scope {organization, project}]

Optional parameters

  • description: Description of the new security group.
  • email-id: Create new group using the email address as a reference to an existing group from a Microsoft Entra backed provider. Required if name or origin-id is missing.
  • groups: A comma-separated list of descriptors referencing groups you want the newly created group to join.
  • name: Name of the new security group. Required if origin-id or email-id is missing.
  • origin-id: Create new group using the OriginID as a reference to an existing group from a Microsoft Entra backed provider. Required if name or email-id is missing.
  • project: Name or ID of the project in which the group should be created.
  • scope: Create group at project or organization level. Accepted values are organization and project (default).

Example

The following command creates the Account Management security group in the project MyFirstProject and shows the result in table format.

az devops security group create --name "Account Management" --project MyFirstProject --description "Management team focused on creating and maintaining customer services" --output table

Name                                 Description
-----------------------------------  ---------------------------------------------------------------------
[MyFirstProject]\Account Management  Management team focused on creating and maintaining customer services

Delete a security group

You can delete a security group with the az devops security group delete command.

az devops security group delete --id
                                [--yes]

Parameters

  • id: Required. Security group descriptor. To obtain a descriptor, use the az devops security group list command.
  • yes: Optional. Don't prompt for confirmation.

Example

The following command deletes the security group with the specified descriptor and doesn't prompt for confirmation.

az devops security group delete --id vssgp.Uy0xLTktMTU1MTM3NDI0NS0xODI5NDgwMzA1LTEzNjM2MTczNTEtMjI0NzE1OTUyMC03ODEzNDk2MjItMC0wLTAtMC0x --yes

List security groups

You can list all the security groups in a project or organization with the az devops security group list command.

az devops security group list [--continuation-token]
                              [--project]
                              [--scope {organization, project}]
                              [--subject-types]

Optional parameters

  • continuation-token: If there are more results that can't be returned in a single page, the result set will contain a continuation token for retrieval of the next set of results.
  • project: List groups for a particular project.
  • scope: List the groups at project or organization level. Accepted values are organization and project (default).
  • subject-types: A comma-separated list of user subject subtypes to reduce the retrieved results. You can give initial part of descriptor (before the dot) as a filter, for example, vssgp,aadgp.

Example

The following command lists the name and descriptor for all security groups in MyFirstProject, and shows the results in table format.

az devops security group list --project MyFirstProject --output table

Name                                     Descriptor
---------------------------------------  --------------------------------------------------------------------------------------------------------------------------------------------------
[MyFirstProject]\Contributors            vssgp.Uy0xLTktMTU1MTM3NDI0NS0zMjgyMTE0Mzg4LTcyMDc3NjM2LTI5MzA1OTM5MTEtMTI2ODYyOTM0My0xLTE0MzUxMDc1MzctMzkwMDAzNTkwNS0zMTk5MDU1NDY1LTM4MDE2ODQ3MzM
[MyFirstProject]\Project Valid Users     vssgp.Uy0xLTktMTU1MTM3NDI0NS0xODI5NDgwMzA1LTEzNjM2MTczNTEtMjI0NzE1OTUyMC03ODEzNDk2MjItMC0wLTAtMC0z
[MyFirstProject]\Account Management      vssgp.Uy0xLTktMTU1MTM3NDI0NS0xODI5NDgwMzA1LTEzNjM2MTczNTEtMjI0NzE1OTUyMC03ODEzNDk2MjItMS0zNDU1MDI4NTE4LTI5Nzg5OTAxNTYtMjI4OTU2NzYyOS0xOTM2NDU3NTYw
[MyFirstProject]\Project Team            vssgp.Uy0xLTktMTU1MTM3NDI0NS0zMjgyMTE0Mzg4LTcyMDc3NjM2LTI5MzA1OTM5MTEtMTI2ODYyOTM0My0xLTM0OTQwNjM0ODktMjg4NDE3MTA4Mi0yMjkxMTIwNTYwLTM3NDc2NDkyNA
[MyFirstProject]\Readers                 vssgp.Uy0xLTktMTU1MTM3NDI0NS0zMjgyMTE0Mzg4LTcyMDc3NjM2LTI5MzA1OTM5MTEtMTI2ODYyOTM0My0xLTQ0MzQzMTA1My0yMTcyODUzNTc2LTI1MjY0NzgwNjMtMzY1NjU0NjczNQ
[MyFirstProject]\Account Administrators  vssgp.Uy0xLTktMTU1MTM3NDI0NS0xODI5NDgwMzA1LTEzNjM2MTczNTEtMjI0NzE1OTUyMC03ODEzNDk2MjItMS02NTAxNzIxNjctMzk4MTU5MTEwNC0zMjE1MTIzNjI0LTEyMTMyOTQwNQ
[MyFirstProject]\Project Administrators  vssgp.Uy0xLTktMTU1MTM3NDI0NS0xODI5NDgwMzA1LTEzNjM2MTczNTEtMjI0NzE1OTUyMC03ODEzNDk2MjItMC0wLTAtMC0x
[MyFirstProject]\Build Administrators    vssgp.Uy0xLTktMTU1MTM3NDI0NS0zMjgyMTE0Mzg4LTcyMDc3NjM2LTI5MzA1OTM5MTEtMTI2ODYyOTM0My0xLTI0MDEzNTE5NjItMzM2NTg2MzA5LTI2Mzg2ODkzMDktMzk5NTQ3OTU3MQ

Show security group details

You can show the details of a security group with the az devops security group show command.

az devops security group show --id

Parameters

  • id: Required. Security group descriptor.

Example

The following command shows details for the Project Valid Users security group in table format.

az devops security group show --id vssgp.Uy0xLTktMTU1MTM3NDI0NS0xODI5NDgwMzA1LTEzNjM2MTczNTEtMjI0NzE1OTUyMC03ODEzNDk2MjItMC0wLTAtMC0z --output table

Name                                  Description
------------------------------------  ------------------------------------------------------
[MyFirstProject]\Project Valid Users  Members of this group have access to the team project.

Update a security group

You can update the name and description of a security group with the az devops security group update command.

az devops security group update --id
                                [--description]
                                [--name]

Parameters

  • id: Required. Security group descriptor.
  • description: Optional. New description for the security group. Required if name is missing.
  • name: Optional. New name for the security group. Required if description is missing.

Example

The following command changes the name of the security group with the specified descriptor and shows the result in YAML format.

az devops security group update --id vssgp.Uy0xLTktMTU1MTM3NDI0NS0xODI5NDgwMzA1LTEzNjM2MTczNTEtMjI0NzE1OTUyMC03ODEzNDk2MjItMS0zNDU1MDI4NTE4LTI5Nzg5OTAxNTYtMjI4OTU2NzYyOS0xOTM2NDU3NTYw --name "Management Team" --output yaml

description: Management team focused on creating and maintaining customer services
descriptor: vssgp.Uy0xLTktMTU1MTM3NDI0NS0xODI5NDgwMzA1LTEzNjM2MTczNTEtMjI0NzE1OTUyMC03ODEzNDk2MjItMS0zNDU1MDI4NTE4LTI5Nzg5OTAxNTYtMjI4OTU2NzYyOS0xOTM2NDU3NTYw
displayName: Management Team
domain: vstfs:///Classification/TeamProject/5417a1c3-4b04-44d1-aead-50774b9dbf5f
isCrossProject: null
isDeleted: null
isGlobalScope: null
isRestrictedVisible: null
legacyDescriptor: null
localScopeId: null
mailAddress: null
origin: vsts
originId: 8fe47a49-bfab-4356-9a85-90c5e62110be
principalName: '[MyFirstProject]\Management Team'
scopeId: null
scopeName: null
scopeType: null
securingHostId: null
specialType: null
subjectKind: group
url: https://vssps.dev.azure.com/fabrikam/_apis/Graph/Groups/vssgp.Uy0xLTktMTU1MTM3NDI0NS0xODI5NDgwMzA1LTEzNjM2MTczNTEtMjI0NzE1OTUyMC03ODEzNDk2MjItMS0zNDU1MDI4NTE4LTI5Nzg5OTAxNTYtMjI4OTU2NzYyOS0xOTM2NDU3NTYw

Add a member to a group

You can add a member to a security group with the az devops security group membership add command.

az devops security group membership add --group-id
                                        --member-id

Parameters

  • group-id: Required. Descriptor of the group to which member is to be added.
  • member-id: Required. Descriptor of the group or email address of the user to be added.

Example

The following command adds the user contoso@contoso.com to the specified security group and shows the results in table format.

az devops security group membership add --group-id vssgp.Uy0xLTktMTU1MTM3NDI0NS0yMjc3MTY5NTAtOTkzNjA1MTg2LTI1ODQxNTkyOTktMjYzMDUyNzA2OC0xLTQxNDY0Mzc4MzktMzgxMDM2MDM5MS0yNjE0MjU5MzI3LTI5MjI2MTc3OTA --member-id contoso@contoso.com --output table

Name                                 Type    Email
-----------------------------------  ------  -------------------
[MyFirstProject]\Account Management  group
contoso@contoso.com                  user    contoso@contoso.com

List memberships for a group or user

You can list memberships for a group or user with the az devops security group membership list command.

az devops security group membership list --id
                                         [--relationship {memberof, members}]

Parameters

  • id: Required. Security group descriptor or user email address whose membership details are required.
  • relationship: Optional. Get member of or members information for the group. The accepted values are memberof and members.

Examples

The following command lists the members of the specified security group and shows the results in table format.

az devops security group membership list --id vssgp.Uy0xLTktMTU1MTM3NDI0NS0yMjc3MTY5NTAtOTkzNjA1MTg2LTI1ODQxNTkyOTktMjYzMDUyNzA2OC0xLTQxNDY0Mzc4MzktMzgxMDM2MDM5MS0yNjE0MjU5MzI3LTI5MjI2MTc3OTA --output table

Name                 Type    Email                Descriptor
-------------------  ------  -------------------  ----------------------------------------------------
contoso@contoso.com  user    contoso@contoso.com  msa.NDMzMmNjOWYtYzY4Zi03YTNlLTk2ZTktYmYwM2U4NjgxOTRh

Here is another example that lists the members of the EMail team for the Fabrikam Fiber project.

az devops security group membership list --id "[Fabrikam Fiber]\Email" --output table
Name               Type    Email                       Descriptor
-----------------  ------  --------------------------  ----------------------------------------------------
Christie Church    user    fabrikamfiber1@hotmail.com  msa.OThjODMzM2ItMmI4Ny03YTkwLThmZGItYWQwYmQ1YWE4MzJk
Raisa Pokrovskaya  user    fabrikamfiber5@hotmail.com  msa.ZmUwYjk5NmYtZTAyNS03NzBkLTgxNmYtMzk1NDQwYzViMzgw

Remove a member from a group

You can remove a member from a security group with the az devops security group membership remove command.

az devops security group membership remove --group-id
                                           --member-id
                                           [--yes]

Parameters

  • group-id: Required. Descriptor of the group from which member needs to be removed.
  • member-id: Required. Descriptor of the group or email address of the user to be removed.
  • yes: Optional. Don't prompt for confirmation.

Example

The following command removes the user contoso@contoso.com from the specified security group without prompting for confirmation.

az devops security group membership remove --group-id vssgp.Uy0xLTktMTU1MTM3NDI0NS0yMjc3MTY5NTAtOTkzNjA1MTg2LTI1ODQxNTkyOTktMjYzMDUyNzA2OC0xLTQxNDY0Mzc4MzktMzgxMDM2MDM5MS0yNjE0MjU5MzI3LTI5MjI2MTc3OTA --member-id contoso@contoso.com --yes