Udostępnij za pośrednictwem


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ł.

Proces uzyskiwania autoryzacji.

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.