Gérer les autorisations avec l’outil en ligne de commande

Azure DevOps Services

Les autorisations accordent l’accès pour effectuer une action spécifique sur une ressource spécifique, comme décrit dans Prise en main des autorisations, de l’accès et des groupes de sécurité. Vous gérez la plupart des autorisations via le portail web. Toutefois, vous pouvez gérer les autorisations à l’aide d’outils en ligne de commande ou de l’API REST.

Azure DevOps accorde par défaut un certain nombre d’autorisations aux membres des groupes de sécurité par défaut. Vous pouvez ajouter et gérer des autorisations à un niveau plus précis avec les az devops security permission commandes. Utilisez ces commandes pour :

  • Afficher les autorisations associées aux espaces de noms de sécurité
  • Afficher des détails sur ces autorisations
  • Mettre à jour ou réinitialiser les autorisations

Remarque

Les espaces de noms et les jetons sont valides pour toutes les versions d’Azure DevOps. Ceux répertoriés ici sont valides pour Azure DevOps 2019 et versions ultérieures. Les espaces de noms peuvent être modifiés au fil du temps. Pour obtenir la dernière liste d’espaces de noms, exercez l’un des outils en ligne de commande ou de l’API REST. Certains espaces de noms ont été dépréciés comme indiqué dans l’espace de noms Security et la référence d’autorisation, les espaces de noms déconseillés et en lecture seule..

Prérequis

  • Pour gérer les jetons et les espaces de noms, vous devez être membre du groupe de sécurité de collection de projets Administration istrators. Pour plus d’informations sur les jetons, consultez l’espace de noms de sécurité et la référence d’autorisation.
  • Vous devez avoir installé l’extension CLI Azure DevOps comme décrit dans Bien démarrer avec l’interface CLI Azure DevOps.
  • Connectez-vous à Azure DevOps à l’aide de az login.
  • Pour obtenir les exemples de cet article, définissez l’organisation par défaut comme suit :
    • Pour Azure DevOps Services : az devops configure --defaults organization=YourOrganizationURL.
    • Pour Azure DevOps Server : az devops configure --defaults organization=https://ServerName/CollectionName

Commandes d’autorisation de sécurité

Entrez la commande suivante pour répertorier toutes les commandes disponibles.

az devops security permission -h

Pour plus d’informations sur les concepts liés aux autorisations de sécurité, consultez la documentation de l’API REST de sécurité

Commande Description
az devops security permission list Répertorier les jetons pour l’utilisateur ou le groupe et l’espace de noms spécifiés.
az devops security permission namespace list Répertorier tous les espaces de noms disponibles pour une organisation.
az devops security permission namespace show Affichez les détails des autorisations disponibles dans chaque espace de noms.
az devops security permission reset Réinitialisez l’autorisation pour les bits d’autorisation spécifiés.
az devops security permission reset-all Effacez toutes les autorisations de ce jeton pour un utilisateur ou un groupe.
az devops security permission show Afficher les autorisations pour le jeton, l’espace de noms et le groupe spécifiés.
az devops security permission update Attribuez l’autorisation autoriser ou refuser l’utilisateur ou le groupe spécifié.

Les paramètres suivants sont facultatifs pour toutes les commandes et ne sont pas répertoriés dans les exemples fournis dans cet article.

  • detect : détecter automatiquement l’organisation. Valeurs acceptées : false, true. La valeur par défaut est true.
  • org : URL de l’organisation Azure DevOps. Vous pouvez configurer l’organisation par défaut à l’aide de az devops configure -d organization=ORG_URL. Obligatoire si la valeur n’est pas configurée par défaut ni récupérée via git config. Exemple : --org https://dev.azure.com/MyOrganizationName/.

Répertorier les espaces de noms de sécurité

Vous pouvez répertorier tous les espaces de noms disponibles pour une organisation avec la commande az devops security permission namespace list . Pour obtenir une description de tous les espaces de noms de sécurité et jetons associés, consultez la référence de l’espace de noms et des autorisations de sécurité.

