Sdílet prostřednictvím


Použití osobních přístupových tokenů

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Token PAT (Personal Access Token) slouží jako alternativní heslo pro ověřování v Azure DevOps. Tento token vás identifikuje a určuje vaši přístupnost a rozsah přístupu. Proto s PATy zacházejte se stejnou úrovní opatrnosti jako s hesly.

Důležité

Doporučujeme používat tokeny Microsoft Entra. Další informace o našem úsilí o snížení využití PAT naleznete v našem blogu. Projděte si naše pokyny k ověřování a zvolte vhodný mechanismus ověřování pro vaše potřeby.

Pokud používáte nástroje Microsoftu, rozpozná a podporuje se váš účet Microsoft (MSA) nebo Microsoft Entra ID. Pokud používáte nástroje, které nepodporují účty Microsoft Entra nebo nechcete sdílet vaše primární přihlašovací údaje, můžou být pats vhodná alternativa. Doporučujeme však používat tokeny Microsoft Entra namísto PATů, kdykoli je to možné.

Můžete spravovat osobní přístupové tokeny pomocí následujících metod:

Požadavky

Kategorie Požadavky
Oprávnění Oprávnění k přístupu a úpravě uživatelských nastavení, ve kterých se spravují PATs.
- Přejděte na svůj profil a vyberte Uživatelská nastavení>Personal Access Tokens. Pokud zde vidíte a spravujete své osobní přístupové tokeny, máte potřebná oprávnění.
- Přejděte do projektu a vyberte Nastavení projektu>Oprávnění. Najděte v seznamu svůj uživatelský účet a zkontrolujte oprávnění přiřazená vám. Vyhledejte oprávnění související se správou tokenů nebo uživatelských nastavení.
– Pokud má vaše organizace zavedené zásady, správce Azure DevOps vám možná bude muset udělit konkrétní oprávnění nebo vás přidat do seznamu povolených k vytváření a správě pat.
- PATs jsou připojeny k uživatelskému účtu, který token vytvořil. V závislosti na úlohách, které PAT provádí, můžete sami potřebovat více oprávnění.
úrovně přístupu Alespoň základní přístup .
Úkoly Používejte PATs pouze v případě potřeby a vždy je pravidelně měňte.

