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.
  • Aby uzyskać więcej informacji, zobacz przykład C# OAuth GitHub.

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 protokołu OAuth identyfikatora entra firmy Microsoft. Usługa Azure DevOps OAuth 2.0 ma zostać wycofana w 2026 roku. Od lutego 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 protokołu OAuth usługi Azure DevOps do firmy Microsoft Entra OAuth udostępniamy przydatne 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 dowiedzieć się, jakie zakresy są potrzebne dla aplikacji, poszukaj w nagłówku scopes na stronie Dokumentacja interfejsu API dla każdego używanego interfejsu 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ą tylko dostęp do interfejsów API REST i wybierają punkty końcowe usługi Git. Dostęp do interfejsu API protokołu SOAP nie jest obsługiwany.

Kategoria Scope Nazwa/nazwisko opis Dziedziczy po
Zabezpieczenia zaawansowane vso.advsec AdvancedSecurity (odczyt) Daje możliwość odczytywania alertów, wystąpień wyników, wystąpień wyników analizy.
vso.advsec_write AdvancedSecurity (odczyt i zapis) Przyznaje możliwość przekazywania analiz w sarif vso.advsec
vso.advsec_manage AdvancedSecurity (odczyt, zapis i zarządzanie) Przyznaje możliwość przekazywania analiz w sarif vso.advsec_write
Pule 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) Umożliwia zarządzanie pulami, kolejkami i agentami. vso.agentpools
vso.environment_manage Środowisko (odczyt, zarządzanie) Umożliwia zarządzanie pulami, kolejkami, agentami i środowiskami. vso.agentpools_manage
Analiza vso.analytics Analiza (odczyt) 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) 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) 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ść odczytywania kodu źródłowego i metadanych dotyczących zatwierdzeń, zestawów zmian, gałęzi i innych artefaktów kontroli wersji. Umożliwia również wyszukiwanie kodu i otrzymywanie powiadomień o zdarzeniach kontroli wersji za pośrednictwem punktów zaczepienia usługi. vso.hooks_write
vso.code_write Kod (odczyt i zapis) 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) 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) 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 (stan) Umożliwia odczytywanie i zapisywanie stanu zatwierdzenia i żądania ściągnięcia.
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 dostęp tylko do odczytu do punktu końcowego uprawnień licencjonowania w celu uzyskania uprawnień do konta.
vso.memberentitlementmanagement MemberEntitlement Management (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 MemberEntitlement Management (zapis) 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) 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 Usługi 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) 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 Graf (odczyt) Umożliwia odczytywanie informacji o członkostwie użytkowników, grupach, zakresie i grupach.
vso.graph_manage Graf (zarządzanie) 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 Tożsamość (zarządzanie) 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) Umożliwia zarządzanie grupami wdrożeń i pulami agentów. vso.agentpools_manage
Marketplace vso.gallery Portal Marketplace Przyznaje dostęp do odczytu publicznym i prywatnym elementom i wydawcom. vso.profile
vso.gallery_acquire Marketplace (uzyskiwanie) Przyznaje dostęp do odczytu i możliwość uzyskiwania elementów. vso.gallery
vso.gallery_publish Marketplace (publikowanie) Przyznaje dostęp do odczytu i możliwość przekazywania, aktualizowania i udostępniania elementów. vso.gallery
vso.gallery_manage Marketplace (zarządzanie) Przyznaje dostęp do odczytu oraz możliwość publikowania elementów i wydawców oraz zarządzania nimi. vso.gallery_publish
Powiadomienia vso.notification Powiadomienia (odczyt) Zapewnia dostęp do odczytu do subskrypcji i metadanych zdarzeń, w tym do filtrowania wartości pól. 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) Przyznaje możliwość odczytywania kanałów informacyjnych i pakietów. vso.profile
vso.packaging_write Pakowanie (odczyt i zapis) Przyznaje możliwość tworzenia i odczytywania kanałów informacyjnych i pakietów. vso.packaging
vso.packaging_manage Tworzenie pakietów (odczyt, zapis i zarządzanie) Umożliwia tworzenie, odczytywanie, aktualizowanie i usuwanie źródeł danych i pakietów. vso.packaging_write
Zasoby potoku vso.pipelineresources_use Zasoby potoku (użyj) Przyznaje możliwość zatwierdzenia żądania potoku do korzystania z chronionego zasobu: puli agentów, środowiska, kolejki, repozytorium, bezpiecznych plików, połączenia z usługą i grupy zmiennych.
vso.pipelineresources_manage Zasoby potoku (używanie i zarządzanie nimi) Umożliwia zarządzanie chronionym zasobem lub żądaniem potoku w celu korzystania z chronionego zasobu: puli agentów, środowiska, kolejki, repozytorium, bezpiecznych 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 i zespół (odczyt, zapis i zarządzanie nimi) 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) Przyznaje możliwość odczytywania i aktualizowania artefaktów wydania, w tym wydań, definicji wydania i środowiska wydania oraz możliwości kolejkowania nowej wersji. vso.release
vso.release_manage Wydanie (odczyt, zapis, wykonywanie i zarządzanie) 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) Przyznaje możliwość odczytywania bezpiecznych plików.
vso.securefiles_write Bezpieczne pliki (odczyt, tworzenie) Umożliwia odczytywanie i tworzenie bezpiecznych plików. vso.securefiles_read
vso.securefiles_manage Zabezpieczanie plików (odczyt, tworzenie i zarządzanie nimi) Daje możliwość odczytywania, tworzenia i zarządzania bezpiecznymi plikami. vso.securefiles_write
Bezpieczeństwo vso.security_manage Zabezpieczenia (zarządzanie) 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) Daje możliwość odczytu, wykonywania zapytań i zarządzania punktami końcowymi usługi. vso.serviceendpoint_query
Punkty zaczepienia usługi vso.hooks Punkty zaczepienia usługi (odczyt) Umożliwia odczytywanie subskrypcji i metadanych przypinania usługi, w tym obsługiwanych zdarzeń, użytkowników i akcji. (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 akcji na zdarzeniach odebranych za pośrednictwem punktów zaczepienia usługi. (Nie jest już publiczny). vso.profile
Ustawienia vso.settings Ustawienia (odczyt) Przyznaje możliwość odczytywania ustawień.
vso.settings_write Ustawienia (odczyt i zapis) Przyznaje możliwość tworzenia i odczytywania 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) Przyznaje możliwość odczytywania, tworzenia grup zadań i zarządzania nimi. vso.taskgroups_write
Pulpit nawigacyjny zespołu vso.dashboards Pulpity nawigacyjne zespołu (odczyt) Umożliwia odczytywanie informacji o pulpicie nawigacyjnym zespołu.
vso.dashboards_manage Pulpity nawigacyjne zespołu (zarządzanie) Umożliwia zarządzanie informacjami o pulpicie nawigacyjnym 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 żądania ściągnięcia Umożliwia odczytywanie i zapisywanie wątków komentarza żądania ściągnięcia.
Tokeny vso.tokens Tokeny autoryzacji delegowanej Przyznaje użytkownikom możliwość zarządzania delegowanymi tokenami autoryzacji.
vso.tokenadministration Administrowanie tokenem 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 (zapis) Przyznaje możliwość zapisu w 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) Przyznaje możliwość odczytywania, tworzenia grup zmiennych i zarządzania nimi. vso.variablegroups_write
Witryna Wiki vso.wiki Wiki (odczyt) Umożliwia odczytywanie stron typu wiki, stron typu wiki i załączników typu 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 odbieranie powiadomień o zdarzeniach elementów roboczych za pośrednictwem punktów zaczepienia usługi. vso.hooks_write
vso.work_write Elementy robocze (odczyt i zapis) Umożliwia odczytywanie, tworzenie i aktualizowanie elementów roboczych i zapytań, metadanych tablicy aktualizacji, ścieżek obszaru odczytu i iteracji innych metadanych powiązanych elementów roboczych, wykonywania zapytań i odbierania powiadomień o zdarzeniach elementów roboczych za pośrednictwem punktów zaczepienia usługi. 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 elementów roboczych za pośrednictwem punktów zaczepienia usługi. vso.work_write
Personifikacja użytkownika user_impersonation Personifikacja użytkownika 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

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ć wpisu tajnego 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.