az devops security permission namespace list [--local-only]

Paramètres

  • local uniquement : Facultatif. Si la valeur est true, récupérez uniquement les espaces de noms de sécurité locaux.

    Les espaces de noms de sécurité peuvent avoir leurs données mastered dans un microservice, mais elles sont toujours visibles dans d’autres microservices. Si les données d’un espace de noms de sécurité sont masterées dans le microservice X, il est dit qu’elles sont locales dans ce microservice. Sinon, on dit qu’il est distant.

Entrez az devops security permission namespace list la liste des espaces de noms définis pour votre organisation ou votre serveur local.

Remarque

Certains espaces de noms répertoriés sont déconseillés et ne doivent pas être utilisés. Pour obtenir la liste des espaces de noms déconseillés, consultez la référence d’espace de noms, les espaces de noms déconseillés et en lecture seule.

az devops security permission namespace list --org https://dev.azure.com/OrganizationName --output table
 
Id                                    Name
------------------------------------  ------------------------------
c788c23e-1b46-4162-8f5e-d7585343b5de  ReleaseManagement
58450c49-b02d-465a-ab12-59ae512d6531  Analytics
d34d3680-dfe5-4cc6-a949-7d9c68f73cba  AnalyticsViews
62a7ad6b-8b8d-426b-ba10-76a7090e94d5  PipelineCachePrivileges
7c7d32f7-0e86-4cd6-892e-b35dbba870bd  ReleaseManagement
a6cc6381-a1ca-4b36-b3c1-4e65211e82b6  AuditLog
5a27515b-ccd7-42c9-84f1-54c998f03866  Identity
445d2788-c5fb-4132-bbef-09c4045ad93f  WorkItemTrackingAdministration
101eae8c-1709-47f9-b228-0e476c35b3ba  DistributedTask
71356614-aad7-4757-8f2c-0fb3bff6f680  WorkItemQueryFolders
2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87  Git Repositories
3c15a8b7-af1a-45c2-aa97-2cb97078332e  VersionControlItems2
2bf24a2b-70ba-43d3-ad97-3d9e1f75622f  EventSubscriber
5a6cd233-6615-414d-9393-48dbb252bd23  WorkItemTrackingProvision
49b48001-ca20-4adc-8111-5b60c903a50c  ServiceEndpoints
cb594ebe-87dd-4fc9-ac2c-6a10a4c92046  ServiceHooks
bc295513-b1a2-4663-8d1a-7017fd760d18  Chat
3e65f728-f8bc-4ecd-8764-7e378b19bfa7  Collection
cb4d56d2-e84b-457e-8845-81320a133fbb  Proxy
bed337f8-e5f3-4fb9-80da-81e17d06e7a8  Plan
2dab47f9-bd70-49ed-9bd5-8eb051e59c02  Process
11238e09-49f2-40c7-94d0-8f0307204ce4  AccountAdminSecurity
b7e84409-6553-448a-bbb2-af228e07cbeb  Library
83d4c2e6-e57d-4d6e-892b-b87222b7ad20  Environment
52d39943-cb85-4d7f-8fa8-c6baac873819  Project
58b176e7-3411-457a-89d0-c6d0ccb3c52b  EventSubscription
83e28ad4-2d72-4ceb-97b0-c7726d5502c3  CSS
9e4894c3-ff9a-4eac-8a85-ce11cafdc6f1  TeamLabSecurity
fc5b7b85-5d6b-41eb-8534-e128cb10eb67  ProjectAnalysisLanguageMetrics
bb50f182-8e5e-40b8-bc21-e8752a1e7ae2  Tagging
f6a4de49-dbe2-4704-86dc-f8ec1a294436  MetaTask
bf7bfa03-b2b7-47db-8113-fa2e002cc5b1  Iteration
fa557b48-b5bf-458a-bb2b-1b680426fe8b  Favorites
4ae0db5d-8437-4ee8-a18b-1f6fb38bd34c  Registry
c2ee56c9-e8fa-4cdd-9d48-2c44f697a58e  Graph
dc02bf3d-cd48-46c3-8a41-345094ecc94b  ViewActivityPaneSecurity
2a887f97-db68-4b7c-9ae3-5cebd7add999  Job
73e71c45-d483-40d5-bdba-62fd076f7f87  WorkItemTracking
4a9e8381-289a-4dfd-8460-69028eaa93b3  StrongBox
1f4179b3-6bac-4d01-b421-71ea09171400  Server
e06e1c24-e93d-4e4a-908a-7d951187b483  TestManagement
6ec4592e-048c-434e-8e6c-8671753a8418  SettingEntries
302acaca-b667-436d-a946-87133492041c  BuildAdministration
2725d2bc-7520-4af4-b0e3-8d876494731f  Location
83abde3a-4593-424e-b45f-9898af99034d  UtilizationPermissions
c0e7a722-1cad-4ae6-b340-a8467501e7ce  WorkItemsHub
0582eb05-c896-449a-b933-aa3d99e121d6  WebPlatform
66312704-deb5-43f9-b51c-ab4ff5e351c3  VersionControlPrivileges
93bafc04-9075-403a-9367-b7164eac6b5c  Workspaces
093cbb02-722b-4ad6-9f88-bc452043fa63  CrossProjectWidgetView
35e35e8e-686d-4b01-aff6-c369d6e36ce0  WorkItemTrackingConfiguration
0d140cae-8ac1-4f48-b6d1-c93ce0301a12  Discussion Threads
5ab15bc8-4ea1-d0f3-8344-cab8fe976877  BoardsExternalIntegration
7ffa7cf4-317c-4fea-8f1d-cfda50cfa956  DataProvider
81c27cc8-7a9f-48ee-b63f-df1e1d0412dd  Social
9a82c708-bfbe-4f31-984c-e860c2196781  Security
a60e0d84-c2f8-48e4-9c0c-f32da48d5fd1  IdentityPicker
84cc1aa4-15bc-423d-90d9-f97c450fc729  ServicingOrchestration
33344d9c-fc72-4d6f-aba5-fa317101a7e9  Build
8adf73b7-389a-4276-b638-fe1653f7efc7  DashboardsPrivileges
a39371cf-0841-4c16-bbd3-276e341bc052  VersionControlItems

