Udostępnij za pośrednictwem


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.

Jeśli używasz narzędzi firmy Microsoft, twoje konto Microsoft (MSA) lub Identyfikator Entra firmy Microsoft jest rozpoznawaną i obsługiwaną metodą. Jeśli używasz narzędzi innych niż Microsoft, które nie obsługują kont Microsoft lub Microsoft Entra, lub jeśli nie chcesz udostępniać poświadczeń podstawowych za pomocą tych narzędzi, usługi PATs są odpowiednią alternatywą.

Ten artykuł przeprowadzi Cię przez proces tworzenia, używania, modyfikowania i odwołwania paT dla usługi Azure DevOps.

Usługi PAT można zarządzać przy użyciu następujących metod:

Aby ustanowić usługi PAT dla narzędzi innych niż Microsoft, możesz użyć menedżerów poświadczeń Git lub wygenerować je ręcznie. Zalecamy przejrzenie naszych wskazówek dotyczących uwierzytelniania, aby wybrać odpowiedni mechanizm uwierzytelniania. PaTs stanowią prostą alternatywę dla mniejszych projektów, które nie wymagają rozbudowanego rozwiązania. Bez menedżera poświadczeń użytkownicy wprowadzają 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.
    • 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.
    • W zależności od zadań, które chcesz wykonać przy użyciu pat, może być konieczne dodatkowe uprawnienia. Na przykład: .
      • Kompilacja: odczyt i wykonanie
      • Kod: Odczyt, zapis i zarządzanie
      • Środowisko: odczyt i zarządzanie
      • Projekt i zespół: odczyt, zapis i zarządzanie
      • Grupy zmiennych: odczyt i tworzenie
  • Poziomy dostępu: mają co najmniej dostęp podstawowy.
  • Najlepsze rozwiązania w zakresie zabezpieczeń: Zapoznaj się z najlepszymi rozwiązaniami w zakresie zabezpieczeń dotyczącymi zarządzania sieciami uprzywilejowanymi, takimi jak używanie ich tylko wtedy, gdy jest to konieczne i regularnie je obraca.

Tworzenie tokenu dostępu

  1. Zaloguj się do swojej organizacji (https://dev.azure.com/{Your_Organization}).

  2. Na stronie głównej otwórz ustawienia użytkownika i wybierz pozycję Osobiste tokeny dostępu.

    Zrzut ekranu przedstawiający wybór, osobiste tokeny dostępu.

  3. Wybierz pozycję + Nowy token.

    Zrzut ekranu przedstawiający wybór, Nowy token.

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

    Zrzut ekranu przedstawiający wpis podstawowych informacji o tokenie.

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

    Zrzut ekranu przedstawiający wybrane zakresy dla patu dostępu.

    Uwaga

    Tworzenie pełnych zakresów paT może być ograniczone. Jeśli tak, administrator usługi Azure DevOps w usłudze Microsoft Entra ID włączył zasady ograniczające użytkownika 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.

  6. Po zakończeniu skopiuj token i zapisz go w bezpiecznej lokalizacji. W przypadku zabezpieczeń nie są wyświetlane ponownie.

    Zrzut ekranu przedstawiający sposób kopiowania tokenu do schowka.

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.

Zrzut ekranu przedstawiający powiadomienie o utworzeniu tokenu dostępu.

Na poniższej ilustracji przedstawiono przykład siedmiodniowego powiadomienia przed wygaśnięciem tokenu dostępu.

Zrzut ekranu przedstawiający powiadomienie o zbliżaniu się do wygaśnięcia patu.

Nieoczekiwane powiadomienie

Jeśli otrzymasz nieoczekiwane powiadomienie o patu, może to oznaczać, że administrator lub narzędzie utworzyło dla Ciebie token dostępu. 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: : aplikacja systemu Azure Service: : Deploy web app" (Wdrażanie aplikacji internetowej) jest tworzony podczas konfigurowania wdrożenia aplikacji internetowej usługi aplikacja systemu Azure Service.
  • Token o nazwie "WebAppLoadTestCDIntToken" jest tworzony podczas testowania obciążenia internetowego jest konfigurowany jako część potoku przez Ciebie lub administratora.
  • Token o nazwie "Integracja z usługą Microsoft Teams" jest tworzony podczas konfigurowania rozszerzenia microsoft Teams Integration Messaging.

Ostrzeżenie

  • Odwołaj pat, jeśli podejrzewasz, że istnieje on w błędzie. Postępuj zgodnie z instrukcjami, aby odwołać pat i zmienić hasło.
  • Jeśli jesteś użytkownikiem firmy Microsoft Entra, sprawdź, czy twoja organizacja była uzyskiwana przez nieznane źródło lub lokalizację.
  • 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.

Usługa Git

Interakcje z usługą Git wymagają nazwy użytkownika, która może być niczym innym niż pusty ciąg. Aby użyć tokenu PAT z uwierzytelnianiem podstawowym PROTOKOŁU HTTP, Base64-encode tak $MyPat jak pokazano w poniższym bloku kodu.

W programie PowerShell wprowadź następujący kod.

$MyPat = 'yourPat'
$headerValue = "Authorization: Basic " + [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":" + $MyPat))
$env:GIT_AUTH_HEADER = $headerValue

git --config-env=http.extraheader=GIT_AUTH_HEADER clone https://dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName

Użyj menedżerów poświadczeń, aby uniknąć wprowadzania poświadczeń za każdym razem i zachować bezpieczeństwo tokenu:

