Autoriser l’accès aux API REST avec OAuth 2.0

Azure DevOps Services

Découvrez comment authentifier les utilisateurs de votre application web pour l’accès à l’API REST, afin que votre application ne continue pas à demander des noms d’utilisateur et des mots de passe.

Remarque

  • Les instructions suivantes sont destinées aux utilisateurs d’Azure DevOps Services, car OAuth 2.0 n’est pas pris en charge sur Azure DevOps Server. Les bibliothèques clientes sont une série de packages conçus spécifiquement pour étendre Azure DevOps Server fonctionnalités. Pour les utilisateurs locaux, nous vous recommandons d’utiliser les bibliothèques clientes, l’authentification Windows ou les jetons d’accès personnels (PAT) pour s’authentifier au nom d’un utilisateur.
  • Pour plus d’informations, consultez l’exemple GitHub OAuth C#.

À propos d’OAuth 2.0

Azure DevOps Services utilise le protocole OAuth 2.0 pour autoriser votre application pour un utilisateur et générer un jeton d’accès. Utilisez ce jeton lorsque vous appelez les API REST à partir de votre application. Lorsque vous appelez les API Azure DevOps Services pour cet utilisateur, utilisez le jeton d’accès de cet utilisateur. Les jetons d’accès expirent, donc actualisez le jeton d’accès s’il a expiré.

Process to get authorization.

Modèles OAuth disponibles

Lorsque vous créez une application OAuth 2.0, utilisez Microsoft Entra ID OAuth. Nous prenons toujours en charge Azure DevOps OAuth 2.0, mais nous n’investissons pas actuellement sur ce modèle.

Microsoft Entra ID OAuth

Lorsque vous créez une application OAuth d’ID Microsoft Entra, votre application est émise des jetons Microsoft Entra, et non des jetons d’accès Azure DevOps. Ces jetons ont une durée d’une heure standard avant l’expiration.

Pour plus d’informations, consultez les articles suivants :

Remarque

Lorsque vous créez des applications qui utilisent d’autres API, veillez à sélectionner les étendues nécessaires pour ces API.

Azure DevOps OAuth

Pour les applications existantes, utilisez le guide OAuth Azure DevOps. Vous pouvez également gérer les applications Azure DevOps autorisées.

Étendues

Les développeurs sont censés spécifier les étendues dont ils ont besoin pour leurs utilisateurs. Les étendues sont disponibles sur les deux modèles OAuth. Les étendues suivantes sont disponibles uniquement via des flux délégués (pour le compte de l’utilisateur). Pour connaître les étendues dont vous avez besoin pour votre application, examinez l’en-tête de la scopes page Référence de l’API pour chaque API que vous utilisez.

Certaines étendues peuvent inclure d’autres étendues, par exemple code_managecode_write. Tenez compte du nombre minimal d’étendues dont vous avez besoin lors de la demande de consentement d’étendue auprès des utilisateurs.

Important

Les étendues autorisent uniquement l’accès aux API REST et sélectionnent des points de terminaison Git. L’accès à l’API SOAP n’est pas pris en charge.