Exemple : répertorier les espaces de noms de sécurité locaux

La commande suivante répertorie uniquement les espaces de noms de sécurité locaux pour votre organisation et affiche les résultats au format de tableau.

az devops security permission namespace list --local-only --output table

Id                                    Name
------------------------------------  ------------------------------
71356614-aad7-4757-8f2c-0fb3bff6f680  WorkItemQueryFolders
fa557b48-b5bf-458a-bb2b-1b680426fe8b  Favorites
4ae0db5d-8437-4ee8-a18b-1f6fb38bd34c  Registry
c2ee56c9-e8fa-4cdd-9d48-2c44f697a58e  Graph
dc02bf3d-cd48-46c3-8a41-345094ecc94b  ViewActivityPaneSecurity
2a887f97-db68-4b7c-9ae3-5cebd7add999  Job
73e71c45-d483-40d5-bdba-62fd076f7f87  WorkItemTracking
4a9e8381-289a-4dfd-8460-69028eaa93b3  StrongBox
1f4179b3-6bac-4d01-b421-71ea09171400  Server
e06e1c24-e93d-4e4a-908a-7d951187b483  TestManagement
6ec4592e-048c-434e-8e6c-8671753a8418  SettingEntries
302acaca-b667-436d-a946-87133492041c  BuildAdministration
2725d2bc-7520-4af4-b0e3-8d876494731f  Location
83abde3a-4593-424e-b45f-9898af99034d  UtilizationPermissions
c0e7a722-1cad-4ae6-b340-a8467501e7ce  WorkItemsHub
0582eb05-c896-449a-b933-aa3d99e121d6  WebPlatform
66312704-deb5-43f9-b51c-ab4ff5e351c3  VersionControlPrivileges
93bafc04-9075-403a-9367-b7164eac6b5c  Workspaces
093cbb02-722b-4ad6-9f88-bc452043fa63  CrossProjectWidgetView
35e35e8e-686d-4b01-aff6-c369d6e36ce0  WorkItemTrackingConfiguration
0d140cae-8ac1-4f48-b6d1-c93ce0301a12  Discussion Threads
5ab15bc8-4ea1-d0f3-8344-cab8fe976877  BoardsExternalIntegration
7ffa7cf4-317c-4fea-8f1d-cfda50cfa956  DataProvider
81c27cc8-7a9f-48ee-b63f-df1e1d0412dd  Social
9a82c708-bfbe-4f31-984c-e860c2196781  Security
a60e0d84-c2f8-48e4-9c0c-f32da48d5fd1  IdentityPicker
84cc1aa4-15bc-423d-90d9-f97c450fc729  ServicingOrchestration
33344d9c-fc72-4d6f-aba5-fa317101a7e9  Build
8adf73b7-389a-4276-b638-fe1653f7efc7  DashboardsPrivileges
445d2788-c5fb-4132-bbef-09c4045ad93f  WorkItemTrackingAdministration
101eae8c-1709-47f9-b228-0e476c35b3ba  DistributedTask
2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87  Git Repositories
a39371cf-0841-4c16-bbd3-276e341bc052  VersionControlItems
3c15a8b7-af1a-45c2-aa97-2cb97078332e  VersionControlItems2
2bf24a2b-70ba-43d3-ad97-3d9e1f75622f  EventSubscriber
5a6cd233-6615-414d-9393-48dbb252bd23  WorkItemTrackingProvision
49b48001-ca20-4adc-8111-5b60c903a50c  ServiceEndpoints
cb594ebe-87dd-4fc9-ac2c-6a10a4c92046  ServiceHooks
bc295513-b1a2-4663-8d1a-7017fd760d18  Chat
3e65f728-f8bc-4ecd-8764-7e378b19bfa7  Collection
cb4d56d2-e84b-457e-8845-81320a133fbb  Proxy
bed337f8-e5f3-4fb9-80da-81e17d06e7a8  Plan
2dab47f9-bd70-49ed-9bd5-8eb051e59c02  Process
11238e09-49f2-40c7-94d0-8f0307204ce4  AccountAdminSecurity
b7e84409-6553-448a-bbb2-af228e07cbeb  Library
83d4c2e6-e57d-4d6e-892b-b87222b7ad20  Environment
52d39943-cb85-4d7f-8fa8-c6baac873819  Project
58b176e7-3411-457a-89d0-c6d0ccb3c52b  EventSubscription
83e28ad4-2d72-4ceb-97b0-c7726d5502c3  CSS
9e4894c3-ff9a-4eac-8a85-ce11cafdc6f1  TeamLabSecurity
fc5b7b85-5d6b-41eb-8534-e128cb10eb67  ProjectAnalysisLanguageMetrics
bb50f182-8e5e-40b8-bc21-e8752a1e7ae2  Tagging
f6a4de49-dbe2-4704-86dc-f8ec1a294436  MetaTask
bf7bfa03-b2b7-47db-8113-fa2e002cc5b1  Iteration

