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