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

Process to get authorization.

Dostępne modele OAuth

Podczas tworzenia aplikacji OAuth 2.0 użyj protokołu OAuth identyfikatora OAuth firmy Microsoft. Nadal obsługujemy usługę Azure DevOps OAuth 2.0, ale obecnie nie inwestujemy w ten model.

Microsoft Entra ID OAuth

Podczas tworzenia aplikacji OAuth identyfikatora entra firmy Microsoft twoja aplikacja jest wystawiana tokenami firmy Microsoft Entra, a nie tokenami dostępu usługi Azure DevOps. Te tokeny mają standardowy czas trwania jednej godziny przed wygaśnięciem.

Aby uzyskać więcej informacji, zobacz następujące artykuły:

Uwaga

Podczas tworzenia aplikacji korzystających z innych interfejsów API upewnij się, że wybrano zakresy wymagane dla tych interfejsów API.

Azure DevOps OAuth

W przypadku istniejących aplikacji skorzystaj z przewodnika Azure DevOps OAuth. Możesz również zarządzać autoryzowanymi aplikacjami usługi Azure DevOps.

Zakresy

Deweloperzy powinni określić zakresy, których potrzebują od użytkowników. 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 code_manage : code_write. Zastanów się, jaka jest minimalna liczba zakresów, których potrzebujesz podczas żądania zgody zakresu od użytkowników.

Ważne

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
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.environment_manage Środowisko (odczyt, zarządzanie) Umożliwia zarządzanie pulami, kolejkami, agentami i środowiskami.
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 Inspekcja Strumienie (odczyt) Umożliwia zarządzanie strumieniami inspekcji użytkownikom.
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.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.
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.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_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_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_status Kod (stan) Umożliwia odczytywanie i zapisywanie stanu zatwierdzenia i żądania ściągnięcia.
serwer Połączenie vso.connected_server serwer Połączenie 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.
Rozszerzenia vso.extension Rozszerzenia (odczyt) Przyznaje możliwość odczytywania zainstalowanych rozszerzeń.
vso.extension_manage Rozszerzenia (odczyt i zarządzanie nimi) Przyznaje możliwość instalowania, odinstalowywania i wykonywania innych akcji administracyjnych na zainstalowanych rozszerzeniach.
vso.extension.data Dane rozszerzenia (odczyt) Umożliwia odczytywanie danych (ustawień i dokumentów) przechowywanych przez zainstalowane rozszerzenia.
vso.extension.data_write Dane rozszerzenia (odczyt i zapis) Umożliwia odczytywanie i zapisywanie danych (ustawień i dokumentów) przechowywanych przez zainstalowane rozszerzenia.
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.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.
Grupa maszyn vso.machinegroup_manage Grupa wdrażania (odczyt, zarządzanie) Umożliwia zarządzanie grupami wdrożeń i pulami agentów.
Marketplace vso.gallery Portal Marketplace Przyznaje dostęp do odczytu publicznym i prywatnym elementom i wydawcom.
vso.gallery_acquire Marketplace (uzyskiwanie) Przyznaje dostęp do odczytu i możliwość uzyskiwania elementów.
vso.gallery_publish Marketplace (publikowanie) Przyznaje dostęp do odczytu i możliwość przekazywania, aktualizowania i udostępniania elementów.
vso.gallery_manage Marketplace (zarządzanie) Przyznaje dostęp do odczytu oraz możliwość publikowania elementów i wydawców oraz zarządzania nimi.
Powiadomienia vso.notification Powiadomienia (odczyt) Zapewnia dostęp do odczytu do subskrypcji i metadanych zdarzeń, w tym do filtrowania wartości pól.
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_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_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.
Pakowanie vso.packaging Pakowanie (odczyt) Przyznaje możliwość odczytywania kanałów informacyjnych i pakietów.
vso.packaging_write Pakowanie (odczyt i zapis) Przyznaje możliwość tworzenia i odczytywania kanałów informacyjnych i pakietów.
vso.packaging_manage Tworzenie pakietów (odczyt, zapis i zarządzanie) Umożliwia tworzenie, odczytywanie, aktualizowanie i usuwanie źródeł danych i pakietów.
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.
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_manage Projekt i zespół (odczyt, zapis i zarządzanie nimi) Przyznaje możliwość tworzenia, odczytywania, aktualizowania i usuwania projektów i zespołów.
Wydanie vso.release Wydanie (odczyt) Przyznaje możliwość odczytywania artefaktów wydania, w tym wydań, definicji wydania i środowiska wydania.
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_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.
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_manage Zabezpieczanie plików (odczyt, tworzenie i zarządzanie nimi) Daje możliwość odczytywania, tworzenia i zarządzania bezpiecznymi plikami.
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.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_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.
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.symbols_write Symbole (odczyt i zapis) Przyznaje możliwość odczytywania i zapisywania symboli.
vso.symbols_manage Symbole (odczyt, zapis i zarządzanie) Umożliwia odczytywanie symboli, zapisywanie i zarządzanie nimi.
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_manage Grupy zadań (odczyt, tworzenie i zarządzanie nimi) Przyznaje możliwość odczytywania, tworzenia grup zadań i zarządzania nimi.
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.
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.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.
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 Administracja istration tokenu 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.
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_manage Grupy zmiennych (odczyt, tworzenie i zarządzanie) Przyznaje możliwość odczytywania, tworzenia grup zmiennych i zarządzania nimi.
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.
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.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_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.
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!