Použití osobních přístupových tokenů (PAT)
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 pat vás identifikuje a určuje přístupnost a rozsah přístupu. Proto s paty zachází se stejnou úrovní opatrnosti jako s hesly.
Pokud používáte nástroje Microsoftu, váš účet Microsoft (MSA) nebo Microsoft Entra ID je rozpoznaná a podporovaná metoda. Pokud používáte nástroje jiné společnosti než Microsoft, které nepodporují účty Microsoft nebo Microsoft Entra, nebo pokud preferujete sdílení primárních přihlašovacích údajů s těmito nástroji, jsou paty vhodným alternativním řešením.
Tento článek vás provede vytvářením, úpravami a odvoláváním PAT pro Azure DevOps.
Pracovní stanice s privilegovanými pracovními stanicemi můžete spravovat následujícími metodami:
- Uživatelské rozhraní (UI): Prostřednictvím uživatelských nastavení, jak je podrobně popsáno v tomto článku
- Rozhraní API pro správu životního cyklu PAT
Pokud chcete vytvořit paty pro nástroje jiné společnosti než Microsoft, můžete použít správce přihlašovacích údajů Gitu nebo je ručně vygenerovat. Doporučujeme projít si naše doprovodné materiály k ověřování a zvolit vhodný mechanismus ověřování. Pracovní stanice poskytují jednoduchou alternativu pro menší projekty, které nevyžadují rozsáhlé řešení. Bez správce přihlašovacích údajů uživatelé pokaždé zadají svoje přihlašovací údaje.
Požadavky
- Oprávnění:
- Mít oprávnění k přístupu a úpravě uživatelských nastavení, kde se spravují paty.
- Kontrola oprávnění: Pokud chcete zkontrolovat svá oprávnění, proveďte v Azure DevOps některý z následujících procesů:
- Přejděte do svého profilu a vyberte Osobní přístupové tokeny uživatelských nastavení>. Pokud tady vidíte a spravujete pracovní stanice s privilegovaným přístupem, máte potřebná oprávnění.
- Přejděte do projektu a vyberte Oprávnění nastavení>projektu. 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í.
- Kontrola oprávnění: Pokud chcete zkontrolovat svá oprávnění, proveďte v Azure DevOps některý z následujících procesů:
- 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 pro vytváření a správu PAT.
- V závislosti na úlohách, které chcete s patem provést, možná budete potřebovat další oprávnění. Příklad:
- Sestavení: Čtení a spuštění
- Kód: Čtení, zápis a správa
- Prostředí: Čtení a správa
- Projekt a tým: Čtení, zápis a správa
- Skupiny proměnných: Čtení a vytvoření
- Mít oprávnění k přístupu a úpravě uživatelských nastavení, kde se spravují paty.
- Úrovně přístupu: Mají alespoň základní přístup.
- Osvědčené postupy zabezpečení: Seznamte se s osvědčenými postupy zabezpečení pro správu patů, jako je jejich použití pouze v případě potřeby a pravidelné obměně.
Vytvoření pat
Přihlaste se ke své organizaci (
https://dev.azure.com/{Your_Organization}
).Na domovské stránce otevřete uživatelská nastavení a vyberte Osobní přístupové tokeny.
Vyberte + Nový token.
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.
Vyberte obory tohoto tokenu, které chcete autorizovat pro vaše konkrétní úkoly.
Pokud chcete například vytvořit token pro agenta sestavení a verze pro ověření v Azure DevOps, nastavte obor 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.
Poznámka:
Vytváření úplného rozsahu pat může být omezené. Pokud ano, váš správce Azure DevOps v Microsoft Entra ID povolil zásadu, která vás omezuje na konkrétní sadu oborů definovaných vlastními daty. Další informace najdete v tématu Správa patů pomocí zásad /Omezit vytváření plně omezených patů. U vlastního definovaného tokenu PAT není požadovaný obor pro přístup k rozhraní API
vso.governance
zásad správného řízení součástí v uživatelském rozhraní vybrán.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í.
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é
- Zacházejte s PAT se stejnými opatrnostmi jako s heslem a udržujte ho v tajnosti.
- Přihlaste se pomocí nové paty do 90 dnů pro organizace, které jsou podporovány Microsoft Entra ID; jinak se pat stane neaktivním. Další informace najdete v tématu Frekvence přihlašování uživatelů pro podmíněný přístup.
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é následujícímu příkladu. Toto oznámení slouží jako potvrzení úspěšného přidání pat do vaší organizace.
Následující obrázek ukazuje příklad sedmidenního oznámení před vypršením platnosti pat.
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, může to znamenat, že správce nebo nástroj vytvořil pat za vás. Zde je uvedeno 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: : Aplikace Azure Service: : Deploy web app" se vytvoří, když vy nebo správce nastavíte nasazení webové aplikace Aplikace Azure Service.
- Token s názvem WebAppLoadTestCDIntToken se vytvoří při nastavení webového zátěžového testování jako součást kanálu vámi nebo správcem.
- Token s názvem Integrace Microsoft Teams se vytvoří při nastavení rozšíření Microsoft Teams Integration Messaging.
Upozorňující
- Pokud máte podezření, že se jedná o chybu, odvolejte pat. Podle pokynů odvolejte pat a změňte heslo.
- Obraťte se na správce, jestli jste uživatelem Microsoft Entra a zjistěte, jestli k vaší organizaci přistupoval neznámý zdroj nebo umístění.
- Projděte si nejčastější dotazy týkající se náhodných vrácení se změnami PAT do veřejných úložišť GitHubu.
Použití pat
Váš pat slouží jako vaše digitální identita, podobně jako heslo.
Git
Interakce Gitu vyžadují uživatelské jméno, které může být cokoli kromě prázdného řetězce. Pokud chcete použít pat se základním ověřováním HTTP, Base64-encode
jak $MyPat
je znázorněno v následujícím bloku kódu.
V PowerShellu zadejte následující kód.
$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
Pomocí správců přihlašovacích údajů se vyhněte zadávání přihlašovacích údajů pokaždé a zajistěte lepší zabezpečení tokenu:
- Použijte Správce přihlašovacích údajů Gitu.
- Nainstalujte Git pro Windows.
Existující úložiště
Odeberte existující zdroj: Pokud jste dříve přidali původ pomocí uživatelského jména, odeberte ho spuštěním následujícího příkazu:
git remote remove origin
Ověřování pomocí pat: Pokud narazíte na problémy se standardním ověřováním, spusťte následující příkaz pro ověření prostřednictvím příkazového řádku:
git remote add origin https://dev.azure.com/<PAT>@<company_machineName>:/<project-name>/_git/<repo_name>
git push -u origin --all
Odkazuje
path to git repo = /_git/do
na strukturu cest URL použitou v Azure DevOps pro úložiště Git. Segment/_git/
označuje, že přistupujete k úložišti Git, a měli byste nahraditdo
skutečným názvem úložiště. Pokud je například vaše úložiště pojmenovanémy-repo
, cesta by byla "/_git/my-repo
".Klonování úložiště: Pokud používáte Git a potřebujete provést ověření, spusťte následující příkaz:
git clone https://{organization}@dev.azure.com/{organization}/_git/{repository}
Nahraďte
{organization}
názvem vaší organizace Azure DevOps a{repository}
názvem úložiště.
Použití PAT v kódu
K ověřování požadavků rozhraní API a automatizaci pracovních postupů můžete ve svém kódu použít pat. 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 ho Base64
převeďte na řetězec. Následující příklad ukazuje, jak převést na Base64
použití 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());
}
}
Když váš kód funguje, je vhodné přejít ze základního ověřování na OAuth.
Další informace a příklady použití PAT najdete v následujících článcích:
- Nastavení správců přihlašovacích údajů Gitu
- Přístup k rozhraním REST API
- Použití NuGetu na Macu
- Ověřování klientů pro vytváření sestav
- Začínáme s Azure DevOps CLI
Úprava patu
Postupujte takto:
- Znovu vygenerujte token PAT a vytvořte nový token, který zneplatní předchozí token.
- Prodloužením platnosti pat zvýšíte jeho dobu platnosti.
- Změňte rozsah pat a změňte jeho oprávnění.
Na domovské stránce otevřete nastavení uživatele a pak vyberte Profil.
V části Zabezpečení vyberte Osobní přístupové tokeny. Vyberte token, který chcete upravit, a pak upravte.
Upravte název tokenu, vypršení platnosti tokenu nebo obor přístupu přidružený k tokenu a pak vyberte Uložit.
Odvolání pat
Pat můžete kdykoli odvolat z těchto a dalších důvodů:
- Pokud se domníváte, že dojde k ohrožení zabezpečení, odvolejte pat.
- Odvolat pat, když už není potřeba.
- Odvoláním pat vynucujte zásady zabezpečení nebo požadavky na dodržování předpisů.
Na domovské stránce otevřete nastavení uživatele a pak vyberte Profil.
V části Zabezpečení vyberte Osobní přístupové tokeny. Vyberte token, pro který chcete odvolat přístup, a pak vyberte Odvolat.
V potvrzovacím dialogovém okně vyberte Možnost Odvolat .
Další informace najdete v tématu Odvolání pat uživatelů 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í další výhody zabezpečení a zlepšují nástroje pro detekci tajných kódů dostupné prostřednictvím našich partnerských nabídek, jako je GitHub Advanced Security pro Azure DevOps. 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í paty: Důrazně doporučujeme znovu vygenerovat všechny pracovní stanice, které se aktuálně 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.
Související články
- Informace o zabezpečení, ověřování a autorizaci
- Kontrola výchozích oprávnění a přístupu pro Azure DevOps
- Odvolání patů uživatelů (pro správce)
- Správa instančních objektů a spravovaných identit v Azure DevOps
Nejčastější dotazy
Otázka: Proč nemůžu upravit nebo znovu vygenerovat pat s vymezeným oborem pro jednu organizaci?
A: Ujistěte se, že jste přihlášení k organizaci, ve které je obor pat. Všechny pracovní stanice můžete zobrazit při přihlášení k jakékoli organizaci ve stejném ID Microsoft Entra, ale tokeny v oboru organizace můžete upravovat jenom v případě, že jste přihlášení k organizaci, na kterou jsou vymezeny.
Otázka: Co se stane s patem, pokud je uživatelský účet zakázaný?
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 také zneplatní v Microsoft Entra ID, protože patří uživateli. Pokud chcete udržovat služby spuštěné, doporučujeme ho otočit na jiného uživatele nebo účtu služby.
Otázka: Existuje způsob, jak obnovit pat prostřednictvím rozhraní REST API?
Ano, existuje způsob, jak obnovit, spravovat a vytvářet PAT pomocí našich rozhraní API pro správu životního cyklu PAT. Další informace najdete v tématu Správa PAT pomocí rozhraní REST API a nejčastějších dotazů.
Otázka: Můžu použít základní ověřování 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 podporují pouze OAuth. Další informace najdete v tématu Správa PAT pomocí rozhraní REST API.
Otázka: Co se stane, když omylem zkontroluji pat do veřejného úložiště na GitHubu?
A: Azure DevOps vyhledá paty, které jsou rezervované 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ásady automaticky odvolaných tokenů pat, okamžitě odvoláme nevracený 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 Odvolání nevracených PAT automaticky.
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. Služba Azure Artifacts nepodporuje předávání tokenu PAT jako ApiKey. Pokud používáte místní vývojové prostředí, doporučujeme pro ověřování v Azure Artifacts nainstalovat Azure Artifacts Credential Provider. Další informace najdete v následujících příkladech: dotnet, NuGet.exe. Pokud chcete publikovat balíčky pomocí Azure Pipelines, použijte úlohu Ověření NuGet k ověření v příkladu informačního kanálu.
Otázka: Proč můj pat přestal 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 vaší organizace a dokončit úplnou výzvu k ověření. Pokud váš token PAT stále nefunguje, zkontrolujte, jestli vypršela jeho platnost.
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 správy identit. Další informace najdete v tématu Správa připojení služeb, použití tajných kódů služby Azure Key Vault v Azure Pipelines.