Partager via


Authentification OAuth 2.0 pour les API REST Azure DevOps

Azure DevOps Services

Découvrez comment utiliser OAuth 2.0 pour authentifier vos applications pour l’accès à l’API REST Azure DevOps sans demander aux utilisateurs de fournir des informations d’identification à plusieurs reprises.

Importante

Nous vous recommandons d’utiliser Microsoft Entra ID OAuth pour les nouvelles applications. Azure DevOps OAuth 2.0 est obsolète et n'accepte plus de nouvelles inscriptions à partir d'avril 2025, avec un abandon complet prévu pour 2026.

Fonctionnement d’OAuth 2.0 avec Azure DevOps

Remarque

OAuth 2.0 est disponible uniquement pour Azure DevOps Services, et non pour Azure DevOps Server. Pour les scénarios locaux, utilisez des bibliothèques clientes, l’authentification Windows ou des jetons d’accès personnels.

Azure DevOps Services utilise le protocole OAuth 2.0 pour autoriser les applications et générer des jetons d’accès pour les appels d’API REST. Le processus implique les étapes suivantes :

  • Inscription d’application : inscrivez votre application auprès du fournisseur OAuth.
  • Autorisation de l’utilisateur : accordez l’autorisation à votre application d’accéder aux données utilisateur.
  • Échange de jetons : recevoir un jeton d’accès pour effectuer des appels d’API.
  • Accès à l’API : utilisez le jeton pour les demandes d’API REST authentifiées.
  • Actualisation du jeton : actualisez les jetons expirés pour maintenir l’accès.

Diagramme montrant le processus de flux d’autorisation OAuth 2.0 de l’inscription d’application à l’accès à l’API.

Options d’implémentation OAuth

Choisissez l’implémentation OAuth appropriée en fonction des besoins de votre application.

Microsoft Entra ID OAuth fournit la méthode d’authentification la plus sécurisée et la plus future pour les applications Azure DevOps. Les avantages sont les suivants :

  • Intégration d’entreprise : intégration transparente avec l’infrastructure Microsoft Entra ID existante.
  • Sécurité renforcée : les fonctionnalités de sécurité avancées incluent l’accès conditionnel Microsoft Entra et l’authentification multifacteur.
  • Prise en charge future : Plateforme gérée et prise en charge activement.
  • Identité unifiée : expérience d’authentification unique dans les services Microsoft.

Prise en main : suivez notre guide OAuth d’ID Microsoft Entra pour obtenir des détails sur l’implémentation et des instructions de migration.

Azure DevOps OAuth (déconseillé)

Avertissement

Azure DevOps OAuth est déconseillé. Les nouvelles inscriptions d’applications ne sont plus acceptées à compter d’avril 2025. Le service est planifié pour une dépréciation complète en 2026. Migrez des applications existantes vers l’ID OAuth De Microsoft Entra.

Pour les applications OAuth Azure DevOps existantes :

Planification de la migration : commencez à planifier votre migration vers l’ID OAuth Microsoft Entra. Le guide de migration fournit des conseils et des considérations pour une transition fluide.

Étendues OAuth

Les étendues définissent les ressources Azure DevOps auxquelles votre application peut accéder. Microsoft Entra ID OAuth et Azure DevOps OAuth utilisent les mêmes définitions d’étendue.

Considérations principales de l'étendue

  • Principe du privilège minimum : demandez uniquement les étendues minimales dont votre application a besoin.
  • Héritage de l’étendue : certaines étendues incluent d’autres (par exemple, vso.code_manage inclut vso.code_write).
  • Couverture des API : les étendues permettent d’accéder aux API REST et de sélectionner uniquement les points de terminaison Git (API SOAP non prises en charge).
  • Consentement de l’utilisateur : les utilisateurs doivent accorder explicitement l’autorisation pour chaque étendue demandée.

Rechercher les étendues requises

Pour déterminer les étendues dont votre application a besoin :

  • Consultez la documentation de référence de l’API pour chaque point de terminaison que vous envisagez d’utiliser.
  • Recherchez l’en-tête scopes sur chaque page d’API.
  • Pour éviter de demander des autorisations redondantes, envisagez les relations de portée.