Vytvořte PAT

  1. Přihlaste se ke své organizaci (https://dev.azure.com/{Your_Organization}).

  2. Na domovské stránce otevřete uživatelská nastavení a vyberte Osobní přístupové tokeny.

    Snímek obrazovky znázorňující výběr osobních přístupových tokenů

  3. Vyberte + Nový token.

    Snímek obrazovky znázorňující výběr, Nový token

  4. Pojmenujte token, vyberte organizaci, ve které chcete token použít, a potom nastavte, aby platnost tokenu po nastaveném počtu dnů automaticky vypršela.

    Snímek obrazovky znázorňující položku základních informací o tokenech

  5. Vyberte obory tohoto tokenu, které chcete autorizovat pro vaše konkrétní úkoly.

    Například pokud chcete vytvořit token pro agenta sestavení a nasazení pro ověření v Azure DevOps, nastavte dosah tokenu na Fondy agentů (Čtení a Správa). Pokud chcete číst události protokolu auditu a spravovat nebo odstraňovat streamy, vyberte Protokol auditu a pak vyberte Vytvořit.

    Snímek obrazovky znázorňující vybraná oprávnění pro PAT.

    Poznámka:

    Můžete mít omezení ve vytváření PAT s plnými oprávněními. Pokud ano, váš správce Azure DevOps v Microsoft Entra ID povolil zásadu, která vás omezuje na konkrétní vlastní definovanou sadu oborů. Pro více informací se podívejte na Správa PATs pomocí zásad/Omezení vytváření PATs s plným rozsahem. U vlastního definovaného tokenu PAT nelze požadovaný obor pro přístup k rozhraní API pro správu komponent vso.governance vybrat v uživatelském rozhraní.

  6. Až budete hotovi, zkopírujte token a uložte ho do zabezpečeného umístění. Pro vaše zabezpečení se znovu nezobrazí.

    Snímek obrazovky znázorňující, jak token zkopírovat do schránky

Pro ověřování v Azure DevOps použijte pat všude, kde jsou vyžadovány přihlašovací údaje uživatele.

Důležité

Oznámení

Během životnosti pat obdrží uživatelé dvě oznámení: první v době vytvoření a druhý sedm dní před vypršením platnosti.

Po vytvoření PAT obdržíte oznámení podobné tomuto příkladu. Toto oznámení slouží jako potvrzení, že váš PAT byl úspěšně přidán do vaší organizace.

Snímek obrazovky zobrazující oznámení o vytvoření PAT

Následující obrázek ukazuje příklad sedmidenního oznámení před vypršením platnosti vašeho PAT.

Snímek obrazovky s oznámením PAT o blížícím se vypršení platnosti

Další informace najdete v tématu Konfigurace serveru SMTP a přizpůsobení e-mailu pro výstrahy a žádosti o zpětnou vazbu.

Neočekávané oznámení

Pokud se zobrazí neočekávané oznámení PAT, to může znamenat, že vám správce nebo nástroj vytvořil PAT. Tady je několik příkladů:

  • Token s názvem Git: https://dev.azure.com/{Your_Organization} on YourMachine se vytvoří při připojení k úložišti Git Azure DevOps přes git.exe.
  • Token s názvem "Service Hooks: Azure App Service: Deploy web app" se vytvoří, když vy nebo správce nastavíte nasazení webové aplikace Azure App Service.
  • Token s názvem "WebAppLoadTestCDIntToken" se vytvoří při nastavení webového zátěžového testování jako součást pipeline vámi nebo správcem.
  • Token s názvem "Microsoft Teams Integration" se vytvoří, když se nastaví rozšíření pro zasílání zpráv Microsoft Teams Integration.

Varování

  • Odvolejte PAT (a změňte své heslo), pokud máte podezření, že existuje chybně.
  • Obraťte se na svého správce, pokud jste uživatelem Microsoft Entra, a ověřte, zda se do vaší organizace nepřihlásil neznámý zdroj nebo umístění.
  • Prohlédněte si FAQ o neúmyslném přidání PAT do veřejných úložišť GitHubu.

Použijte PAT

Váš PAT funguje jako vaše digitální identita, podobně jako heslo. PaTs můžete použít jako rychlý způsob, jak provádět jednorázové žádosti nebo místně vytvořit prototyp aplikace.

Důležité

Když váš kód funguje, je vhodné přejít ze základního ověřování na Microsoft Entra OAuth. Tokeny MICROSOFT Entra ID můžete použít všude, kde se použije pat, pokud není uvedeno dále v tomto článku.

V kódu můžete použít PAT (osobní přístupový token) k ověřování požadavků na rozhraní REST API a automatizaci pracovních postupů. Pokud to chcete udělat, zahrňte pat do autorizační hlavičky vašich požadavků HTTP.

Pokud chcete PAT poskytnout prostřednictvím hlavičky HTTP, nejprve jej Base64 převeďte na řetězec. Následující příklad ukazuje, jak převést na Base64 pomocí jazyka C#.


Authorization: Basic BASE64_USERNAME_PAT_STRING

Výsledný řetězec je pak možné zadat jako hlavičku HTTP v následujícím formátu.

Následující ukázka používá třídu HttpClient v jazyce 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());
    }
}

Tip

Při použití proměnných přidejte $ na začátek řetězce, například v následujícím příkladu.

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());
   }
}

Některé další příklady použití PAT najdete v následujících článcích:

Úprava PAT