Répertorier les jetons d’un espace de noms de sécurité

Vous pouvez répertorier les jetons d’un espace de noms et d’un groupe spécifiés avec la commande az devops security permission list .

az devops security permission list --id
                                   --subject
                                   [--recurse]
                                   [--token]

Paramètres

  • objet : Obligatoire. L’adresse e-mail ou le descripteur de groupe de l’utilisateur.
  • récursivité : facultatif. Si la valeur est true et que l’espace de noms est hiérarchique, ce paramètre retourne les ACL enfants des jetons.
  • jeton : facultatif. Spécifiez un jeton de sécurité individuel.

Exemple

La commande suivante répertorie les jetons au format de tableau pour l’espace de noms spécifié, qui correspond à Analytics et associé à l’utilisateur contoso@contoso.com.

az devops security permission list --id 58450c49-b02d-465a-ab12-59ae512d6531 --subject contoso@contoso.com --output table

Token                                   Effective Allow    Effective Deny
--------------------------------------  -----------------  ----------------
$/0611925a-b287-4b0b-90a1-90f1a96e9f1f  0                  0
$/087572e2-5569-49ec-af80-d3caf22b446c  0                  0
$/131271e0-a6ad-49ba-837e-2d475ab2b169  0                  0
$/14c92f9d-9fff-48ec-8171-9d1106056ab3  0                  0
$/1965830d-5fc4-4412-8c71-a1c39c939a42  0                  0
$/4b80d122-a5ca-46ec-ba28-e03d37e53404  0                  0
$/4fa8e9de-e86b-4986-ac75-f421881a7664  0                  0
$/5417a1c3-4b04-44d1-aead-50774b9dbf5f  0                  0
$/56af920d-393b-4236-9a07-24439ccaa85c  0                  0
$/69265579-a1e0-4a30-a141-ac9e3bb82572  0                  0

