Auktorisera åtkomst till REST-API:er med OAuth 2.0
Azure DevOps Services
Lär dig hur du autentiserar dina webbappsanvändare för REST API-åtkomst, så att appen inte fortsätter att be om användarnamn och lösenord.
Kommentar
- Följande vägledning är avsedd för Azure DevOps Services-användare eftersom OAuth 2.0 inte stöds på Azure DevOps Server. Klientbibliotek är en serie paket som skapats specifikt för att utöka Azure DevOps Server-funktioner. För lokala användare rekommenderar vi att du använder klientbibliotek, Windows Auth eller personliga åtkomsttoken (PAT) för att autentisera åt en användare.
- Mer information finns i GitHub-exemplet C# OAuth.
Om OAuth 2.0
Azure DevOps Services använder OAuth 2.0-protokollet för att auktorisera din app för en användare och generera en åtkomsttoken. Använd den här token när du anropar REST-API:erna från ditt program. När du anropar Azure DevOps Services-API:er för den användaren använder du användarens åtkomsttoken. Åtkomsttoken upphör att gälla, så uppdatera åtkomsttoken om den har upphört att gälla.
Tillgängliga OAuth-modeller
Viktigt!
När du skapar en ny OAuth 2.0-app använder du Microsoft Entra ID OAuth. Azure DevOps OAuth 2.0 är planerat för utfasning 2026. Från och med februari 2025 kommer vi att sluta acceptera nya Azure DevOps OAuth-appar. Läs mer i vårt blogginlägg.
Microsoft Entra ID OAuth
Att bygga på en ny plattform kan vara överväldigande. I den här guiden för att skapa en Entra-app för Azure DevOps samlar vi in användbara länkar som kan vara användbara för att starta OAuth-apputvecklingsprocessen på Microsoft Entra. För personer som migrerar från Azure DevOps OAuth till Microsoft Entra OAuth ger vi användbara tips att tänka på under migreringen.
Azure DevOps OAuth
För befintliga appar kan du läsa appguiden för Azure DevOps OAuth. Du kan också hantera vilka Azure DevOps-appar som har behörighet att komma åt dina resurser.
Omfattningar
Utvecklare förväntas ange vilka omfång de behöver från sina användare. Samma omfång är tillgängliga för båda OAuth-modellerna. Följande omfång är endast tillgängliga via delegerade (å användarens vägnar).
Om du vill ta reda på vilka omfång du behöver för din app tittar du under scopes
rubriken på SIDAN API-referens för varje API som du använder.
Vissa omfång kan omfatta andra omfång, vso.code_manage
till exempel .vso.code_write
Till exempel ärver många omfång från vso.profile
. Tänk på vad som är det minsta antalet omfång som du behöver när du begär omfångsmedgivande från användare.
Kommentar
Omfång aktiverar endast åtkomst till REST-API:er och väljer Git-slutpunkter. SOAP API-åtkomst stöds inte.
Kategori | Omfattning | Name | beskrivning | Ärver från |
---|---|---|---|---|
Avancerad säkerhet | vso.advsec |
AdvancedSecurity (läs) | Ger möjlighet att läsa aviseringar, resultatinstanser, analysresultatinstanser. | |
vso.advsec_write |
AdvancedSecurity (läsa och skriva) | Ger möjlighet att ladda upp analyser i sarif | vso.advsec |
|
vso.advsec_manage |
AdvancedSecurity (läsa, skriva och hantera) | Ger möjlighet att ladda upp analyser i sarif | vso.advsec_write |
|
Agentpooler | vso.agentpools |
Agentpooler (läs) | Ger möjlighet att visa uppgifter, pooler, köer, agenter och för närvarande aktiva eller nyligen slutförda jobb för agenter. | |
vso.agentpools_manage |
Agentpooler (läsa, hantera) | Ger möjlighet att hantera pooler, köer och agenter. | vso.agentpools |
|
vso.environment_manage |
Miljö (läsa, hantera) | Ger möjlighet att hantera pooler, köer, agenter och miljöer. | vso.agentpools_manage |
|
Analys | vso.analytics |
Analys (läs) | Ger möjlighet att köra frågor mot analysdata. | |
Granskning | vso.auditlog |
Granskningslogg (läs) | Ger användarna möjlighet att läsa granskningsloggen. | |
vso.auditstreams_manage |
Granska strömmar (läs) | Ger möjlighet att hantera granskningsströmmar till användare. | vso.auditlog |
|
Bygge | vso.build |
Skapa (läs) | Ger möjlighet att komma åt byggartefakter, inklusive byggresultat, definitioner och begäranden, samt möjlighet att ta emot meddelanden om bygghändelser via tjänstkrokar. | vso.hooks_write |
vso.build_execute |
Skapa (läsa och köra) | Ger möjlighet att komma åt byggartefakter, inklusive byggresultat, definitioner och begäranden, samt möjlighet att köa bygge, uppdatera byggegenskaper och möjlighet att ta emot meddelanden om bygghändelser via tjänstkrokar. | vso.build |
|
Code | vso.code |
Kod (läs) | Ger möjlighet att läsa källkod och metadata om incheckningar, ändringsuppsättningar, grenar och andra artefakter för versionskontroll. Ger också möjlighet att söka efter kod och få meddelanden om versionskontrollhändelser via tjänstkrokar. | vso.hooks_write |
vso.code_write |
Kod (läsa och skriva) | Ger möjlighet att läsa, uppdatera och ta bort källkod, komma åt metadata om incheckningar, ändringsuppsättningar, grenar och andra artefakter för versionskontroll. Ger även möjlighet att skapa och hantera pull-begäranden och kodgranskningar och att ta emot meddelanden om versionskontrollhändelser via tjänstkrokar. | vso.code |
|
vso.code_manage |
Kod (läsa, skriva och hantera) | Ger möjlighet att läsa, uppdatera och ta bort källkod, komma åt metadata om incheckningar, ändringsuppsättningar, grenar och andra artefakter för versionskontroll. Ger också möjlighet att skapa och hantera kodlagringsplatser, skapa och hantera pull-begäranden och kodgranskningar samt att ta emot meddelanden om versionskontrollhändelser via tjänstkrokar. | vso.code_write |
|
vso.code_full |
Kod (fullständig) | Ger fullständig åtkomst till källkod, metadata om incheckningar, ändringsuppsättningar, grenar och andra artefakter för versionskontroll. Ger också möjlighet att skapa och hantera kodlagringsplatser, skapa och hantera pull-begäranden och kodgranskningar samt att ta emot meddelanden om versionskontrollhändelser via tjänstkrokar. Innehåller även begränsat stöd för API:er för klient-OM. | vso.code_manage |
|
vso.code_status |
Kod (status) | Ger möjlighet att läsa och skriva inchecknings- och pull-begärandestatus. | ||
Ansluten server | vso.connected_server |
Ansluten server | Ger möjlighet att komma åt slutpunkter som behövs från en lokal ansluten server. | |
Berättiganden | vso.entitlements |
Berättiganden (läs) | Ger skrivskyddad åtkomst till licensrättigheternas slutpunkt för att hämta kontorättigheter. | |
vso.memberentitlementmanagement |
MemberEntitlement Management (läs) | Ger möjlighet att läsa användare, deras licenser samt projekt och tillägg som de kan komma åt. | ||
vso.memberentitlementmanagement_write |
MemberEntitlement Management (skrivning) | Ger möjlighet att hantera användare, deras licenser samt projekt och tillägg som de kan komma åt. | vso.memberentitlementmanagement |
|
Tillägg | vso.extension |
Tillägg (läs) | Ger möjlighet att läsa installerade tillägg. | vso.profile |
vso.extension_manage |
Tillägg (läsa och hantera) | Ger möjlighet att installera, avinstallera och utföra andra administrativa åtgärder på installerade tillägg. | vso.extension |
|
vso.extension.data |
Tilläggsdata (läs) | Ger möjlighet att läsa data (inställningar och dokument) som lagras av installerade tillägg. | vso.profile |
|
vso.extension.data_write |
Tilläggsdata (läsa och skriva) | Ger möjlighet att läsa och skriva data (inställningar och dokument) som lagras av installerade tillägg. | vso.extension.data |
|
Github-anslutningar | vso.githubconnections |
GitHub-anslutningar (läs) | Ger möjlighet att läsa GitHub-anslutningar och GitHub-lagringsplatser. | |
vso.githubconnections_manage |
GitHub-anslutningar (läsa och hantera) | Ger möjlighet att läsa och hantera GitHub-anslutningar och GitHub-lagringsplatser | vso.githubconnections |
|
Diagram och identitet | vso.graph |
Diagram (läs) | Ger möjlighet att läsa information om användar-, grupp-, omfångs- och gruppmedlemskap. | |
vso.graph_manage |
Diagram (hantera) | Ger möjlighet att läsa information om användare, grupper, omfång och gruppmedlemskap samt lägga till användare, grupper och hantera gruppmedlemskap. | vso.graph |
|
vso.identity |
Identitet (läs) | Ger möjlighet att läsa identiteter och grupper. | ||
vso.identity_manage |
Identitet (hantera) | Ger möjlighet att läsa, skriva och hantera identiteter och grupper. | vso.identity |
|
Datorgrupp | vso.machinegroup_manage |
Distributionsgrupp (läsa, hantera) | Ger möjlighet att hantera distributionsgrupp- och agentpooler. | vso.agentpools_manage |
Marketplace | vso.gallery |
Marketplace | Ger läsbehörighet till offentliga och privata objekt och utgivare. | vso.profile |
vso.gallery_acquire |
Marketplace (hämta) | Ger läsåtkomst och möjlighet att hämta objekt. | vso.gallery |
|
vso.gallery_publish |
Marketplace (publicera) | Ger läsåtkomst och möjlighet att ladda upp, uppdatera och dela objekt. | vso.gallery |
|
vso.gallery_manage |
Marketplace (hantera) | Ger läsåtkomst och möjlighet att publicera och hantera objekt och utgivare. | vso.gallery_publish |
|
Aviseringar | vso.notification |
Meddelanden (läs) | Ger läsåtkomst till prenumerationer och händelsemetadata, inklusive filterbara fältvärden. | vso.profile |
vso.notification_write |
Meddelanden (skriv) | Ger läs- och skrivåtkomst till prenumerationer och läsåtkomst till händelsemetadata, inklusive filterbara fältvärden. | vso.notification |
|
vso.notification_manage |
Meddelanden (hantera) | Ger läs-, skriv- och hanteringsåtkomst till prenumerationer och läsåtkomst till händelsemetadata, inklusive filterbara fältvärden. | vso.notification_write |
|
vso.notification_diagnostics |
Meddelanden (diagnostik) | Ger åtkomst till meddelanderelaterade diagnostikloggar och ger möjlighet att aktivera diagnostik för enskilda prenumerationer. | vso.notification |
|
Paketering | vso.packaging |
Paketering (läs) | Ger möjlighet att läsa feeds och paket. | vso.profile |
vso.packaging_write |
Paketering (läsa och skriva) | Ger möjlighet att skapa och läsa feeds och paket. | vso.packaging |
|
vso.packaging_manage |
Paketering (läsa, skriva och hantera) | Ger möjlighet att skapa, läsa, uppdatera och ta bort feeds och paket. | vso.packaging_write |
|
Pipelineresurser | vso.pipelineresources_use |
Pipelineresurser (användning) | Ger möjlighet att godkänna en pipelines begäran om att använda en skyddad resurs: agentpool, miljö, kö, lagringsplats, säkra filer, tjänstanslutning och variabelgrupp. | |
vso.pipelineresources_manage |
Pipelineresurser (använd och hantera) | Ger möjlighet att hantera en skyddad resurs eller en pipelines begäran om att använda en skyddad resurs: agentpool, miljö, kö, lagringsplats, säkra filer, tjänstanslutning och variabelgrupp. | vso.pipelineresources_manage |
|
Projekt och team | vso.project |
Projekt och team (läs) | Ger möjlighet att läsa projekt och team. | |
vso.project_write |
Projekt och team (läsa och skriva) | Ger möjlighet att läsa och uppdatera projekt och team. | vso.project |
|
vso.project_manage |
Projekt och team (läsa, skriva och hantera) | Ger möjlighet att skapa, läsa, uppdatera och ta bort projekt och team. | vso.project_write |
|
Släppa | vso.release |
Release (läs) | Ger möjlighet att läsa versionsartefakter, inklusive versioner, versionsdefinitioner och versionsmiljö. | vso.profile |
vso.release_execute |
Release (läsa, skriva och köra) | Ger möjlighet att läsa och uppdatera versionsartefakter, inklusive versioner, versionsdefinitioner och versionsmiljö, samt möjlighet att köa en ny version. | vso.release |
|
vso.release_manage |
Version (läsa, skriva, köra och hantera) | Ger möjlighet att läsa, uppdatera och ta bort versionsartefakter, inklusive versioner, versionsdefinitioner och versionsmiljö, samt möjlighet att köa och godkänna en ny version. | vso.release_manage |
|
Säkra filer | vso.securefiles_read |
Säkra filer (läs) | Ger möjlighet att läsa säkra filer. | |
vso.securefiles_write |
Säkra filer (läsa, skapa) | Ger möjlighet att läsa och skapa säkra filer. | vso.securefiles_read |
|
vso.securefiles_manage |
Säkra filer (läsa, skapa och hantera) | Ger möjlighet att läsa, skapa och hantera säkra filer. | vso.securefiles_write |
|
Säkerhet | vso.security_manage |
Säkerhet (hantera) | Ger möjlighet att läsa, skriva och hantera säkerhetsbehörigheter. | |
Tjänstanslutningar | vso.serviceendpoint |
Tjänstslutpunkter (läs) | Ger möjlighet att läsa tjänstslutpunkter. | vso.profile |
vso.serviceendpoint_query |
Tjänstslutpunkter (läsning och fråga) | Ger möjlighet att läsa och fråga tjänstslutpunkter. | vso.serviceendpoint |
|
vso.serviceendpoint_manage |
Tjänstslutpunkter (läsa, fråga och hantera) | Ger möjlighet att läsa, fråga och hantera tjänstslutpunkter. | vso.serviceendpoint_query |
|
Tjänstkrokar | vso.hooks |
Tjänstkrokar (läs) | Ger möjlighet att läsa prenumerationer och metadata för tjänstkrokar, inklusive händelser som stöds, konsumenter och åtgärder. (Inte längre offentligt.) | vso.profile |
vso.hooks_write |
Tjänstkrokar (läsa och skriva) | Ger möjlighet att skapa och uppdatera prenumerationer på tjänstkrokar och läsa metadata, inklusive händelser, konsumenter och åtgärder som stöds. (Inte längre offentligt.) | vso.hooks |
|
vso.hooks_interact |
Tjänstkrokar (interagera) | Ger möjlighet att interagera och utföra åtgärder på händelser som tas emot via tjänstkrokar. (Inte längre offentligt.) | vso.profile |
|
Inställningar | vso.settings |
Inställningar (läs) | Ger möjlighet att läsa inställningar. | |
vso.settings_write |
Inställningar (läsa och skriva) | Ger möjlighet att skapa och läsa inställningar. | ||
Symboler | vso.symbols |
Symboler (läs) | Ger möjlighet att läsa symboler. | vso.profile |
vso.symbols_write |
Symboler (läsa och skriva) | Ger möjlighet att läsa och skriva symboler. | vso.symbols |
|
vso.symbols_manage |
Symboler (läsa, skriva och hantera) | Ger möjlighet att läsa, skriva och hantera symboler. | vso.symbols_write |
|
Aktivitetsgrupper | vso.taskgroups_read |
Aktivitetsgrupper (läs) | Ger möjlighet att läsa aktivitetsgrupper. | |
vso.taskgroups_write |
Aktivitetsgrupper (läsa, skapa) | Ger möjlighet att läsa och skapa aktivitetsgrupper. | vso.taskgroups_read |
|
vso.taskgroups_manage |
Aktivitetsgrupper (läsa, skapa och hantera) | Ger möjlighet att läsa, skapa och hantera aktivitetsgrupper. | vso.taskgroups_write |
|
Instrumentpanel för team | vso.dashboards |
Teaminstrumentpaneler (läs) | Ger möjlighet att läsa information om teamets instrumentpanel. | |
vso.dashboards_manage |
Teaminstrumentpaneler (hantera) | Ger möjlighet att hantera information om teaminstrumentpaneler. | vso.dashboards |
|
Testhantering | vso.test |
Testhantering (läs) | Ger möjlighet att läsa testplaner, fall, resultat och andra testhanteringsrelaterade artefakter. | vso.profile |
vso.test_write |
Testhantering (läsa och skriva) | Ger möjlighet att läsa, skapa och uppdatera testplaner, fall, resultat och andra testhanteringsrelaterade artefakter. | vso.test |
|
Trådar | vso.threads_full |
PR-trådar | Ger möjlighet att läsa och skriva till kommentarstrådar för pull-begäranden. | |
Token | vso.tokens |
Delegerade auktoriseringstoken | Ger möjlighet att hantera delegerade auktoriseringstoken till användare. | |
vso.tokenadministration |
Tokenadministration | Ger möjlighet att hantera (visa och återkalla) befintliga token till organisationsadministratörer. | ||
Användarprofil | vso.profile |
Användarprofil (läs) | Ger möjlighet att läsa din profil, dina konton, samlingar, projekt, team och andra organisationsartefakter på toppnivå. | |
vso.profile_write |
Användarprofil (skrivning) | Ger möjlighet att skriva till din profil. | vso.profile |
|
Variabelgrupper | vso.variablegroups_read |
Variabelgrupper (läs) | Ger möjlighet att läsa variabelgrupper. | |
vso.variablegroups_write |
Variabelgrupper (läsa, skapa) | Ger möjlighet att läsa och skapa variabelgrupper. | vso.variablegroups_read |
|
vso.variablegroups_manage |
Variabelgrupper (läsa, skapa och hantera) | Ger möjlighet att läsa, skapa och hantera variabelgrupper. | vso.variablegroups_write |
|
Wiki | vso.wiki |
Wiki (läs) | Ger möjlighet att läsa wikis, wiki-sidor och wiki-bifogade filer. Ger också möjlighet att söka på wiki-sidor. | |
vso.wiki_write |
Wiki (läsa och skriva) | Ger möjlighet att läsa, skapa och uppdatera wikis, wiki-sidor och wikibilagor. | vso.wiki |
|
Arbetsobjekt | vso.work |
Arbetsobjekt (läs) | Ger möjlighet att läsa arbetsobjekt, frågor, tavlor, områdes- och iterationssökvägar och andra spårningsrelaterade metadata för arbetsobjekt. Ger även möjlighet att köra frågor, söka efter arbetsobjekt och ta emot meddelanden om arbetsobjekthändelser via tjänstkrokar. | vso.hooks_write |
vso.work_write |
Arbetsobjekt (läsa och skriva) | Ger möjlighet att läsa, skapa och uppdatera arbetsobjekt och frågor, uppdatera brädmetadata, läsa område och iterationssökvägar andra arbetsobjekt som spårar relaterade metadata, köra frågor och ta emot meddelanden om händelser för arbetsobjekt via tjänstkrokar. | vso.work |
|
vso.work_full |
Arbetsobjekt (fullständiga) | Ger fullständig åtkomst till arbetsobjekt, frågor, kvarvarande uppgifter, planer och spårningsmetadata för arbetsobjekt. Ger också möjlighet att ta emot meddelanden om arbetsobjekthändelser via tjänstkrokar. | vso.work_write |
|
Personifiering av användare | user_impersonation |
Personifiering av användare | Ha fullständig åtkomst till REST-API:er för Visual Studio Team Services. Begär och/eller godkänn det här omfånget med försiktighet eftersom det är mycket kraftfullt! |
Vanliga frågor
Vanliga frågor (FAQ)
F: Kan jag använda OAuth med min mobilapp?
S: Nej. Azure DevOps Services stöder endast webbserverflödet, så det finns inget sätt att implementera OAuth eftersom du inte kan lagra apphemligheten på ett säkert sätt.
F: Kan jag använda OAuth med SOAP-slutpunkter och REST-API:er?
S: Nej. OAuth stöds endast i REST-API:erna.