Istniejące repozytoria

  • Usuń istniejące źródło: jeśli wcześniej dodano źródło przy użyciu nazwy użytkownika, usuń go, uruchamiając następujące polecenie:

    git remote remove origin

  • Uwierzytelnianie przy użyciu tokenu PAT: Jeśli wystąpią problemy z uwierzytelnianiem standardowym, uruchom następujące polecenie, aby uwierzytelnić się za pomocą wiersza polecenia:

    git remote add origin https://dev.azure.com/<PAT>@<company_machineName>:/<project-name>/_git/<repo_name>

    git push -u origin --all

    Odnosi path to git repo = /_git/do się do struktury ścieżki adresu URL używanej w usłudze Azure DevOps dla repozytoriów Git. Segment /_git/ wskazuje, że uzyskujesz dostęp do repozytorium Git i należy zastąpić do rzeczywistą nazwą repozytorium. Jeśli na przykład repozytorium ma nazwę my-repo, ścieżka będzie mieć wartość "/_git/my-repo".

  • Sklonuj repozytorium: jeśli używasz narzędzia Git i musisz się uwierzytelnić, uruchom następujące polecenie:

    git clone https://{organization}@dev.azure.com/{organization}/_git/{repository}

    Zastąp {organization} ciąg nazwą organizacji usługi Azure DevOps i {repository} nazwą repozytorium.

Używanie tokenu pat w kodzie

Możesz użyć tokenu dostępu w kodzie, aby uwierzytelnić żądania interfejsu API i zautomatyzować przepływy 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());
   }
}

Gdy kod działa, warto przełączyć się z podstawowego uwierzytelniania na protokół OAuth.

Aby uzyskać więcej informacji i przykładów używania paT, zobacz następujące artykuły:

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.
  1. Na stronie głównej otwórz ustawienia użytkownika, a następnie wybierz pozycję Profil.

    Zrzut ekranu przedstawiający sekwencję przycisków do wybrania w celu zmodyfikowania tokenu dostępu.

  2. W obszarze Zabezpieczenia wybierz pozycję Osobiste tokeny dostępu. Wybierz token, który chcesz zmodyfikować, a następnie pozycję Edytuj.

    Zrzut ekranu przedstawiający wyróżniony przycisk Edytuj, aby zmodyfikować pat.

  3. Edytuj nazwę tokenu, wygaśnięcie tokenu lub zakres dostępu skojarzony z tokenem, a następnie wybierz pozycję Zapisz.

    Zrzut ekranu przedstawiający zmodyfikowany token dostępu.

Odwoływanie pat

Możesz odwołać pat w dowolnym momencie z tych i innych powodów:

  • Odwoływanie pat, jeśli podejrzewasz, że zostało naruszone.
  • Odwoływanie patu, gdy nie jest już potrzebne.
  • Odwoływanie dostępu w celu wymuszania zasad zabezpieczeń lub wymagań dotyczących zgodności.
  1. Na stronie głównej otwórz ustawienia użytkownika, a następnie wybierz pozycję Profil.

    Zrzut ekranu przedstawiający sekwencję przycisków do wybrania, usługi Team Services, strony podglądu i odwołania tokenu dostępu.

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

    Zrzut ekranu przedstawiający wybór umożliwiający odwołanie pojedynczego tokenu lub wszystkich tokenów.

  3. Wybierz pozycję Odwołaj w oknie dialogowym potwierdzenia.

    Zrzut ekranu przedstawiający ekran potwierdzenia w celu odwołania dostępu do tożsamości.

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 zabezpieczeń i usprawniają narzędzia do wykrywania wpisów tajnych dostępne za pośrednictwem naszych ofert partnerskich, takich jak Usługa GitHub Advanced Security dla usługi Azure DevOps. 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.

Często zadawane pytania

.: Dlaczego nie mogę edytować ani ponownie wygenerować tokenu dostępu ograniczonego do jednej organizacji?

1: Upewnij się, że zalogowano się do organizacji, w której twój token dostępu jest o określonym zakresie. Podczas logowania do dowolnej organizacji możesz wyświetlić wszystkie punkty dostępu uprzywilejowanego w tym samym identyfikatorze Firmy Microsoft Entra, ale możesz edytować tokeny o zakresie organizacji tylko wtedy, gdy logujesz się do organizacji, do której są one ograniczone.

.: 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?

Ach: Tak, istnieje sposób odnawiania, zarządzania i tworzenia paT przy użyciu naszych interfejsów API zarządzania cyklem życia pat. Aby uzyskać więcej informacji, zobacz Manage PATs using REST API and FAQ (Zarządzanie punktami pat przy użyciu interfejsu API REST i często zadawanych pytań).

.: Czy mogę używać podstawowego uwierzytelniania 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 obsługują tylko protokół OAuth. Aby uzyskać więcej informacji, zobacz Zarządzanie punktami pat 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 osobistego tokenu dostępu jako klucza ApiKey. Podczas korzystania z lokalnego środowiska programistycznego zalecamy zainstalowanie dostawcy poświadczeń usługi Azure Artifacts w celu uwierzytelniania się w usłudze 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 Uwierzytelniania NuGet, aby uwierzytelnić się przy użyciu przykładu źródła danych.

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

.: 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 tworzyć klucze dostępu, które nie są powiązane z określoną osobą przy użyciu jednostek usługi ani zarządzania tożsamościami. Aby uzyskać więcej informacji, zobacz Zarządzanie połączeniami usług, Używanie wpisów tajnych usługi Azure Key Vault w usłudze Azure Pipelines.