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
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:
- Rejestrowanie aplikacji za pomocą platformy tożsamości firmy Microsoft
- przepływ Platforma tożsamości Microsoft i OAuth 2.0 On-Behalf-Of
- Konfigurowanie aplikacji klienckiej w celu uzyskania dostępu do internetowego interfejsu API: połączony przykład pokazuje, jak wybrać uprawnienie dla zasobu programu Microsoft Graph. Podczas tworzenia aplikacji wybierz
Azure DevOps
zamiast tego pozycję z listy zasobów. - Zarządzanie punktami paT za pośrednictwem interfejsu API
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! |