Postupujte takto:

  • Znovu vygenerujte token PAT a vytvořte nový token, který zneplatní předchozí token.
  • Prodloužením platnosti osobního přístupového tokenu (PAT) zvýšíte dobu jeho platnosti.
  • Změňte rozsah PAT a změňte jeho oprávnění.
  1. Na domovské stránce otevřete nastavení uživatele a pak vyberte Profil.

    Snímek obrazovky znázorňující posloupnost tlačítek, která mají být vybrána pro úpravu PAT.

  2. V části Zabezpečení vyberte Osobní přístupové tokeny. Vyberte token, který chcete upravit, a pak upravte.

    Snímek obrazovky se zvýrazněným tlačítkem Upravit pro úpravu PAT

  3. Upravte název tokenu, vypršení platnosti tokenu nebo obor přístupu přidružený k tokenu a pak vyberte Uložit.

    Snímek obrazovky s upraveným PAT

Odvolat PAT

Pat můžete kdykoli odvolat z těchto a dalších důvodů:

  • Pokud máte podezření, že byl kompromitován, odvolejte PAT.
  • Odvolat osobní přístupový token, když už není potřeba.
  • Odvolejte PAT k prosazení bezpečnostních zásad nebo požadavků na dodržování předpisů.
  1. Na domovské stránce otevřete nastavení uživatele a pak vyberte Profil.

    Snímek obrazovky ukazující posloupnost výběru tlačítek: Team Services, stránka náhledu a odvolání osobního přístupového tokenu (PAT).

  2. V části Zabezpečení vyberte Osobní přístupové tokeny. Vyberte token, pro který chcete odvolat přístup, a pak vyberte Odvolat.

    Snímek obrazovky znázorňující výběr pro odvolání jednoho tokenu nebo všech tokenů

  3. V potvrzovacím dialogovém okně vyberte Odvolat.

    Snímek obrazovky zobrazující potvrzovací obrazovku pro odvolání PAT

Další informace najdete v tématu Odvolání uživatelských tokenů pro správce.

Změny formátu

Od července 2024 jsme výrazně změnili formát PAT vydaných Azure DevOps. Tyto změny poskytují větší výhody z hlediska zabezpečení a zlepšují nástroje pro detekci úniku tajných přístupových tokenů (PAT), které jsou dostupné prostřednictvím našeho systému detekce úniků nebo partnerských nabídek. Tento nový formát PAT se řídí doporučeným formátem ve všech produktech Microsoftu. Zahrnutí identifikovatelných bitů zlepšuje míru detekce falešně pozitivních výsledků těchto nástrojů pro detekci tajných kódů a umožňuje nám rychleji zmírnit zjištěné úniky.

Klíčové změny:

  • Zvýšená délka tokenu: Nové tokeny teď mají délku 84 znaků, přičemž randomizovaná data jsou 52 znaků. Tato zvýšená délka zlepšuje celkovou entropii a zvyšuje odolnost tokenů vůči potenciálním útokům hrubou silou.
  • Pevný podpis: Tokeny vydané naší službou obsahují pevný AZDO podpis na pozicích 76-80.

Požaduje se akce:

  • Znovu vygenerovat stávající osobní přístupové tokeny: Důrazně doporučujeme znovu vygenerovat všechny osobní přístupové tokeny, které se používají, aby bylo možné využít těchto vylepšení zabezpečení.
  • Podpora integrátorů: Integrátoři by měli aktualizovat své systémy tak, aby vyhovovaly novým i stávajícím délkám tokenů.

Důležité

Oba formáty zůstávají platné v dohledné budoucnosti, ale aktivně doporučujeme zákazníkům přejít na nový formát 84 znaků. S nárůstem přijetí nového formátu zvažujeme vyřazení staršího formátu o 52 znaků a všech tokenů vydaných v daném stylu.

Osvědčené postupy pro používání PAT

Zvažte alternativy

  • Získejte token Microsoft Entra prostřednictvím Azure CLI na ad hoc požadavky, které jsou platné jednu hodinu místo vytváření dlouhodobějšího osobního přístupového tokenu (PAT).
  • Pro zjednodušení správy přihlašovacích údajů používejte správce přihlašovacích údajů, jako je Git Credential Manager nebo Správce přihlašovacích údajů Azure Artifacts. Tyto nástroje můžou nabízet možnosti používat tokeny Microsoft Entra jako výchozí ověřování místo PAT.

