Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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.
Options d’implémentation OAuth
Choisissez l’implémentation OAuth appropriée en fonction des besoins de votre application.
Microsoft Entra ID OAuth (recommandé)
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 :
- Pour plus d’informations sur l’implémentation actuelle, consultez le guide OAuth Azure DevOps .
- Planifiez la migration vers Microsoft Entra ID OAuth avant 2026.
- Gérez les autorisations d’application existantes en fonction des besoins.
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_manageinclutvso.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
scopessur 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
- Pour les nouvelles applications :Build avec l’ID Microsoft Entra OAuth
- Pour les applications OAuth Azure DevOps existantes :planifier votre migration vers l’ID Microsoft Entra
- Pour les applications existantes qui ont besoin d’une prise en charge immédiate :Documentation OAuth Azure DevOps