Afficher les détails de l’espace de noms

Vous pouvez afficher les détails des autorisations disponibles dans chaque espace de noms avec la commande az devops security permission namespace show .

az devops security permission namespace show --namespace-id <NAMESPACE_ID>

Paramètres

  • id ou namespace-id : obligatoire. ID de l’espace de noms de sécurité.

Exemple

La commande suivante présente les détails des autorisations disponibles pour l’ID d’espace de noms spécifié et retourne les résultats au format de tableau.

az devops security permission namespace show --namespace-id 58450c49-b02d-465a-ab12-59ae512d6531 --output table

Name                      Permission Description                                    Permission Bit
------------------------  --------------------------------------------------------  ----------------
Read                      View analytics                                            1
Administer                Manage analytics permissions                              2
Stage                     Push the data to staging area                             4
ExecuteUnrestrictedQuery  Execute query without any restrictions on the query form  8
ReadEuii                  Read EUII data                                            16

Réinitialiser les autorisations

Vous pouvez réinitialiser les bits d’autorisation d’un utilisateur ou d’un groupe spécifié avec la commande az devops security permission reset .

az devops security permission reset --id
                                    --permission-bit
                                    --subject
                                    --token

Paramètres

  • id ou namespace-id : obligatoire. ID de l’espace de noms de sécurité.
  • permission-bit : obligatoire. Bit d’autorisation ou ajout de bits d’autorisation qui doivent être réinitialisés pour un utilisateur ou un groupe et un jeton donnés.
  • objet : Obligatoire. L’adresse e-mail ou le descripteur de groupe de l’utilisateur.
  • jeton : obligatoire. Jeton de sécurité individuel.

Exemple

La commande suivante réinitialise le bit d’autorisation 8 d’un jeton pour l’utilisateur contoso@contoso.com dans l’espace de noms spécifié et retourne les résultats au format de table.

az devops security permission reset --id 58450c49-b02d-465a-ab12-59ae512d6531 --permission-bit 8 --subject contoso@contoso.com --token 0611925a-b287-4b0b-90a1-90f1a96e9f1f --output table

Name                      Bit    Permission Description                                    Permission Value
------------------------  -----  --------------------------------------------------------  ------------------
ExecuteUnrestrictedQuery  8      Execute query without any restrictions on the query form  Not set

Réinitialiser toutes les autorisations

Vous pouvez effacer toutes les autorisations d’un jeton pour un utilisateur ou un groupe avec la commande az devops security permission reset-all .

az devops security permission reset-all --id
                                        --subject
                                        --token
                                        [--yes]