Vytváření PAT

  • Vyhněte se vkládání osobních údajů do názvu PAT. PAT tokenový řetězec nepřejmenujte na název vašeho tokenu.
  • Vyberte jenom organizaci, ke které váš pat potřebuje přístup, pokud nepotřebuje přístup k více organizacím. U pracovních postupů vyžadujících přístup k více organizacím vytvořte samostatnou globální PAT pro tento pracovní postup.
  • Zvolte pouze potřebné rozsahy pro jednotlivé PAT. Pokud je to možné, vytvořte pro každý pracovní postup několik PAT s omezenějším počtem oborů místo jednoho PAT s úplným rozsahem. Pokud váš PAT potřebuje jenom oprávnění ke čtení, nezadávejte oprávnění k zápisu, dokud nebude potřeba.
  • Udržujte délku životnosti PAT krátkou (týdenní je ideální, ještě kratší je lepší) a pravidelně je obměňujte nebo regenerujte pomocí uživatelského rozhraní nebo rozhraní API pro správu životního cyklu PAT .

Správa osobních přístupových tokenů

  • Vždy ukládejte své PATy do zabezpečeného řešení správy klíčů, jako je Azure Key Vault.
  • Zrušte PATs, když už nejsou potřeba. Správci tenantů mohou odvolat osobní přístupové tokeny pro uživatele organizace, pokud je osobní přístupový token kompromitován.
  • Obměňte své PAT tak, aby používaly nový formát PAT pro lepší detekci a zrušení uniklých tajných kódů pomocí našich proprietárních nástrojů.

Pro správce

Správci tenanta mohou nastavit zásady tak, aby omezily globální vytváření PAT, vytváření PAT s plným rozsahem a dlouhou dobu platnosti PAT. Mohou také povolit, aby zásady automaticky odvolaly uniklé osobní přístupové tokeny zjištěné ve veřejných úložištích. Pomocí těchto zásad můžete zlepšit zabezpečení vaší společnosti.

Nejčastější dotazy

Otázka: Proč nemůžu upravit nebo znovu vygenerovat pat s vymezeným oborem pro jednu organizaci?

A: Přihlaste se do organizace, ve které je obor PAT vymezený. Všechny tokeny osobního přístupu (PAT) můžete zobrazit při přihlášení k jakékoli organizaci ve stejném Microsoft Entra ID, ale tokeny s rozsahem organizace můžete upravovat jen při přihlášení ke konkrétní organizaci.

Otázka: Co se stane s PAT, pokud je uživatelský účet deaktivovaný?

A: Když se uživatel odebere z Azure DevOps, platnost pat se zruší do 1 hodiny. Pokud je vaše organizace připojená k Microsoft Entra ID, PAT se také zneplatní v systému Microsoft Entra ID, protože patří uživateli. Doporučujeme přesunout PAT na jiného uživatele nebo účet služby, abyste udrželi služby v chodu.

Otázka: Existuje způsob, jak obnovit pat prostřednictvím rozhraní REST API?

A: Ano, můžete prodloužit, spravovat a vytvářet PAT pomocí našich rozhraní API pro správu životního cyklu pat .

Otázka: Můžu používat PAT se všemi rozhraními REST API Azure DevOps?

Odpověď: Ne. Základní ověřování můžete použít u většiny rozhraní REST API Azure DevOps, ale organizace a profily a rozhraní API životního cyklu PAT Management podporují pouze microsoft Entra OAuth. Příklad nastavení aplikace Microsoft Entra pro volání těchto rozhraní API najdete v tématu Správa PAT pomocí rozhraní REST API.

Otázka: Co se stane, když omylem zveřejním svůj osobní přístupový token ve veřejném úložišti na GitHubu?

