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 en cas d’expiration.

Processus d’obtention d’autorisation.

Modèles OAuth disponibles

Important

Lors de la création d’une application OAuth 2.0, utilisez Microsoft Entra ID OAuth. Azure DevOps OAuth 2.0 est prévu pour la dépréciation en 2026. À compter de février 2025, nous cesserons d’accepter de nouvelles applications OAuth Azure DevOps. En savoir plus dans notre billet de blog.

Microsoft Entra ID OAuth

La création d’une nouvelle plateforme peut être écrasante. Dans ce guide de création d’une application Microsoft Entra pour Azure DevOps, nous collectons des liens utiles susceptibles d’être utiles pour lancer le processus de développement d’applications OAuth sur Microsoft Entra. Pour les personnes qui migrent d’Azure DevOps OAuth vers Microsoft Entra OAuth, nous fournissons des conseils utiles à prendre en compte lors de votre effort de migration.

Azure DevOps OAuth

Pour les applications existantes, consultez le guide de l’application OAuth Azure DevOps. Vous pouvez également gérer les applications Azure DevOps autorisées à accéder à vos ressources.

Étendues

Les développeurs sont censés spécifier les étendues dont ils ont besoin pour leurs utilisateurs. Les mêmes é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 vso.code_manage vso.code_write. Par exemple, de nombreuses étendues héritent de vso.profile. Tenez compte du nombre minimal d’étendues dont vous avez besoin lors de la demande de consentement d’étendue auprès des utilisateurs.

Remarque

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 Hérite de
Sécurité avancée vso.advsec AdvancedSecurity (lecture) Accorde la possibilité de lire des alertes, des instances de résultats, des instances de résultat d’analyse.
vso.advsec_write AdvancedSecurity (lecture et écriture) Accorde la possibilité de charger des analyses dans sarif vso.advsec
vso.advsec_manage AdvancedSecurity (lecture, écriture et gestion) Accorde la possibilité de charger des analyses dans sarif vso.advsec_write
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 (lire, gérer). Accorde la possibilité de gérer des pools, des files d’attente et des agents. vso.agentpools
vso.environment_manage Environnement (lecture, gestion) Accorde la possibilité de gérer des pools, des files d’attente, des agents et des environnements. vso.agentpools_manage
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 Flux d’audit (lecture) Accorde la possibilité de gérer les flux d’audit aux utilisateurs. vso.auditlog
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.hooks_write
vso.build_execute Build (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. vso.build
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.hooks_write
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
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_write
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_manage
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 connecté 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. vso.memberentitlementmanagement
Extensions vso.extension Extensions (lecture) Accorde la possibilité de lire les extensions installées. vso.profile
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
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.profile
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. vso.extension.data
Connexions Github vso.githubconnections Connexions GitHub (lecture) Accorde la possibilité de lire les connexions GitHub et les données de référentiels GitHub.
vso.githubconnections_manage Connexions GitHub (lecture et gestion) Accorde la possibilité de lire et de gérer des connexions GitHub et des données de référentiels GitHub vso.githubconnections
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.graph
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. vso.identity
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. vso.agentpools_manage
Place de marché vso.gallery Marketplace Accorde l’accès en lecture aux éléments publics et privés et aux éditeurs. vso.profile
vso.gallery_acquire Place de marché (acquisition) Accorde l’accès en lecture et la possibilité d’acquérir des éléments. vso.gallery
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
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. vso.gallery_publish
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.profile
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
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_write
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. vso.notification
Emballage vso.packaging Empaquetage (lecture) Accorde la possibilité de lire des flux et des packages. vso.profile
vso.packaging_write Empaquetage (lecture et écriture) Accorde la possibilité de créer et lire des flux et des packages. vso.packaging
vso.packaging_manage Empaquetage (lecture, écriture et gestion) Accorde la possibilité de créer, lire, mettre à jour et supprimer des flux et des packages. vso.packaging_write
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. vso.pipelineresources_manage
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
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. vso.project_write
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.profile
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
vso.release_manage Release (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. vso.release_manage
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_read
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. vso.securefiles_write
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.profile
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
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. vso.serviceendpoint_query
Service Hooks vso.hooks Hooks de service (lecture) Accorde la possibilité de lire des abonnements et des métadonnées de hook de service, notamment les événements pris en charge, les consommateurs et les actions. (Plus public.) vso.profile
vso.hooks_write Crochets de service (lecture et écriture) Accorde la possibilité de créer et de mettre à jour des abonnements de hook de service et de lire les métadonnées, notamment les événements pris en charge, les consommateurs et les actions. (Plus public.) vso.hooks
vso.hooks_interact Hooks de service (interagir) Accorde la possibilité d’interagir et d’effectuer des actions sur les événements reçus via des hooks de service. (Plus public.) vso.profile
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.profile
vso.symbols_write Symboles (lecture et écriture) Accorde la possibilité de lire et d’écrire des symboles. vso.symbols
vso.symbols_manage Symboles (lecture, écriture et gestion) Accorde la possibilité de lire, d’écrire et de gérer des symboles. vso.symbols_write
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_read
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. vso.taskgroups_write
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. vso.dashboards
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.profile
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. vso.test
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 Administration des jetons 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. vso.profile
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_read
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. vso.variablegroups_write
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. vso.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.hooks_write
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
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. vso.work_write
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 !

Forum aux questions

Forum Aux Questions (FAQ)

Q : Puis-je utiliser OAuth avec mon application de téléphone mobile ?

R : Non. Azure DevOps Services prend uniquement en charge le flux de serveur web. Il n’existe donc aucun moyen d’implémenter OAuth, car vous ne pouvez pas stocker en toute sécurité la clé secrète de l’application.

Q : Puis-je utiliser OAuth avec les points de terminaison SOAP et les API REST ?

R : Non. OAuth est pris en charge uniquement dans les API REST.