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.
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 ! |
Questions fréquentes (FAQ)
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.