Autoryzowanie dostępu do interfejsów API REST przy użyciu protokołu OAuth 2.0
Azure DevOps Services
Dowiedz się, jak uwierzytelniać użytkowników aplikacji internetowej na potrzeby dostępu do interfejsu API REST, aby aplikacja nie pytała o nazwy użytkowników i hasła.
Uwaga
Poniższe wskazówki są przeznaczone dla użytkowników usługi Azure DevOps Services, ponieważ protokół OAuth 2.0 nie jest obsługiwany na serwerze Azure DevOps Server. Biblioteki klienckie to seria pakietów utworzonych specjalnie na potrzeby rozszerzania funkcji usługi Azure DevOps Server. W przypadku użytkowników lokalnych zalecamy używanie bibliotek klienckich, uwierzytelniania systemu Windows lub osobistych tokenów dostępu (PATs) w celu uwierzytelniania w imieniu użytkownika.
Informacje o usłudze OAuth 2.0
Usługa Azure DevOps Services używa protokołu OAuth 2.0 do autoryzowania aplikacji dla użytkownika i generowania tokenu dostępu. Używaj tego tokenu podczas wywoływania interfejsów API REST z aplikacji. Podczas wywoływania interfejsów API usługi Azure DevOps Services dla danego użytkownika używaj jego tokenu dostępu. Tokeny dostępu wygasają, więc odśwież token dostępu, jeśli wygasł.
Dostępne modele OAuth
Ważne
Podczas tworzenia nowej aplikacji OAuth 2.0 użyj Microsoft Entra ID OAuth. Usługa Azure DevOps OAuth 2.0 ma zostać wycofana w 2026 roku. Od marca 2025 r. przestaniemy akceptować nowe aplikacje OAuth usługi Azure DevOps. Dowiedz się więcej w naszym wpisie w blogu.
Microsoft Entra ID OAuth
Budowanie na nowej platformie może być przytłaczające. W tym przewodniku dotyczącym tworzenia aplikacji Microsoft Entra dla usługi Azure DevOps zbieramy przydatne linki, które mogą być przydatne do rozpoczęcia procesu tworzenia aplikacji OAuth w usłudze Microsoft Entra. W przypadku osób migrujących z usługi Azure DevOps OAuth do firmy Microsoft Entra OAuth oferujemy wskazówki, które należy wziąć pod uwagę podczas pracy nad migracją.
Azure DevOps OAuth
Aby zapoznać się z istniejącymi aplikacjami, zobacz przewodnik po aplikacji OAuth usługi Azure DevOps. Możesz również zarządzać aplikacjami usługi Azure DevOps autoryzowanymi do uzyskiwania dostępu do zasobów.
Zakresy
Deweloperzy powinni określić zakresy, których potrzebują od użytkowników. Te same zakresy są dostępne w obu modelach OAuth. Następujące zakresy są dostępne tylko za pośrednictwem przepływów delegowanych (w imieniu użytkownika).
Aby się dowiedzieć, jakie zakresy są potrzebne dla Twojej aplikacji, poszukaj w nagłówku scopes
na stronie referencyjnej API dla każdego używanego API.
Niektóre zakresy mogą obejmować inne zakresy, na przykład vso.code_manage
: vso.code_write
. Na przykład wiele zakresów dziedziczy z vso.profile
. Zastanów się, jaka jest minimalna liczba zakresów, których potrzebujesz podczas żądania zgody zakresu od użytkowników.
Uwaga
Zakresy umożliwiają dostęp tylko do interfejsów API REST i wybranych punktów końcowych usługi Git. Dostęp do interfejsu API protokołu SOAP nie jest obsługiwany.
Kategoria | Scope | Nazwa/nazwisko | Wysokie ryzyko | opis | Dziedziczy po |
---|---|---|---|---|---|
Zabezpieczenia zaawansowane | vso.advsec |
AdvancedSecurity (odczyt) | Tak | Daje możliwość odczytywania alertów, instancji wyników, instancji wyników analizy. | |
vso.advsec_write |
AdvancedSecurity (odczyt i zapis) | Tak | Umożliwia przesyłanie analiz w formacie SARIF | vso.advsec |
|
vso.advsec_manage |
AdvancedSecurity (odczyt, zapis i zarządzanie) | Tak | Umożliwia przesyłanie analiz w formacie SARIF. | vso.advsec_write |
|
Pula agentów | vso.agentpools |
Pule agentów (odczyt) | Umożliwia wyświetlanie zadań, pul, kolejek, agentów i aktualnie uruchomionych lub ostatnio ukończonych zadań dla agentów. | ||
vso.agentpools_manage |
Pule agentów (odczyt, zarządzanie) | Tak | Umożliwia zarządzanie pulami, kolejkami i agentami. | vso.agentpools |
|
vso.environment_manage |
Środowisko (odczyt, zarządzanie) | Tak | Umożliwia zarządzanie pulami, kolejkami, agentami i środowiskami. | vso.agentpools_manage |
|
Analiza | vso.analytics |
Analityka (odczyt danych) | Przyznaje możliwość wykonywania zapytań dotyczących danych analitycznych. | ||
Inspekcja | vso.auditlog |
Dziennik inspekcji (odczyt) | Umożliwia odczytywanie dziennika inspekcji użytkownikom. | ||
vso.auditstreams_manage |
Strumienie inspekcji (odczyt) | Tak | Umożliwia zarządzanie strumieniami inspekcji użytkownikom. | vso.auditlog |
|
Kompilacja | vso.build |
Kompilacja (odczyt) | Umożliwia dostęp do artefaktów kompilacji, w tym wyników kompilacji, definicji i żądań oraz możliwość odbierania powiadomień o zdarzeniach kompilacji za pośrednictwem punktów zaczepienia usługi. | vso.hooks_write |
|
vso.build_execute |
Kompilacja (odczyt i wykonanie) | Tak | Umożliwia dostęp do artefaktów kompilacji, w tym wyników kompilacji, definicji i żądań oraz możliwość kolejkowania kompilacji, aktualizowania właściwości kompilacji oraz odbierania powiadomień o zdarzeniach kompilacji za pośrednictwem punktów zaczepienia usługi. | vso.build |
|
Kod | vso.code |
Kod (odczyt) | Przyznaje możliwość czytania kodu źródłowego oraz metadanych związanych z zatwierdzeniami, zestawami zmian, gałęziami i innymi artefaktami kontroli wersji. Umożliwia również wyszukiwanie kodu i otrzymywanie powiadomień o zdarzeniach kontroli wersji za pośrednictwem usługowych haków. | vso.hooks_write |
|
vso.code_write |
Kod (odczyt i zapis) | Tak | Umożliwia odczytywanie, aktualizowanie i usuwanie kodu źródłowego, uzyskiwanie dostępu do metadanych dotyczących zatwierdzeń, zestawów zmian, gałęzi i innych artefaktów kontroli wersji. Ponadto umożliwia tworzenie żądań ściągnięcia i przeglądów kodu oraz zarządzanie nimi oraz odbieranie powiadomień o zdarzeniach kontroli wersji za pośrednictwem punktów zaczepienia usługi. | vso.code |
|
vso.code_manage |
Kod (odczyt, zapis i zarządzanie) | Tak | Umożliwia odczytywanie, aktualizowanie i usuwanie kodu źródłowego, uzyskiwanie dostępu do metadanych dotyczących zatwierdzeń, zestawów zmian, gałęzi i innych artefaktów kontroli wersji. Umożliwia również tworzenie repozytoriów kodu i zarządzanie nimi, tworzenie żądań ściągnięcia i przeglądów kodu oraz odbieranie powiadomień o zdarzeniach kontroli wersji za pośrednictwem punktów zaczepienia usługi. | vso.code_write |
|
vso.code_full |
Kod (pełny) | Tak | Udziela pełnego dostępu do kodu źródłowego, metadanych dotyczących zatwierdzeń, zestawów zmian, gałęzi i innych artefaktów kontroli wersji. Umożliwia również tworzenie repozytoriów kodu i zarządzanie nimi, tworzenie żądań ściągnięcia i przeglądów kodu oraz odbieranie powiadomień o zdarzeniach kontroli wersji za pośrednictwem punktów zaczepienia usługi. Obejmuje również ograniczoną obsługę interfejsów API OM klienta. | vso.code_manage |
|
vso.code_status |
Kod (status) | Umożliwia odczytywanie i zapisywanie statusu commitów i pull requestów. | |||
Serwer połączony | vso.connected_server |
Serwer połączony | Umożliwia dostęp do punktów końcowych potrzebnych z lokalnego serwera połączonego. | ||
Uprawnienia | vso.entitlements |
Uprawnienia (odczyt) | Zapewnia tylko do odczytu dostęp do punktu końcowego licencji, aby uzyskać uprawnienia do konta. | ||
vso.memberentitlementmanagement |
Zarządzanie Uprawnieniami Członków (odczyt) | Daje możliwość odczytywania użytkowników, ich licencji, a także projektów i rozszerzeń, do których mogą uzyskiwać dostęp. | |||
vso.memberentitlementmanagement_write |
Zarządzanie uprawnieniami członków (zapisywanie) | Tak | Umożliwia zarządzanie użytkownikami, ich licencjami oraz projektami i rozszerzeniami, do których mogą uzyskiwać dostęp. | vso.memberentitlementmanagement |
|
Rozszerzenia | vso.extension |
Rozszerzenia (odczyt) | Przyznaje możliwość odczytywania zainstalowanych rozszerzeń. | vso.profile |
|
vso.extension_manage |
Rozszerzenia (odczyt i zarządzanie nimi) | Tak | Przyznaje możliwość instalowania, odinstalowywania i wykonywania innych akcji administracyjnych na zainstalowanych rozszerzeniach. | vso.extension |
|
vso.extension.data |
Dane rozszerzenia (odczyt) | Umożliwia odczytywanie danych (ustawień i dokumentów) przechowywanych przez zainstalowane rozszerzenia. | vso.profile |
||
vso.extension.data_write |
Dane rozszerzenia (odczyt i zapis) | Umożliwia odczytywanie i zapisywanie danych (ustawień i dokumentów) przechowywanych przez zainstalowane rozszerzenia. | vso.extension.data |
||
Połączenia github | vso.githubconnections |
Połączenia GitHub (odczyt) | Umożliwia odczytywanie połączeń usługi GitHub i danych repozytoriów GitHub. | ||
vso.githubconnections_manage |
Połączenia usługi GitHub (odczyt i zarządzanie nimi) | Tak | Umożliwia odczytywanie połączeń usługi GitHub i danych repozytoriów GitHub oraz zarządzanie nimi | vso.githubconnections |
|
Wykres i tożsamość | vso.graph |
Wykres (odczyt) | Umożliwia odczytywanie informacji o użytkownikach, grupach, zakresie i członkostwie w grupach. | ||
vso.graph_manage |
Wykres (zarządzanie) | Tak | Przyznaje możliwość odczytywania informacji o użytkowniku, grupie, zakresie i członkostwie w grupach oraz dodawaniu użytkowników, grup i zarządzania członkostwem w grupach. | vso.graph |
|
vso.identity |
Tożsamość (odczyt) | Umożliwia odczytywanie tożsamości i grup. | |||
vso.identity_manage |
Zarządzanie tożsamością | Tak | Daje możliwość odczytu, zapisu i zarządzania tożsamościami i grupami. | vso.identity |
|
Grupa maszyn | vso.machinegroup_manage |
Grupa wdrażania (odczyt, zarządzanie) | Tak | Umożliwia zarządzanie grupami wdrożeń i pulami agentów. | vso.agentpools_manage |
Marketplace | vso.gallery |
Targowisko | Przyznaje dostęp do odczytu elementom publicznym i prywatnym oraz wydawcom. | vso.profile |
|
vso.gallery_acquire |
Marketplace (nabycie) | Przyznaje dostęp do odczytu i możliwość uzyskiwania elementów. | vso.gallery |
||
vso.gallery_publish |
Marketplace (publikowanie) | Tak | Przyznaje dostęp do odczytu i możliwość przesyłania, aktualizowania i udostępniania elementów. | vso.gallery |
|
vso.gallery_manage |
Marketplace (zarządzanie) | Tak | Przyznaje dostęp do odczytu oraz możliwość publikowania oraz zarządzania elementami i wydawcami. | vso.gallery_publish |
|
Powiadomienia | vso.notification |
Powiadomienia (odczyt) | Zapewnia możliwość odczytu subskrypcji i metadanych zdarzeń, łącznie z wartościami pól, które można filtrować. | vso.profile |
|
vso.notification_write |
Powiadomienia (zapis) | Zapewnia dostęp do odczytu i zapisu w subskrypcjach oraz dostęp do odczytu do metadanych zdarzeń, w tym wartości pól z możliwością filtrowania. | vso.notification |
||
vso.notification_manage |
Powiadomienia (zarządzanie) | Zapewnia dostęp do odczytu, zapisu i zarządzania subskrypcjami oraz dostęp do odczytu do metadanych zdarzeń, w tym wartości pól możliwych do filtrowania. | vso.notification_write |
||
vso.notification_diagnostics |
Powiadomienia (diagnostyka) | Zapewnia dostęp do dzienników diagnostycznych związanych z powiadomieniami i zapewnia możliwość włączania diagnostyki dla poszczególnych subskrypcji. | vso.notification |
||
Pakowanie | vso.packaging |
Pakowanie (odczyt) | Umożliwia odczytywanie kanałów informacyjnych i pakietów. | vso.profile |
|
vso.packaging_write |
Pakowanie (odczyt i zapis) | Tak | Przyznaje możliwość tworzenia i odczytywania kanałów i pakietów. | vso.packaging |
|
vso.packaging_manage |
Tworzenie pakietów (odczyt, zapis i zarządzanie) | Tak | Umożliwia tworzenie, odczytywanie, aktualizowanie i usuwanie kanałów i pakietów. | vso.packaging_write |
|
Zasoby potoku | vso.pipelineresources_use |
Zasoby pipeline (wykorzystanie) | Tak | Przyznaje możliwość zatwierdzenia żądania potoku do korzystania z chronionego zasobu: pulę agentów, środowisko, kolejkę, repozytorium, pliki zabezpieczone, połączenie z usługą i grupę zmiennych. | |
vso.pipelineresources_manage |
Zasoby potokowe (używanie i zarządzanie) | Tak | Umożliwia zarządzanie chronionym zasobem lub żądaniem potoku dotyczącym korzystania z chronionego zasobu: puli agentów, środowiska, kolejki, repozytorium, chronionych plików, połączenia z usługą i grupy zmiennych. | vso.pipelineresources_manage |
|
Projekt i zespół | vso.project |
Projekt i zespół (odczyt) | Przyznaje możliwość odczytywania projektów i zespołów. | ||
vso.project_write |
Projekt i zespół (odczyt i zapis) | Przyznaje możliwość odczytywania i aktualizowania projektów i zespołów. | vso.project |
||
vso.project_manage |
Projekt oraz zespół (odczyt, zapis i zarządzanie nimi) | Tak | Przyznaje możliwość tworzenia, odczytywania, aktualizowania i usuwania projektów i zespołów. | vso.project_write |
|
Wydanie | vso.release |
Wydanie (odczyt) | Przyznaje możliwość odczytywania artefaktów wydania, w tym wydań, definicji wydania i środowiska wydania. | vso.profile |
|
vso.release_execute |
Wydanie (odczyt, zapis i wykonywanie) | Tak | Przyznaje możliwość odczytywania i aktualizowania artefaktów zatwierdzania, w tym zatwierdzeń, definicji zatwierdzania i środowiska zatwierdzania oraz możliwości ustawiania w kolejce nowej wersji. | vso.release |
|
vso.release_manage |
Wydanie (odczyt, zapis, wykonywanie i zarządzanie) | Tak | Daje możliwość odczytywania, aktualizowania i usuwania artefaktów wydania, w tym wydań, definicji wydań i środowiska wydania oraz możliwości kolejkowania i zatwierdzania nowej wersji. | vso.release_manage |
|
Zabezpieczanie plików | vso.securefiles_read |
Bezpieczne pliki (odczyt) | Tak | Przyznaje możliwość odczytywania bezpiecznych plików. | |
vso.securefiles_write |
Bezpieczne pliki (odczyt, tworzenie) | Tak | Umożliwia odczytywanie i tworzenie bezpiecznych plików. | vso.securefiles_read |
|
vso.securefiles_manage |
Zabezpieczanie plików (odczyt, tworzenie i zarządzanie nimi) | Tak | Daje możliwość odczytywania, tworzenia i zarządzania bezpiecznymi plikami. | vso.securefiles_write |
|
Bezpieczeństwo | vso.security_manage |
Zabezpieczenia (zarządzanie) | Tak | Przyznaje możliwość odczytu, zapisu i zarządzania uprawnieniami zabezpieczeń. | |
Połączenia z usługami | vso.serviceendpoint |
Punkty końcowe usługi (odczyt) | Przyznaje możliwość odczytywania punktów końcowych usługi. | vso.profile |
|
vso.serviceendpoint_query |
Punkty końcowe usługi (odczyt i zapytanie) | Przyznaje możliwość odczytu i wykonywania zapytań dotyczących punktów końcowych usługi. | vso.serviceendpoint |
||
vso.serviceendpoint_manage |
Punkty końcowe usługi (odczyt, wykonywanie zapytań i zarządzanie nimi) | Tak | Daje możliwość odczytu, wykonywania zapytań i zarządzania punktami końcowymi usługi. | vso.serviceendpoint_query |
|
Hooki serwisowe | vso.hooks |
Punkty zaczepienia usługi (odczyt) | Umożliwia odczytywanie subskrypcji i metadanych powiązań usług, w tym obsługiwanych zdarzeń, konsumentów i działań. (Nie jest już publiczny). | vso.profile |
|
vso.hooks_write |
Punkty zaczepienia usługi (odczyt i zapis) | Przyznaje możliwość tworzenia i aktualizowania subskrypcji punktów zaczepienia usługi oraz odczytywania metadanych, w tym obsługiwanych zdarzeń, użytkowników i akcji. (Nie jest już publiczny). | vso.hooks |
||
vso.hooks_interact |
Punkty zaczepienia usługi (interakcja) | Umożliwia interakcję i wykonywanie działań na zdarzeniach odebranych za pośrednictwem hooków serwisowych. (Nie jest już publiczny). | vso.profile |
||
Ustawienia | vso.settings |
Ustawienia (odczyt) | Przyznaje możliwość odczytywania ustawień. | ||
vso.settings_write |
Ustawienia (odczyt i zapis) | Umożliwia tworzenie i odczytywanie ustawień. | |||
Symbole | vso.symbols |
Symbole (odczyt) | Przyznaje możliwość odczytywania symboli. | vso.profile |
|
vso.symbols_write |
Symbole (odczyt i zapis) | Przyznaje możliwość odczytywania i zapisywania symboli. | vso.symbols |
||
vso.symbols_manage |
Symbole (odczyt, zapis i zarządzanie) | Umożliwia odczytywanie symboli, zapisywanie i zarządzanie nimi. | vso.symbols_write |
||
Grupy zadań | vso.taskgroups_read |
Grupy zadań (odczyt) | Przyznaje możliwość odczytywania grup zadań. | ||
vso.taskgroups_write |
Grupy zadań (odczyt, tworzenie) | Umożliwia odczytywanie i tworzenie grup zadań. | vso.taskgroups_read |
||
vso.taskgroups_manage |
Grupy zadań (odczyt, tworzenie i zarządzanie nimi) | Tak | Przyznaje możliwość odczytywania, tworzenia grup zadań i zarządzania nimi. | vso.taskgroups_write |
|
Pulpit nawigacyjny zespołu | vso.dashboards |
Deski rozdzielcze zespołu (do odczytu) | Umożliwia odczytywanie informacji o pulpicie nawigacyjnym zespołu. | ||
vso.dashboards_manage |
Pulpity nawigacyjne zespołu (zarządzanie) | Umożliwia zarządzanie danymi na pulpicie zespołu. | vso.dashboards |
||
Zarządzanie testami | vso.test |
Zarządzanie testami (odczyt) | Umożliwia odczytywanie planów testów, przypadków, wyników i innych artefaktów związanych z zarządzaniem testami. | vso.profile |
|
vso.test_write |
Zarządzanie testami (odczyt i zapis) | Umożliwia odczytywanie, tworzenie i aktualizowanie planów testów, przypadków, wyników i innych artefaktów związanych z zarządzaniem testami. | vso.test |
||
Wątki | vso.threads_full |
Wątki pull requestów | Umożliwia odczytywanie i zapisywanie wątków komentarza żądania ściągnięcia. | ||
Tokeny | vso.tokens |
Tokeny autoryzacji delegowanej | Tak | Przyznaje użytkownikom możliwość zarządzania delegowanymi tokenami autoryzacji. | |
vso.tokenadministration |
Administrowanie tokenem | Tak | Przyznaje możliwość zarządzania istniejącymi tokenami (wyświetlaniem i odwoływaniem) administratorom organizacji. | ||
Profil użytkownika | vso.profile |
Profil użytkownika (odczyt) | Umożliwia odczytywanie profilu, kont, kolekcji, projektów, zespołów i innych artefaktów organizacyjnych najwyższego poziomu. | ||
vso.profile_write |
Profil użytkownika (napisz) | Przyznaje możliwość pisania na profilu. | vso.profile |
||
Grupy zmiennych | vso.variablegroups_read |
Grupy zmiennych (odczyt) | Przyznaje możliwość odczytywania grup zmiennych. | ||
vso.variablegroups_write |
Grupy zmiennych (odczyt, tworzenie) | Przyznaje możliwość odczytywania i tworzenia grup zmiennych. | vso.variablegroups_read |
||
vso.variablegroups_manage |
Grupy zmiennych (odczyt, tworzenie i zarządzanie) | Tak | Przyznaje możliwość odczytywania, tworzenia grup zmiennych i zarządzania nimi. | vso.variablegroups_write |
|
Wiki | vso.wiki |
Wiki (odczyt) | Umożliwia odczytywanie wiki, stron wiki i załączników do wiki. Ponadto umożliwia wyszukiwanie stron typu wiki. | ||
vso.wiki_write |
Witryna typu wiki (odczyt i zapis) | Daje możliwość odczytywania, tworzenia i aktualizowania stron typu wiki, stron typu wiki i załączników typu wiki. | vso.wiki |
||
Elementy robocze | vso.work |
Elementy robocze (odczyt) | Umożliwia odczytywanie elementów roboczych, zapytań, tablic, ścieżek obszaru i iteracji oraz innych metadanych powiązanych ze śledzeniem elementów roboczych. Ponadto umożliwia wykonywanie zapytań, wyszukiwanie elementów roboczych i otrzymywanie powiadomień o zdarzeniach związanych z elementami roboczymi poprzez łączniki usług. | vso.hooks_write |
|
vso.work_write |
Elementy robocze (odczyt i zapis) | Umożliwia odczytywanie, tworzenie i aktualizowanie elementów roboczych i zapytań, aktualizowanie metadanych tablicy, odczytywanie ścieżek obszaru i iteracji oraz innych powiązanych metadanych elementów roboczych, wykonywanie zapytań i odbieranie powiadomień o zdarzeniach związanych z elementami roboczymi za pośrednictwem powiadomień serwisowych. | vso.work |
||
vso.work_full |
Elementy robocze (pełne) | Zapewnia pełny dostęp do elementów roboczych, zapytań, list prac, planów i metadanych śledzenia elementów roboczych. Zapewnia również możliwość odbierania powiadomień o zdarzeniach dotyczących elementów roboczych za pośrednictwem hooków usługowych. | vso.work_write |
||
Personifikacja użytkownika | user_impersonation |
Personifikacja użytkownika | Tak | Masz pełny dostęp do interfejsów API REST usługi Visual Studio Team Services. Żądaj i/lub wyrażaj zgody na ten zakres z ostrożnością, ponieważ jest bardzo zaawansowany! |
Często zadawane pytania (FAQ)
.: Czy mogę używać protokołu OAuth z moją aplikacją na telefon komórkowy?
Odpowiedź: Nie. Usługa Azure DevOps Services obsługuje tylko przepływ serwera internetowego, więc nie ma możliwości zaimplementowania protokołu OAuth, ponieważ nie można bezpiecznie przechowywać tajnego klucza aplikacji.
.: Czy mogę używać protokołu OAuth z punktami końcowymi protokołu SOAP i interfejsami API REST?
Odpowiedź: Nie. Protokół OAuth jest obsługiwany tylko w interfejsach API REST.