Étendues disponibles

Catégorie Étendue Nom Privilège élevé Descriptif Hérite de
Sécurité avancée vso.advsec Sécurité avancée (lecture) Oui Accorde la possibilité de lire des alertes, des instances de résultat et des instances de résultats d’analyse.
vso.advsec_write Sécurité avancée (lecture et écriture) Oui Accorde la possibilité de charger des analyses dans serif. vso.advsec
vso.advsec_manage Sécurité avancée (lecture, écriture et gestion) Oui Accorde la possibilité de charger des analyses dans serif. 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 (lecture et gestion) Oui Accorde la possibilité de gérer des pools, des files d’attente et des agents. vso.agentpools
vso.environment_manage Environnement (lecture et gestion) Oui Accorde la possibilité de gérer des pools, des files d’attente, des agents et des environnements. vso.agentpools_manage
Analytics vso.analytics Analyse (lecture) Accorde la possibilité d’interroger des données d’analyse.
Vérification vso.auditlog Journal d’audit (lecture) Accorde la possibilité de lire le journal d’audit aux utilisateurs.
vso.auditstreams_manage Flux d’audit (lecture) Oui Accorde la possibilité de gérer les flux d’audit aux utilisateurs. vso.auditlog
Construire vso.build Build (lire) Accorde la possibilité d’accéder aux artéfacts de build, notamment les résultats de build, les définitions et les demandes, ainsi que la possibilité de recevoir des notifications sur les événements de construction via des *service hooks*. vso.hooks_write
vso.build_execute Build (lecture et exécution) Oui Accorde la possibilité d’accéder aux artefacts de build, notamment les résultats de build, les définitions et les demandes. Accorde également 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 build 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) Oui Accorde la possibilité de lire, de mettre à jour et de supprimer du code source et 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) Oui 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) Oui 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 OM Client. vso.code_manage
vso.code_status Code (état) Accorde la possibilité de lire et d’écrire l’état de validation et de demande d’extraction.
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 (lecture) Octroie un accès en lecture seule aux points de terminaison de droits de licence pour obtenir les droits de compte.
vso.memberentitlementmanagement Gestion des droits des membres (lecture) Accorde la possibilité de lire les utilisateurs, leurs licences et les projets et extensions auxquels ils peuvent accéder.
vso.memberentitlementmanagement_write Gestion des droits des membres (écriture) Oui Accorde la possibilité de gérer les utilisateurs et 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 (lire et gérer) Oui 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) Oui Accorde la possibilité de lire et de gérer les connexions GitHub et les données de référentiels GitHub. vso.githubconnections
Graphique et identité vso.graph Graphe (lecture) Accorde la capacité de lire les informations sur l'utilisateur, le groupe, l’étendue et l'appartenance au groupe.
vso.graph_manage Graphe (gestion) Oui Accorde la possibilité de lire les informations d’appartenance des utilisateurs, des groupes, de l’étendue et des groupes, d’ajouter des utilisateurs et 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é (gestion) Oui Accorde la possibilité de lire, d’écrire et de gérer des identités et des groupes. vso.identity
Groupe de machines vso.machinegroup_manage Groupe de déploiement (lecture, gestion) Oui Accorde la possibilité de gérer les pools de groupes de déploiement et d’agents. vso.agentpools_manage
Place de marché vso.gallery Place de marché 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 objets. vso.gallery
vso.gallery_publish Place de marché (publication) Oui 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) Oui 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) Accorde l’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) Accorde l’accès en lecture et en écriture aux abonnements et l’accès en lecture aux métadonnées d’événement, y compris les valeurs de champ filtrables. vso.notification
vso.notification_manage Notifications (gestion) Accorde l’accès en lecture, écriture et 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) Accorde l’accès aux journaux de diagnostic liés aux notifications et accorde la possibilité d’activer les diagnostics pour des abonnements individuels. vso.notification
Emballage vso.packaging Création de package (lecture) Accorde la possibilité de lire des flux et des packages. vso.profile
vso.packaging_write Empaquetage (lecture et écriture) Oui Accorde la possibilité de créer et lire des flux et des packages. vso.packaging
vso.packaging_manage Empaquetage (lecture, écriture et gestion) Oui 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) Oui 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) Oui 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_use
Projet et équipe vso.project Projet et équipe (lire) Permet de consulter les projets et les é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) Oui Accorde la possibilité de créer, lire, mettre à jour et supprimer des projets et des équipes. vso.project_write
Libération vso.release Release (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) Oui 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. Accorde également la possibilité de mettre en file d’attente une nouvelle version. vso.release
vso.release_manage Mise en production (lecture, écriture, exécution et gestion) Oui 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. Accorde également la possibilité de mettre en file d’attente et d’approuver une nouvelle version. vso.release_execute
Fichiers sécurisés vso.securefiles_read Fichiers sécurisés (lecture) Oui Accorde la possibilité de lire des fichiers sécurisés.
vso.securefiles_write Fichiers sécurisés (lecture et création) Oui 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) Oui Accorde la possibilité de lire, de créer et de gérer des fichiers sécurisés. vso.securefiles_write
Security vso.security_manage Sécurité (gérer) Oui 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) Oui Accorde la possibilité de lire, d’interroger et de gérer les points de terminaison de service. vso.serviceendpoint_query
Crochets de service vso.hooks Crochets de service (lecture) Accorde la possibilité de lire des abonnements et des métadonnées de crochets de service, notamment les événements pris en charge, les utilisateurs et les actions. (N'est 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 crochets de service et de lire les métadonnées, notamment les événements, consommateurs et actions pris en charge. (N'est plus public.) vso.hooks
vso.hooks_interact Crochets de service (interaction) Accorde la possibilité d'interagir et d'effectuer des actions sur les événements reçus via des crochets de service. (N'est 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 lire et d’écrire des paramètres. vso.settings
Symboles vso.symbols Symboles (à lire) 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 et 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) Oui Accorde la possibilité de lire, de créer et de gérer des groupes de tâches. vso.taskgroups_write
Tableau de bord d’équipe vso.dashboards Tableaux de bord d’équipe (à lire) 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 lié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 liés à la gestion des tests. vso.test
Threads vso.threads_full Threads PR Accorde la possibilité de lire et d'écrire dans les fils de discussion des requêtes pull.
Tokens vso.tokens Jetons d’autorisation délégués Oui Accorde la possibilité de gérer les jetons d’autorisation délégués aux utilisateurs.
vso.tokenadministration Administration des jetons Oui 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 et 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) Oui 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) Accorde 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 lié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) Accorde 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 chemins d’accès de zone de lecture et d’itérations et d’autres métadonnées lié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) Accorde 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. Accorde é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 Oui Octroie un accès complet aux API REST Visual Studio Team Services. Demandez ou donnez votre consentement à cette étendue avec précaution, car elle est très puissante.