A: Azure DevOps vyhledá PATs, které jsou uložené ve veřejných úložištích na GitHubu. Když najdeme nevracený token, okamžitě pošleme vlastníkovi tokenu podrobné e-mailové oznámení a zapíšeme událost do protokolu auditu vaší organizace Azure DevOps. Pokud nezakážete zásadu automatického odvolání uniklých osobních přístupových tokenů, okamžitě odvoláme uniklý token PAT. Doporučujeme ovlivněným uživatelům tento problém zmírnit odvoláním nevraceného tokenu a nahrazením novým tokenem. Další informace naleznete v tématu Automatické odvolání uniklých PAT.

Otázka: Můžu použít osobní přístupový token jako ApiKey k publikování balíčků NuGet do informačního kanálu Azure Artifacts pomocí příkazového řádku dotnet/nuget.exe?

Odpověď: Ne. Azure Artifacts nepodporuje předávání PAT jako apiKey. Při použití místního vývojového prostředí doporučujeme nainstalovat zprostředkovatele přihlašovacích údajů Azure Artifacts k ověření pomocí Azure Artifacts. Další informace najdete v následujících příkladech: dotnet, NuGet.exe. Pokud chcete publikovat balíčky pomocí Azure Pipelines, použijte úlohu NuGet Authenticate k ověření s vaším informačním kanálem. Viz příklad.

Otázka: Proč přestal můj PAT fungovat?

A: Ověřování PAT vyžaduje, abyste se pravidelně přihlásili k Azure DevOps pomocí úplného toku ověřování. Přihlášení jednou za 30 dní stačí pro mnoho uživatelů, ale v závislosti na konfiguraci Microsoft Entra se možná budete muset přihlásit častěji. Pokud váš PAT přestane fungovat, zkuste se nejdřív přihlásit do své organizace a dokončit celý proces ověřování. Pokud váš token PAT stále nefunguje, zkontrolujte, jestli vypršela jeho platnost.

Povolení základního ověřování IIS invaliduje používání PAT pro Azure DevOps Server.

Upozornění

Vždy doporučujeme ponechat základní ověřování služby IIS vypnuté . Pouze v případě potřeby byste měli povolit základní ověřování služby IIS. Pokud je na počítači s Windows povoleno základní ověřování služby IIS, zabrání vám to v použití osobních přístupových tokenů (PAT) jako ověřovacího mechanismu.

Pokud například pomocí PAT povolíte aplikaci třetí strany načítat informace o chybách a následně odešlete e-mail s informacemi osobě přiřazené k chybě (s povoleným základním ověřováním v IIS), aplikace selže při ověřování. Aplikace nemůže načíst informace o chybě.

Upozornění

Pokud používáte Git se základním ověřováním (Basic Authentication) služby IIS, Git přestane fungovat, protože pro ověřování uživatelů vyžaduje osobní přístupové tokeny (PATs). I když nedoporučujeme používat základní ověřování služby IIS, přidáním další hlavičky k žádostem Gitu můžete Git používat se základním ověřováním služby IIS.

Další hlavičku je potřeba použít pro všechny instalace Azure DevOps Serveru, protože ověřování Windows také brání používání PATs. Další hlavička musí obsahovat kódování base 64 "user:PAT". Podívejte se na následující formát a příklad.

Formát :

git -c http.extraheader='Authorization: Basic [base 64 encoding of "user:password"]' ls-remote http://tfsserver:8080/tfs/DefaultCollection/_git/projectName

Příklad:

git -c http.extraheader='Authorization: Basic a2FzYW50aGE6bzN3cDVndmw2YXRkajJkam83Znd4N2k3NDdhbGxjNXp4bnc3b3o0dGQycmd3d2M1eTdjYQ==' ls-remote http://tfsserver:8080/tfs/DefaultCollection/_git/projectName

Otázka: Návody vytvořit přístupové klíče, které nejsou svázané s konkrétní osobou pro účely nasazení?

A: V Azure DevOps můžete vytvořit přístupové klíče, které nejsou svázané s konkrétní osobou pomocí instančních objektů nebo spravovaných identit. Další informace najdete v tématu Správa připojení služeb a Použití tajných kódů služby Azure Key Vault ve službě Azure Pipelines.