Używanie osobistych tokenów dostępu
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Osobisty token dostępu (PAT) służy jako alternatywne hasło do uwierzytelniania w usłudze Azure DevOps. Ten identyfikator pat identyfikuje Użytkownika i określa dostępność i zakres dostępu. W związku z tym należy traktować pats z tym samym poziomem ostrożności co hasła.
Ważne
Zalecamy używanie tokenów Microsoft Entra. Aby uzyskać więcej informacji na temat naszych wysiłków w celu zmniejszenia użycia PAT, zobacz na naszym blogu. Zapoznaj się z naszymi wskazówkami dotyczącymi uwierzytelniania , aby wybrać odpowiedni mechanizm uwierzytelniania dla Twoich potrzeb.
W przypadku korzystania z narzędzi firmy Microsoft twoje konto Microsoft (MSA) lub identyfikator Entra firmy Microsoft są rozpoznawane i obsługiwane. Jeśli używasz narzędzi, które nie obsługują kont Microsoft Entra lub nie chcesz udostępniać poświadczeń podstawowych, usługi PAT mogą być odpowiednią alternatywą. Zalecamy jednak używanie tokenów Microsoft Entra zamiast PATs, jeśli jest to możliwe.
Usługi PAT można zarządzać za pomocą następujących metod:
- Interfejs użytkownika: za pośrednictwem ustawień użytkownika, zgodnie z opisem w tym artykule.
- interfejsy API zarządzania cyklem życia PAT
- menedżery poświadczeń Git na potrzeby operacji Git. Menedżerowie poświadczeń ułatwiają zarządzanie tokenami. Bez jednego użytkownicy muszą wprowadzać swoje poświadczenia za każdym razem.
Wymagania wstępne
-
Uprawnienia:
- Mieć uprawnienia dostępu i modyfikowania ustawień użytkownika, w których są zarządzane sieci PAT.
-
Sprawdź uprawnienia: Aby sprawdzić swoje uprawnienia, wykonaj jeden z następujących procesów w usłudze Azure DevOps:
- Przejdź do swojego profilu i wybierz pozycję Ustawienia>użytkownika Osobiste tokeny dostępu. Jeśli w tym miejscu możesz zobaczyć usługi PATs i zarządzać nimi, masz niezbędne uprawnienia.
- Przejdź do projektu i wybierz pozycję Ustawienia>projektu Uprawnienia. Znajdź swoje konto użytkownika na liście i sprawdź przypisane ci uprawnienia. Poszukaj uprawnień związanych z zarządzaniem tokenami lub ustawieniami użytkownika.
-
Sprawdź uprawnienia: Aby sprawdzić swoje uprawnienia, wykonaj jeden z następujących procesów w usłudze Azure DevOps:
- Jeśli twoja organizacja ma zasady, administrator usługi Azure DevOps może wymagać udzielenia określonych uprawnień lub dodania cię do listy dozwolonych w celu utworzenia paTs i zarządzania nimi.
- Osobiste tokeny dostępowe są połączone z kontem użytkownika, które utworzyło token. W zależności od zadań wykonywanych przez PAT, może być konieczne, abyś posiadał(a) więcej uprawnień.
- Mieć uprawnienia dostępu i modyfikowania ustawień użytkownika, w których są zarządzane sieci PAT.
- Poziomy dostępu: mają co najmniej dostęp podstawowy.
- Najlepsze rozwiązania dotyczące zabezpieczeń: Zapoznaj się z najlepszymi rozwiązaniami dotyczącymi zabezpieczeń do zarządzania punktami dostępu uprzywilejowanego. Używaj ich tylko wtedy, gdy jest to konieczne, i zawsze regularnie obracaj je.
Tworzenie tokenu dostępu
Zaloguj się do swojej organizacji (
https://dev.azure.com/{Your_Organization}
).Na stronie głównej otwórz ustawienia użytkownika i wybierz pozycję Osobiste tokeny dostępu.
Wybierz pozycję + Nowy token.
Nadaj tokenowi nazwę, wybierz organizację, w której chcesz użyć tokenu, a następnie ustaw token, aby automatycznie wygasał po określonej liczbie dni.
Wybierz zakresy dla tego tokenu, aby autoryzować określone zadania.
Aby na przykład utworzyć token dla agenta kompilacji i wydania w celu uwierzytelniania w usłudze Azure DevOps, ustaw zakres tokenu na Pule agentów (odczyt i zarządzanie). Aby odczytać zdarzenia dziennika inspekcji i zarządzać lub usuwać strumienie, wybierz pozycję Odczyt dziennika inspekcji, a następnie wybierz pozycję Utwórz.
Uwaga
Tworzenie pełnych zakresów paT może być ograniczone. Jeśli tak, administrator Azure DevOps w Microsoft Entra ID włączył politykę, która ogranicza cię do określonego, niestandardowego zestawu zakresów. Aby uzyskać więcej informacji, zobacz Manage PATs with policies/Restrict creation of full-scoped PATs (Zarządzanie sieciami uprzywilejowanymi przy użyciu zasad/Ograniczanie tworzenia pełnych zakresów paTs). W przypadku niestandardowego tokenu DOSTĘPU wymagany zakres dostępu do interfejsu API
vso.governance
ładu składników nie jest wybierany w interfejsie użytkownika.Po zakończeniu skopiuj token i zapisz go w bezpiecznej lokalizacji. W przypadku zabezpieczeń nie są wyświetlane ponownie.
Użyj swojego patu w dowolnym miejscu, w jakim poświadczenia użytkownika są wymagane do uwierzytelniania w usłudze Azure DevOps.
Ważne
- Traktuj pat z taką samą ostrożnością jak hasło i zachowaj je poufne.
- Zaloguj się przy użyciu nowego identyfikatora PAT w ciągu 90 dni dla organizacji wspieranych przez identyfikator Firmy Microsoft Entra; w przeciwnym razie pat staje się nieaktywny. Aby uzyskać więcej informacji, zobacz Częstotliwość logowania użytkownika dla dostępu warunkowego.
Notifications
W ciągu cyklu życia pat użytkownicy otrzymują dwa powiadomienia: pierwszy w momencie utworzenia i drugi siedem dni przed jego wygaśnięciem.
Po utworzeniu tokenu dostępu otrzymasz powiadomienie podobne do poniższego przykładu. To powiadomienie służy jako potwierdzenie pomyślnego dodania tokenu dostępu do organizacji.
Na poniższej ilustracji przedstawiono przykład siedmiodniowego powiadomienia przed wygaśnięciem tokenu dostępu.
Aby uzyskać więcej informacji, zobacz Konfigurowanie serwera SMTP i dostosowywanie poczty e-mail na potrzeby alertów i żądań opinii.
Nieoczekiwane powiadomienie
Jeśli otrzymasz nieoczekiwane powiadomienie o PAT, może to oznaczać, że administrator lub narzędzie utworzyli dla Ciebie token dostępowy. Oto kilka przykładów:
- Token o nazwie "git:
https://dev.azure.com/{Your_Organization}
on YourMachine" jest tworzony podczas nawiązywania połączenia z repozytorium Git usługi Azure DevOps za pośrednictwem git.exe. - Token o nazwie "Service Hooks: Azure App Service: Deploy web app" (Wdróż aplikację internetową) jest tworzony, gdy Ty lub administrator konfiguruje wdrożenie aplikacji internetowej w usłudze Azure App Service.
- Token o nazwie "WebAppLoadTestCDIntToken" jest tworzony, gdy testowanie obciążenia internetowego jest konfigurowane jako część potoku przez Ciebie lub administratora.
- Token o nazwie "Microsoft Teams Integration" jest tworzony po skonfigurowaniu rozszerzenia wiadomości Microsoft Teams Integration Messaging Extension.
Ostrzeżenie
- Unieważnij PAT (i zmień hasło), jeśli podejrzewasz, że został utworzony przez pomyłkę.
- Sprawdź u swojego administratora, czy jako użytkownik Microsoft Entra nie odnotowano dostępu do twojej organizacji z nieznanego źródła lub lokalizacji.
- Zapoznaj się z często zadawanymi pytaniami na temat przypadkowych zaewidencjonowania pat w publicznych repozytoriach GitHub.
Korzystanie z pat
Twój identyfikator dostępu służy jako tożsamość cyfrowa, podobnie jak hasło. Możesz użyć paTs jako szybkiego sposobu wykonywania jednorazowych żądań lub tworzenia prototypów aplikacji lokalnie.
Ważne
Kiedy kod działa, warto przełączyć się z podstawowego uwierzytelniania na Microsoft Entra OAuth. Identyfikatory Microsoft Entra ID można używać wszędzie tam, gdzie używany jest token PAT, chyba że określono to bardziej szczegółowo w tym artykule.
Możesz użyć PAT w swoim kodzie do uwierzytelniania żądań interfejsów API REST i automatyzowania przepływów pracy. W tym celu dołącz identyfikator PAT w nagłówku autoryzacji żądań HTTP.
Aby podać pat za pośrednictwem nagłówka HTTP, najpierw przekonwertuj Base64
go na ciąg. W poniższym przykładzie pokazano, jak przeprowadzić konwersję na Base64
przy użyciu języka C#.
Authorization: Basic BASE64_USERNAME_PAT_STRING
Wynikowy ciąg można następnie podać jako nagłówek HTTP w następującym formacie.
W poniższym przykładzie użyto klasy HttpClient w języku C#.
public static async void GetBuilds()
{
try
{
var personalaccesstoken = "PATFROMWEB";
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", "", personalaccesstoken))));
using (HttpResponseMessage response = client.GetAsync(
"https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.0").Result)
{
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
Napiwek
Gdy używasz zmiennych, dodaj element $
na początku ciągu, podobnie jak w poniższym przykładzie.
public static async void GetBuilds()
{
try
{
var personalaccesstoken = "PATFROMWEB";
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", "", personalaccesstoken))));
using (HttpResponseMessage response = client.GetAsync(
$"https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.0").Result)
{
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
Więcej przykładów użycia PATs można znaleźć w następujących artykułach:
- Uwierzytelnij się w swoich repozytoriach Git
- Konfigurowanie menedżerów poświadczeń git (GCM) w celu nawiązania połączenia z repozytoriami Git
- Używanie narzędzia NuGet na komputerze Mac
- Uwierzytelnianie klientów raportowania
- Rozpoczynanie pracy z interfejsem wiersza polecenia usługi Azure DevOps
Modyfikowanie pat
Wykonaj następujące czynności:
- Wygeneruj ponownie token, aby utworzyć nowy token, co spowoduje unieważnienie poprzedniego tokenu.
- Rozszerz pat, aby zwiększyć swój okres ważności.
- Zmień zakres patu, aby zmienić jego uprawnienia.
Na stronie głównej otwórz ustawienia użytkownika, a następnie wybierz pozycję Profil.
W obszarze Zabezpieczenia wybierz pozycję Osobiste tokeny dostępu. Wybierz token, który chcesz zmodyfikować, a następnie pozycję Edytuj.
Edytuj nazwę tokenu, wygaśnięcie tokenu lub zakres dostępu skojarzony z tokenem, a następnie wybierz pozycję Zapisz.
Odwoływanie pat
Możesz odwołać pat w dowolnym momencie z tych i innych powodów:
- Cofnij token personalnego dostępu, jeśli podejrzewasz, że został naruszony.
- Odwoływanie patu, gdy nie jest już potrzebne.
- Odwoływanie dostępu w celu wymuszania zasad zabezpieczeń lub wymagań dotyczących zgodności.
Na stronie głównej otwórz ustawienia użytkownika, a następnie wybierz pozycję Profil.
W obszarze Zabezpieczenia wybierz pozycję Osobiste tokeny dostępu. Wybierz token, dla którego chcesz odwołać dostęp, a następnie wybierz pozycję Odwołaj.
Wybierz pozycję Odwołaj w oknie dialogowym potwierdzenia.
Aby uzyskać więcej informacji, zobacz Odwoływanie paT użytkowników dla administratorów.
Zmiany w formacie
Od lipca 2024 r. znacząco zmieniliśmy format pats wystawionych przez usługę Azure DevOps. Te zmiany zapewniają więcej korzyści związanych z bezpieczeństwem i usprawniają narzędzia do wykrywania tajemnic dostępne za pośrednictwem naszych narzędzi do wykrywania wycieków PAT lub ofert partnerskich . Ten nowy format pat jest zgodny z zalecanym formatem we wszystkich produktach firmy Microsoft. Włączenie bardziej rozpoznawalnych bitów poprawia współczynnik wykrywania fałszywie dodatnich tych narzędzi wykrywania wpisów tajnych i pozwala nam szybciej ograniczyć wykryte przecieki.
Kluczowe zmiany:
- Zwiększona długość tokenu: nowe tokeny mają teraz 84 znaki, a 52 znaki są danymi losowymi. Ta zwiększona długość poprawia ogólną entropię, dzięki czemu tokeny są bardziej odporne na potencjalne ataki siłowe.
-
Stały podpis: Tokeny wystawione przez naszą usługę obejmują stały
AZDO
podpis na pozycjach 76-80.
Wymagana akcja:
- Ponowne generowanie istniejących paTs: zdecydowanie zalecamy ponowne generowanie wszystkich paT aktualnie używanych w celu skorzystania z tych ulepszeń zabezpieczeń.
- Obsługa integratora: integratorzy powinni zaktualizować swoje systemy, aby uwzględnić zarówno nowe, jak i istniejące długości tokenów.
Ważne
Oba formaty pozostają ważne w najbliższej przyszłości, ale aktywnie zachęcamy klientów do przejścia do nowego formatu 84 znaków. W miarę zwiększania się nowego formatu rozważamy wycofanie starszego formatu 52 znaków i wszystkich tokenów wystawionych w tym stylu.
Najlepsze praktyki dotyczące korzystania z PATs
Rozważ alternatywy
- Uzyskaj token Microsoft Entra za pośrednictwem Azure CLI dla żądań ad-hoc, które trwają jedną godzinę, zamiast tworzyć dłużej ważny PAT.
- Użyj menedżerów poświadczeń, takich jak Menedżera poświadczeń Git lub Menedżer poświadczeń usługi Azure Artifacts w celu uproszczenia zarządzania poświadczeniami. Te narzędzia mogą oferować opcje używania tokenów firmy Microsoft Entra jako domyślnego uwierzytelniania zamiast paTs.
Tworzenie personalnych tokenów dostępu
- Unikaj umieszczania danych osobowych w nazwie PAT. Nie zmieniaj nazwy ciągu tokenu PAT z jako nazwy twojego tokenu.
- Wybierz tylko tę organizację, do której Twój PAT musi uzyskać dostęp, jeśli nie potrzebuje dostępu do wielu organizacji. W przypadku przepływów pracy wymagających dostępu do wielu organizacji utwórz oddzielny globalny token dostępu dla tego przepływu pracy.
- Wybierz tylko niezbędne zakresy dla każdego PAT. Jeśli to możliwe, utwórz wiele tokenów dostępu dla każdego przepływu pracy z mniejszą liczbą zakresów, zamiast jednego tokenu dostępu z pełnym zakresem uprawnień. Jeśli twój PAT potrzebuje tylko uprawnień do odczytu, nie należy nadawać uprawnień do zapisu do momentu, gdy będzie to konieczne.
- Zachowaj krótkie okresy życia PAT (cotygodniowy jest idealny, jeszcze krótszy jest lepszy) i regularnie wymieniaj lub regeneruj je za pośrednictwem interfejsu użytkownika lub interfejsów API zarządzania cyklem życia PAT .
Zarządzanie punktami dostępu uprzywilejowanego
- Zawsze przechowywać PATs w bezpiecznym rozwiązaniu do zarządzania kluczami, na przykład Azure KeyVault.
- Unieważniaj PAT, gdy nie są już potrzebne. Administratorzy dzierżawy mogą odwołać usługi PAT dla użytkowników organizacji w przypadku naruszenia zabezpieczeń tokenu dostępu.
- Obracaj swoje osobiste tokeny dostępu (PAT) na nowy format PAT, aby lepiej wykrywać i odwoływać wycieki tajemnic za pomocą naszych narzędzi wewnętrznych.
Dla administratorów
Administratorzy dzierżawy mogą ustawiać zasady w celu ograniczenia globalnego tworzenia tokenu dostępu, tworzenia pełnego tokenu dostępu i długotrwałego czasu trwania pat. Mogą one również umożliwić zasadom automatyczne odwoływanie wyciekłych tokenów dostępu osobistego wykrytych w repozytoriach publicznych. Użyj tych zasad, aby zwiększyć bezpieczeństwo firmy.
Często zadawane pytania
.: Dlaczego nie mogę edytować ani ponownie wygenerować tokenu dostępu ograniczonego do jednej organizacji?
Zaloguj się do organizacji, w której obowiązuje twój PAT. Podczas logowania do dowolnej organizacji w tym samym Microsoft Entra ID można wyświetlać wszystkie swoje tokeny dostępu, ale tokeny o zasięgu organizacyjnym można edytować tylko po zalogowaniu się do określonej organizacji.
.: Co się stanie z patem dostępu, jeśli konto użytkownika jest wyłączone?
1: Gdy użytkownik zostanie usunięty z usługi Azure DevOps, token pat unieważnia się w ciągu 1 godziny. Jeśli Twoja organizacja jest połączona z identyfikatorem Entra firmy Microsoft, identyfikator pat również unieważnia identyfikator Entra firmy Microsoft, ponieważ należy do użytkownika. Zalecamy rotację tokenu dostępu do innego użytkownika lub konta usługi w celu zapewnienia działania usług.
.: Czy istnieje sposób odnowienia tokenu dostępu za pośrednictwem interfejsu API REST?
Tak, możesz odnowić, zarządzać i tworzyć PAT-y przy użyciu naszych interfejsów API Lifecycle Management PAT. .
Czy mogę używać PATs ze wszystkimi interfejsami API REST usługi Azure DevOps?
Odpowiedź: Nie. Podstawowe uwierzytelnianie można używać z większością interfejsów API REST usługi Azure DevOps, ale organizacje i profile oraz interfejsy API zarządzania cyklem życia PAT obsługują tylko Microsoft Entra OAuth. Aby zapoznać się z przykładem konfigurowania aplikacji Microsoft Entra do wywoływania takich interfejsów API, zobacz Zarządzanie osobistymi tokenami dostępu przy użyciu interfejsu API REST.
.: Co się stanie, jeśli przypadkowo zaewidencjonuję swój pat w repozytorium publicznym w usłudze GitHub?
Uwierzytelnianie: Usługa Azure DevOps skanuje pod kątem paT zaewidencjonowane w repozytoriach publicznych w witrynie GitHub. Po znalezieniu ujawnionego tokenu natychmiast wyślemy szczegółowe powiadomienie e-mail do właściciela tokenu i zarejestrujemy zdarzenie w dzienniku inspekcji organizacji usługi Azure DevOps. O ile nie wyłączono zasad Automatycznego odwoływania ujawnionych osobistych tokenów dostępu, natychmiast odwołujemy wyciekły token pat. Zachęcamy użytkowników, których dotyczy problem, aby rozwiązać ten problem, odwołując ujawniony token i zastępując go nowym tokenem. Aby uzyskać więcej informacji, zobacz Automatyczne odwoływanie wycieku paTs.
.: Czy mogę użyć osobistego tokenu dostępu jako klucza ApiKey do publikowania pakietów NuGet w kanale informacyjnym usługi Azure Artifacts przy użyciu wiersza polecenia dotnet/nuget.exe?
Odpowiedź: Nie. Usługa Azure Artifacts nie obsługuje przekazywania tokenu PAT jako klucza ApiKey. W przypadku korzystania z lokalnego środowiska programistycznego zalecamy zainstalowanie dostawcy poświadczeń usługi Azure Artifacts do uwierzytelniania za pomocą usługi Azure Artifacts. Aby uzyskać więcej informacji, zobacz następujące przykłady: dotnet, NuGet.exe. Jeśli chcesz opublikować pakiety przy użyciu usługi Azure Pipelines, użyj zadania NuGet Uwierzytelnij, aby uwierzytelnić się za pomocą źródła danych. Zobacz przykład.
.: Dlaczego mój pat przestał działać?
Uwierzytelnianie pat wymaga regularnego logowania się do usługi Azure DevOps przy użyciu pełnego przepływu uwierzytelniania. Logowanie raz na 30 dni jest wystarczające dla wielu użytkowników, ale może być konieczne częstsze logowanie się w zależności od konfiguracji firmy Microsoft Entra. Jeśli twój token dostępu przestanie działać, najpierw spróbuj zalogować się do organizacji i ukończyć pełny monit o uwierzytelnienie. Jeśli twój pat nadal nie działa, sprawdź, czy wygasł.
Włączanie uwierzytelniania podstawowego IIS unieważnia używanie PAT dla Azure DevOps Server. Aby uzyskać więcej informacji, zobacz
.: Jak mogę utworzyć klucze dostępu, które nie są powiązane z określoną osobą na potrzeby wdrażania?
1: W usłudze Azure DevOps można utworzyć klucze dostępu, które nie są powiązane z określoną osobą przy użyciu jednostek usługi lub tożsamości zarządzanych. Aby uzyskać więcej informacji, zobacz Zarządzać połączeniami usług i Używanie sekretów Azure Key Vault w Azure Pipelines.
Powiązane artykuły
- Używanie zasad do zarządzania osobistymi tokenami dostępu użytkowników
- Odwoływanie paT użytkowników (dla administratorów)
- Dowiedz się więcej o zabezpieczeniach, uwierzytelnianiu i autoryzacji
- Przeglądanie domyślnych uprawnień i dostępu dla usługi Azure DevOps
- Zarządzanie osobistymi tokenami dostępu (PAT) przy użyciu interfejsu API REST
- Zarządzanie jednostkami usługi i tożsamościami zarządzanymi w usłudze Azure DevOps