Paramètres

  • id ou namespace-id : obligatoire. ID de l’espace de noms de sécurité.
  • objet : Obligatoire. L’adresse e-mail ou le descripteur de groupe de l’utilisateur.
  • jeton : obligatoire. Jeton de sécurité individuel.
  • oui : facultatif. Ne demande pas de confirmation.

Exemple

La commande suivante efface toutes les autorisations pour l’utilisateur dans l’espace contoso@contoso.com de noms spécifié sans avoir besoin de confirmation. Le résultat est affiché dans l’interface CLI.

az devops security permission reset-all --id 58450c49-b02d-465a-ab12-59ae512d6531 --subject contoso@contoso.com --token 0611925a-b287-4b0b-90a1-90f1a96e9f1f --yes --output table

Result
--------
True

Afficher les autorisations

Vous pouvez afficher les autorisations d’un jeton, d’un espace de noms et d’un groupe spécifiés avec la commande az devops security permission show .

az devops security permission show --id
                                   --subject
                                   --token

Paramètres

  • id ou namespace-id : obligatoire. ID de l’espace de noms de sécurité.
  • objet : Obligatoire. L’adresse e-mail ou le descripteur de groupe de l’utilisateur.
  • jeton : obligatoire. Jeton de sécurité individuel.

Exemple

La commande suivante montre les détails d’autorisation d’un jeton pour l’utilisateur dans l’espace contoso@contoso.com de noms spécifié et retourne les résultats au format de tableau.

az devops security permission show --id 58450c49-b02d-465a-ab12-59ae512d6531 --subject contoso@contoso.com --token 0611925a-b287-4b0b-90a1-90f1a96e9f1f --output table

Name                      Bit    Permission Description                                    Permission Value
------------------------  -----  --------------------------------------------------------  ------------------
Read                      1      View analytics                                            Not set
Administer                2      Manage analytics permissions                              Allow
Stage                     4      Push the data to staging area                             Not set
ExecuteUnrestrictedQuery  8      Execute query without any restrictions on the query form  Not set
ReadEuii                  16     Read EUII data                                            Deny

Mettre à jour les autorisations

Vous pouvez attribuer des autorisations d’autorisation ou de refus à un utilisateur ou un groupe spécifié avec la commande az devops security permission update .

az devops security permission update --id
                                     --subject
                                     --token
                                     [--allow-bit]
                                     [--deny-bit]
                                     [--merge {false, true}]

Paramètres

  • id ou namespace-id : obligatoire. ID de l’espace de noms de sécurité.
  • objet : Obligatoire. L’adresse e-mail ou le descripteur de groupe de l’utilisateur.
  • jeton : obligatoire. Jeton de sécurité individuel.
  • allow-bit : facultatif. Autoriser le bit ou l’ajout de bits. Obligatoire si --deny-bit est manquant.
  • deny-bit : facultatif. Refuser le bit ou l’ajout de bits. Obligatoire si --allow-bit est manquant.
  • fusion : facultatif. Si elle est définie, l’entrée de contrôle d’accès (ACE) existante a son autorisation et son refus fusionnés avec l’accès autorisé et le refus de l’ACE entrant. S’il n’est pas défini, l’ACE existant est déplacé. Les valeurs acceptées sont false ou true.

Exemple

La commande suivante met à jour les autorisations pour ExecuteUnrestrictedQuery (bit 8) pour l’utilisateur dans l’espace contoso@contoso.com de noms spécifié et affiche les résultats au format de tableau.

az devops security permission update --allow-bit 8 --id 58450c49-b02d-465a-ab12-59ae512d6531 --subject contoso@contoso.com --token 56af920d-393b-4236-9a07-24439ccaa85c --output table

Name                      Bit    Permission Description                                    Permission Value
------------------------  -----  --------------------------------------------------------  ------------------
ExecuteUnrestrictedQuery  8      Execute query without any restrictions on the query form  Allow

Espaces de noms de sécurité et leurs ID

Consultez l’espace de noms de sécurité et les informations de référence sur les autorisations pour Azure DevOps.