Questions fréquentes

Q. Puis-je utiliser OAuth avec des applications mobiles ?

A. Non. Azure DevOps Services prend uniquement en charge le flux de serveur web (flux de code d’autorisation), qui nécessite un stockage sécurisé d’un secret d’application. Les applications mobiles ne peuvent pas stocker en toute sécurité les secrets, ce qui rend OAuth inadapté aux scénarios mobiles.

Alternative pour les applications mobiles : utilisez des jetons d’accès personnels pour l’authentification des applications mobiles.

Q. OAuth fonctionne-t-il avec toutes les API Azure DevOps ?

A. OAuth prend en charge les API REST et sélectionne uniquement les points de terminaison Git. Les API SOAP ne prennent pas en charge l’authentification OAuth.

Q. Comment migrer d’Azure DevOps OAuth vers Microsoft Entra ID OAuth ?

A. Suivez le guide de migration OAuth de l’ID Microsoft Entra, qui inclut :

  • Instructions de migration pas à pas.
  • Exemples de code et bonnes pratiques.
  • Considérations relatives à la chronologie pour la dépréciation.

Q. Que se passe-t-il pour mon application OAuth Azure DevOps existante après 2026 ?

A. Les applications OAuth Azure DevOps existantes arrêtent de fonctionner lorsque le service est entièrement déconseillé en 2026. Planifiez votre migration vers Microsoft Entra ID OAuth bien avant cette échéance.

Choisir votre chemin d’implémentation