Catégorie Étendue Nom Description
Pools d’agents vso.agentpools Pools d’agents (lecture) Accorde la possibilité d’afficher des tâches, des pools, des files d’attente, des agents et des travaux en cours d’exécution ou récemment terminés pour les agents.
vso.agentpools_manage Pools d’agents (lecture, gestion) Accorde la possibilité de gérer des pools, des files d’attente et des agents.
vso.environment_manage Environnement (lecture, gestion) Accorde la possibilité de gérer des pools, des files d’attente, des agents et des environnements.
Analyse vso.analytics Analytique (lecture) Accorde la possibilité d’interroger des données d’analyse.
Audit vso.auditlog Journal d’audit (lecture) Accorde la possibilité de lire le journal d’audit aux utilisateurs.
vso.auditstreams_manage Audit Flux (lecture) Accorde la possibilité de gérer les flux d’audit aux utilisateurs.
Créer vso.build Build (lire) Accorde la possibilité d’accéder aux artefacts de build, notamment les résultats de build, les définitions et les demandes, et la possibilité de recevoir des notifications sur les événements de génération via des hooks de service.
vso.build_execute Générer (lecture et exécution) Accorde la possibilité d’accéder aux artefacts de build, notamment les résultats de build, les définitions et les demandes, ainsi que la possibilité de mettre en file d’attente une build, de mettre à jour les propriétés de build et de recevoir des notifications sur les événements de génération via des hooks de service.
Code vso.code Code (lire) Accorde la possibilité de lire le code source et les métadonnées sur les validations, les ensembles de modifications, les branches et d’autres artefacts de contrôle de version. Accorde également la possibilité de rechercher du code et d’être averti des événements de contrôle de version via des hooks de service.
vso.code_write Code (lecture et écriture) Accorde la possibilité de lire, de mettre à jour et de supprimer du code source, d’accéder aux métadonnées relatives aux validations, aux ensembles de modifications, aux branches et à d’autres artefacts de contrôle de version. Accorde également la possibilité de créer et de gérer des demandes de tirage et des révisions de code et de recevoir des notifications sur les événements de contrôle de version via des hooks de service.
vso.code_manage Code (lecture, écriture et gestion) Accorde la possibilité de lire, de mettre à jour et de supprimer du code source, d’accéder aux métadonnées relatives aux validations, aux ensembles de modifications, aux branches et à d’autres artefacts de contrôle de version. Accorde également la possibilité de créer et de gérer des référentiels de code, de créer et de gérer des demandes de tirage et des révisions de code, et de recevoir des notifications sur les événements de contrôle de version via des hooks de service.
vso.code_full Code (complet) Octroie un accès complet au code source, aux métadonnées sur les validations, les ensembles de modifications, les branches et d’autres artefacts de contrôle de version. Accorde également la possibilité de créer et de gérer des référentiels de code, de créer et de gérer des demandes de tirage et des révisions de code, et de recevoir des notifications sur les événements de contrôle de version via des hooks de service. Inclut également une prise en charge limitée des API d’om client.
vso.code_status Code (état) Accorde la possibilité de lire et d’écrire l’état de la validation et de la demande de tirage.
serveur Connecter ed vso.connected_server Serveur connecté Accorde la possibilité d’accéder aux points de terminaison nécessaires à partir d’un serveur connecté local.
Droits vso.entitlements Droits d’utilisation (lecture) Fournit un accès en lecture seule au point de terminaison des droits de licence pour obtenir les droits de compte.
vso.memberentitlementmanagement MemberEntitlement Management (lecture) Accorde la possibilité de lire les utilisateurs, leurs licences ainsi que les projets et extensions auxquels ils peuvent accéder.
vso.memberentitlementmanagement_write MemberEntitlement Management (écriture) Accorde la possibilité de gérer les utilisateurs, leurs licences ainsi que les projets et extensions auxquels ils peuvent accéder.
Extensions vso.extension Extensions (lecture) Accorde la possibilité de lire les extensions installées.
vso.extension_manage Extensions (lecture et gestion) Accorde la possibilité d’installer, de désinstaller et d’effectuer d’autres actions administratives sur les extensions installées.
vso.extension.data Données d’extension (lecture) Accorde la possibilité de lire des données (paramètres et documents) stockées par des extensions installées.
vso.extension.data_write Données d’extension (lecture et écriture) Accorde la possibilité de lire et d’écrire des données (paramètres et documents) stockées par les extensions installées.
Graph &identity vso.graph Graphe (lecture) Accorde la possibilité de lire les informations d’appartenance à l’utilisateur, au groupe, à l’étendue et au groupe.
vso.graph_manage Graph (gérer) Accorde la possibilité de lire les informations d’appartenance des utilisateurs, des groupes, de l’étendue et du groupe, et d’ajouter des utilisateurs, des groupes et de gérer les appartenances aux groupes.
vso.identity Identité (lire) Accorde la possibilité de lire des identités et des groupes.
vso.identity_manage Identité (gérer) Accorde la possibilité de lire, d’écrire et de gérer des identités et des groupes.
Groupe d’ordinateurs vso.machinegroup_manage Groupe de déploiement (lecture, gestion) Permet de gérer les pools de groupes de déploiement et d’agents.
Marché vso.gallery Marketplace Accorde l’accès en lecture aux éléments publics et privés et aux éditeurs.
vso.gallery_acquire Place de marché (acquisition) Accorde l’accès en lecture et la possibilité d’acquérir des éléments.
vso.gallery_publish Place de marché (publication) Accorde l’accès en lecture et la possibilité de charger, mettre à jour et partager des éléments.
vso.gallery_manage Place de marché (gérer) Accorde l’accès en lecture et la possibilité de publier et de gérer des éléments et des éditeurs.
Notifications vso.notification Notifications (lecture) Fournit un accès en lecture aux abonnements et aux métadonnées d’événement, y compris les valeurs de champ filtrables.
vso.notification_write Notifications (écriture) Fournit un accès en lecture et en écriture aux abonnements et un accès en lecture aux métadonnées d’événement, y compris les valeurs de champ filtrables.
vso.notification_manage Notifications (gérer) Fournit un accès en lecture, en écriture et en gestion aux abonnements et l’accès en lecture aux métadonnées d’événement, y compris les valeurs de champ filtrables.
vso.notification_diagnostics Notifications (diagnostics) Fournit l’accès aux journaux de diagnostic liés aux notifications et offre la possibilité d’activer les diagnostics pour des abonnements individuels.
Emballage vso.packaging Empaquetage (lecture) Accorde la possibilité de lire des flux et des packages.
vso.packaging_write Empaquetage (lecture et écriture) Accorde la possibilité de créer et lire des flux et des packages.
vso.packaging_manage Empaquetage (lecture, écriture et gestion) Accorde la possibilité de créer, lire, mettre à jour et supprimer des flux et des packages.
Ressources de pipeline vso.pipelineresources_use Ressources de pipeline (utilisation) Accorde la possibilité d’approuver la demande d’un pipeline pour utiliser une ressource protégée : pool d’agents, environnement, file d’attente, référentiel, fichiers sécurisés, connexion de service et groupe de variables.
vso.pipelineresources_manage Ressources de pipeline (utilisation et gestion) Accorde la possibilité de gérer une ressource protégée ou la demande d’un pipeline pour utiliser une ressource protégée : pool d’agents, environnement, file d’attente, référentiel, fichiers sécurisés, connexion de service et groupe de variables.
Projet et équipe vso.project Projet et équipe (lire) Accorde la possibilité de lire des projets et des équipes.
vso.project_write Projet et équipe (lecture et écriture) Accorde la possibilité de lire et de mettre à jour des projets et des équipes.
vso.project_manage Projet et équipe (lecture, écriture et gestion) Accorde la possibilité de créer, lire, mettre à jour et supprimer des projets et des équipes.
Version release vso.release Mise en production (lecture) Accorde la possibilité de lire les artefacts de mise en production, notamment les versions, les définitions de mise en production et l’environnement de mise en production.
vso.release_execute Mise en production (lecture, écriture et exécution) Accorde la possibilité de lire et de mettre à jour les artefacts de mise en production, notamment les versions, les définitions de mise en production et l’environnement de mise en production, ainsi que la possibilité de mettre en file d’attente une nouvelle version.
vso.release_manage Mise en production (lecture, écriture, exécution et gestion) Accorde la possibilité de lire, de mettre à jour et de supprimer des artefacts de mise en production, notamment les versions, les définitions de mise en production et l’environnement de mise en production, ainsi que la possibilité de mettre en file d’attente et d’approuver une nouvelle version.
Fichiers sécurisés vso.securefiles_read Fichiers sécurisés (lecture) Accorde la possibilité de lire des fichiers sécurisés.
vso.securefiles_write Fichiers sécurisés (lecture, création) Accorde la possibilité de lire et de créer des fichiers sécurisés.
vso.securefiles_manage Fichiers sécurisés (lecture, création et gestion) Accorde la possibilité de lire, de créer et de gérer des fichiers sécurisés.
Sécurité vso.security_manage Sécurité (gérer) Accorde la possibilité de lire, d’écrire et de gérer les autorisations de sécurité.
Connexions de service vso.serviceendpoint Points de terminaison de service (lecture) Accorde la possibilité de lire les points de terminaison de service.
vso.serviceendpoint_query Points de terminaison de service (lecture et requête) Accorde la possibilité de lire et d’interroger des points de terminaison de service.
vso.serviceendpoint_manage Points de terminaison de service (lecture, requête et gestion) Accorde la possibilité de lire, d’interroger et de gérer les points de terminaison de service.
Paramètres vso.settings Paramètres (lecture) Accorde la possibilité de lire les paramètres.
vso.settings_write Paramètres (lecture et écriture) Accorde la possibilité de créer et de lire des paramètres.
Symboles vso.symbols Symboles (lecture) Accorde la possibilité de lire des symboles.
vso.symbols_write Symboles (lecture et écriture) Accorde la possibilité de lire et d’écrire des symboles.
vso.symbols_manage Symboles (lecture, écriture et gestion) Accorde la possibilité de lire, d’écrire et de gérer des symboles.
Groupes de tâches vso.taskgroups_read Groupes de tâches (lecture) Accorde la possibilité de lire des groupes de tâches.
vso.taskgroups_write Groupes de tâches (lecture, création) Accorde la possibilité de lire et de créer des groupes de tâches.
vso.taskgroups_manage Groupes de tâches (lecture, création et gestion) Accorde la possibilité de lire, de créer et de gérer des groupes de tâches.
Tableau de bord de l’équipe vso.dashboards Tableaux de bord d’équipe (lecture) Accorde la possibilité de lire les informations du tableau de bord de l’équipe.
vso.dashboards_manage Tableaux de bord d’équipe (gérer) Accorde la possibilité de gérer les informations du tableau de bord de l’équipe.
Gestion des tests vso.test Gestion des tests (lecture) Accorde la possibilité de lire des plans de test, des cas, des résultats et d’autres artefacts associés à la gestion des tests.
vso.test_write Gestion des tests (lecture et écriture) Accorde la possibilité de lire, de créer et de mettre à jour des plans de test, des cas, des résultats et d’autres artefacts associés à la gestion des tests.
Threads vso.threads_full Threads de demande de tirage Accorde la possibilité de lire et d’écrire pour extraire des threads de commentaires de demande.
Jetons vso.tokens Jetons d’autorisation délégués Accorde la possibilité de gérer les jetons d’autorisation délégués aux utilisateurs.
vso.tokenadministration Jeton Administration istration Accorde la possibilité de gérer (afficher et révoquer) des jetons existants aux administrateurs de l’organisation.
Profil utilisateur vso.profile Profil utilisateur (lire) Accorde la possibilité de lire votre profil, comptes, collections, projets, équipes et autres artefacts organisationnels de niveau supérieur.
vso.profile_write Profil utilisateur (écriture) Accorde la possibilité d’écrire dans votre profil.
Groupes de variables vso.variablegroups_read Groupes de variables (lecture) Accorde la possibilité de lire des groupes de variables.
vso.variablegroups_write Groupes de variables (lecture, création) Accorde la possibilité de lire et de créer des groupes de variables.
vso.variablegroups_manage Groupes de variables (lecture, création et gestion) Accorde la possibilité de lire, de créer et de gérer des groupes de variables.
Wiki vso.wiki Wiki (lecture) Accorde la possibilité de lire des wikis, des pages wiki et des pièces jointes wiki. Accorde également la possibilité de rechercher des pages wiki.
vso.wiki_write Wiki (lecture et écriture) Accorde la possibilité de lire, de créer et de mettre à jour des wikis, des pages wiki et des pièces jointes wiki.
Éléments de travail vso.work Éléments de travail (lire) Octroie la possibilité de lire des éléments de travail, des requêtes, des tableaux, des zones et des itérations, ainsi que d’autres métadonnées associées au suivi des éléments de travail. Accorde également la possibilité d’exécuter des requêtes, de rechercher des éléments de travail et de recevoir des notifications sur les événements d’élément de travail via des hooks de service.
vso.work_write Éléments de travail (lire et écrire) Octroie la possibilité de lire, de créer et de mettre à jour des éléments de travail et des requêtes, de mettre à jour des métadonnées de carte, de lire des zones de lecture et des itérations chemins d’accès à d’autres métadonnées associées au suivi des éléments de travail, d’exécuter des requêtes et de recevoir des notifications sur les événements d’élément de travail via des hooks de service.
vso.work_full Éléments de travail (complet) Octroie un accès complet aux éléments de travail, aux requêtes, aux backlogs, aux plans et aux métadonnées de suivi des éléments de travail. Fournit également la possibilité de recevoir des notifications sur les événements d’élément de travail via des hooks de service.
Emprunt d’identité utilisateur user_impersonation Emprunt d’identité utilisateur Disposez d’un accès complet aux API REST Visual Studio Team Services. Demandez et/ou donnez votre consentement à cette étendue avec précaution, car elle est très puissante !