Személyes hozzáférési tokenek használata
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
A személyes hozzáférési jogkivonat (PAT) alternatív jelszóként szolgál az Azure DevOpsba való hitelesítéshez. Ez a cikk végigvezeti az Azure DevOpshoz készült PAT-k létrehozásának, használatának, módosításának és visszavonásának folyamatán.
Tudnivalók a személyes hozzáférési tokenekről
Használjon PAT-t az Azure DevOps biztonsági hitelesítő adataiként. Ez a PAT azonosítja Önt, és meghatározza az akadálymentességet és a hozzáférés hatókörét. Ezért a paT-okat ugyanolyan óvatossággal kell kezelni, mint a jelszavakat.
A Microsoft-eszközök használatakor a Microsoft-fiókja (MSA) vagy a Microsoft Entra ID egy elismert és támogatott módszer. Ha azonban nem Microsoft-eszközöket használ, amelyek nem támogatják a Microsoft- vagy Microsoft Entra-fiókokat, vagy ha nem szeretné megosztani az elsődleges hitelesítő adatait ezekkel az eszközökkel, a PAT-k alternatívát jelentenek.
PaT-k létrehozása és kezelése a következő módszerekkel:
- Felhasználói felület (UI): A jelen cikkben ismertetett felhasználói beállításokon keresztül
- PAT életciklus-kezelési API
Ha paT-okat szeretne létrehozni nem Microsoft-eszközökhöz, használhatja a Git hitelesítőadat-kezelőit , vagy manuálisan hozhatja létre őket. Javasoljuk, hogy tekintse át a hitelesítési útmutatót a megfelelő hitelesítési mechanizmus kiválasztásához. A PAT-k egyszerű alternatívát nyújtanak olyan kisebb projektekhez, amelyekhez nincs szükség átfogó megoldásra. Hitelesítőadat-kezelő nélkül a felhasználók minden alkalommal megadják a hitelesítő adataikat.
PAT létrehozása
Jelentkezzen be a szervezetbe (
https://dev.azure.com/{Your_Organization}
).A kezdőlapon nyissa meg a felhasználói beállításokat , és válassza a Személyes hozzáférési jogkivonatok lehetőséget.
Válassza az + Új jogkivonat lehetőséget.
Nevezze el a jogkivonatot, válassza ki azt a szervezetet, ahol használni szeretné a jogkivonatot, majd állítsa be, hogy a jogkivonat egy megadott számú nap után automatikusan lejárjon.
Válassza ki a jogkivonat hatóköreit az adott tevékenységek engedélyezéséhez.
Ha például létrehoz egy jogkivonatot egy build- és kiadási ügynökhöz az Azure DevOpsban való hitelesítéshez, állítsa a jogkivonat hatókörét ügynökkészletekre (Olvasás és kezelés). A naplóesemények olvasásához és a streamek kezeléséhez vagy törléséhez válassza az Auditnapló olvasása lehetőséget, majd kattintson a Létrehozás gombra.
Feljegyzés
Előfordulhat, hogy a teljes hatókörű PAT-k létrehozása korlátozott. Ha igen, az Azure DevOps-rendszergazda a Microsoft Entra ID-ban olyan szabályzatot engedélyezett, amely egy adott, egyénileg meghatározott hatókörre korlátozza Önt. További információ: PAT-k kezelése szabályzatokkal/Teljes hatókörű PAT-k létrehozásának korlátozása. Egyénileg definiált PAT esetén a Component Governance API
vso.governance
eléréséhez szükséges hatókör nem választható ki a felhasználói felületen.Ha elkészült, másolja ki a jogkivonatot, és tárolja biztonságos helyen. A biztonság érdekében nem jelenik meg újra.
Használja a PAT-t bárhol, ahol a felhasználói hitelesítő adatok szükségesek az Azure DevOpsban való hitelesítéshez.
Fontos
- Kezelje a PAT-t ugyanolyan óvatossággal, mint a jelszava, és tartsa bizalmasan.
- Jelentkezzen be az új PAT-jával 90 napon belül a Microsoft Entra ID által támogatott szervezetek számára; ellenkező esetben a PAT inaktívvá válik. További információ: Felhasználó bejelentkezési gyakorisága a feltételes hozzáféréshez.
Értesítések
A PAT élettartama alatt a felhasználók két értesítést kapnak : az elsőt a létrehozáskor, a másodikat pedig hét nappal a lejárata előtt.
A PAT létrehozása után az alábbi példához hasonló értesítést kap. Ez az értesítés annak megerősítését szolgálja, hogy a PAT sikeresen bekerült a szervezetbe.
Az alábbi képen egy példa látható a hétnapos értesítésre, mielőtt a PAT lejár.
További információ: SMTP-kiszolgáló konfigurálása és e-mailek testreszabása riasztásokhoz és visszajelzési kérelmekhez.
Váratlan értesítés
Ha váratlan PAT-értesítést kap, az azt jelentheti, hogy egy rendszergazda vagy eszköz létrehozott önnek egy PAT-t. Íme néhány példa.
- A rendszer létrehoz egy "git:
https://dev.azure.com/{Your_Organization}
on YourMachine" nevű jogkivonatot, amikor git.exe keresztül csatlakozik egy Azure DevOps Git-adattárhoz. - A rendszer létrehoz egy "Service Hooks: : Azure-alkalmazás Service: : Deploy web app" nevű jogkivonatot, amikor Ön vagy egy rendszergazda beállít egy Azure-alkalmazás Service-webalkalmazás üzembe helyezését.
- A "WebAppLoadTestCDIntToken" nevű jogkivonat akkor jön létre, amikor Ön vagy egy rendszergazda beállítja a webes terheléstesztelést egy folyamat részeként.
- A Microsoft Teams integrációs bővítmény beállításakor létrejön egy "Microsoft Teams Integration" nevű jogkivonat.
Figyelmeztetés
- Vonja vissza a PAT-t, ha azt gyanítja, hogy hiba történt. Kövesse a lépéseket a PAT visszavonásához és a jelszó módosításához.
- Kérdezze meg a rendszergazdát, hogy Ön Microsoft Entra-felhasználó-e, és ellenőrizze, hogy a szervezethez ismeretlen forrás vagy hely fért-e hozzá.
- Tekintse át a nyilvános GitHub-adattárakba történő véletlen PAT-bejelentkezésekkel kapcsolatos gyakori kérdéseket.
PAT használata
A PAT az Ön digitális identitásaként szolgál, hasonlóan a jelszóhoz.
Git
A Git-interakciókhoz felhasználónév szükséges, amely egy üres sztring kivételével bármi lehet. A PAT http alapszintű hitelesítéssel Base64-encode
való használatához az alábbi kódblokkban látható módon kell használnia $MyPat
.
A PowerShellben adja meg a következő kódot.
$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
A hitelesítő adatok kezelőivel elkerülheti a hitelesítő adatok minden alkalommal történő megadását, és biztonságosabbá teheti a jogkivonatot:
- Használja a Git Credential Managert.
- Telepítse a Git for Windowst.
Meglévő adattárak
Meglévő adattárak esetén, ha már hozzáadta a forrást a felhasználónévvel, futtassa először a következő parancsot.
git remote remove origin
Ellenkező esetben futtassa a következő parancsot.
git remote add origin https://dev.azure.com/<PAT>@<company_machineName>:/<path-to-git-repo> path to git repo = <project name>/_git/<repo_name> git push -u origin --all
PAT használata a kódban
A kódban pat használatával hitelesítheti az API-kéréseket, és automatizálhatja a munkafolyamatokat. Ehhez adja meg a PAT-t a HTTP-kérések engedélyezési fejlécében.
Ha HTTP-fejlécen keresztül szeretné megadni a PAT-t, először konvertálja sztringgé Base64
. Az alábbi példa bemutatja, hogyan konvertálható C#-ra Base64
.
Authorization: Basic BASE64_USERNAME_PAT_STRING
Az eredményül kapott sztring ezután HTTP-fejlécként is megadható az alábbi formátumban.
Az alábbi minta a HttpClient osztályt használja a C#-ban.
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());
}
}
Tipp.
Ha változókat használ, adjon hozzá egy $
értéket a sztring elejéhez, például az alábbi példában.
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());
}
}
Ha a kód működik, érdemes az alapszintű hitelesítésről az OAuth-ra váltani.
További információkért és példákért a PAT-k használatáról az alábbi cikkekben olvashat:
- Git hitelesítő adatok kezelői
- REST API-k
- NuGet Mac gépen
- Jelentéskészítési ügyfelek
- Ismerkedés az Azure DevOps parancssori felületével
PAT módosítása
Hajtsa végre a következő lépéseket:
- Hozzon létre egy PAT-t egy új jogkivonat létrehozásához, amely érvényteleníti az előzőt.
- Hosszabbítsa meg a PAT-t az érvényességi időtartam növeléséhez.
- Módosítsa a PAT hatókörét az engedélyeinek módosításához.
Nyissa meg a felhasználói beállításokat a kezdőlapon, majd válassza a Profil lehetőséget.
A Biztonság területen válassza a Személyes hozzáférési jogkivonatok lehetőséget. Jelölje ki a módosítani kívánt jogkivonatot, majd szerkessze.
Szerkessze a jogkivonat nevét, a jogkivonat lejáratát vagy a jogkivonathoz társított hozzáférési hatókört, majd válassza a Mentés lehetőséget.
PAT visszavonása
A PAT-t bármikor visszavonhatja az alábbi és egyéb okokból:
- Visszavonhatja a PAT-t, ha gyanítja, hogy feltörték.
- Visszavonhatja a PAT-t, ha már nincs rá szükség.
- Visszavonhatja a PAT-t a biztonsági szabályzatok vagy megfelelőségi követelmények kikényszerítéséhez.
Nyissa meg a felhasználói beállításokat a kezdőlapon, majd válassza a Profil lehetőséget.
A Biztonság területen válassza a Személyes hozzáférési jogkivonatok lehetőséget. Válassza ki azt a jogkivonatot, amelyhez vissza szeretné vonni a hozzáférést, majd válassza a Visszavonás lehetőséget.
Válassza a Visszavonás lehetőséget a megerősítést kérő párbeszédpanelen.
További információ: Felhasználói PAT-k visszavonása rendszergazdák számára.
Formázási módosítások
2024 júliusától jelentősen módosítjuk az Azure DevOps által kiadott PAT-k formátumát. Ezek a módosítások további biztonsági előnyöket biztosítanak, és javítják a partnerajánlatainkon keresztül elérhető titkos kódok észlelésére szolgáló eszközöket, például a GitHub Advanced Security for Azure DevOps-t. Ez az új PAT formátum az ajánlott formátumot követi az összes Microsoft-termékben. Az azonosíthatóbb bitek felvétele javítja ezeknek a titkos kódészlelési eszközöknek a hamis pozitív észlelési arányát, és lehetővé teszi, hogy gyorsabban mérsékeljük az észlelt szivárgásokat.
Főbb változások:
- Megnövelt jogkivonathossz: Az új jogkivonatok mostantól 84 karakter hosszúak, és 52 karaktert véletlenszerű adatnak számítanak. Ez a megnövelt hossz javítja az általános entrópiát, így a tokenek ellenállóbbak a lehetséges találgatásos támadásokkal szemben.
- Rögzített aláírás: A szolgáltatásunk által kibocsátott jogkivonatok rögzített aláírást
AZDO
tartalmaznak a 76-80. pozícióban.
Beavatkozás szükséges:
- Meglévő PAT-k újragenerálása: Határozottan javasoljuk, hogy a jelenleg használatban lévő összes PAT-t újragenerálja a biztonsági fejlesztések előnyeinek kihasználásához.
- Integrátor-támogatás: Az integrátoroknak frissíteniük kell a rendszereiket, hogy az megfeleljen az új és a meglévő tokenhossznak.
Fontos
Mindkét formátum a belátható jövőben is érvényes marad, de aktívan ösztönözzük az ügyfeleket az új 84 karakteres formátumra való áttérésre. Az új formátum bevezetésének növekedésével fontolóra vesszük a régebbi 52 karakteres formátum és az ebben a stílusban kibocsátott összes jogkivonat kivonását.
Kapcsolódó cikkek
- Tudnivalók a biztonságról, a hitelesítésről és az engedélyezésről
- Az Azure DevOps alapértelmezett engedélyeinek és hozzáférésének áttekintése
- Felhasználói PAT-k visszavonása (rendszergazdáknak)
- Szolgáltatásnevek és felügyelt identitások kezelése az Azure DevOpsban
GYIK
K: Miért nem tudom szerkeszteni vagy újragenerálni egy egyetlen szervezetre kiterjedő PAT-t?
Válasz: Győződjön meg arról, hogy bejelentkezett abba a szervezetbe, ahol a PAT hatóköre van. Az összes PAT-t megtekintheti, miközben bármely szervezetbe bejelentkezett ugyanabban a Microsoft Entra-azonosítóban, de csak akkor szerkesztheti a szervezeti hatókörrel rendelkező jogkivonatokat, ha be van jelentkezve abba a szervezetbe, amelyre a hatókörük vonatkozik.
K: Mi történik a PAT-rel, ha egy felhasználói fiók le van tiltva?
Válasz: Ha egy felhasználót eltávolít az Azure DevOpsból, a PAT 1 órán belül érvényteleníti. Ha a szervezet csatlakozik a Microsoft Entra-azonosítóhoz, a PAT a Microsoft Entra-azonosítóban is érvénytelen, mivel az a felhasználóé. Javasoljuk, hogy a szolgáltatások futásának fenntartása érdekében a PAT-t egy másik felhasználóra vagy szolgáltatásfiókra forgtassa.
K: Van mód a PAT rest API-val történő megújítására?
V: Igen, van mód PAT-k megújítására, kezelésére és létrehozására a PAT Életciklus Felügyeleti API-k használatával. További információ: PAT-k kezelése REST API-val és gyakori kérdések.
K: Használhatok alapszintű hitelesítést az összes Azure DevOps REST API-val?
V.: Nem. Az alapszintű hitelesítést a legtöbb Azure DevOps REST API-val használhatja, de a szervezetek és profilok csak az OAuthot támogatják. További információ: PAT-k kezelése REST API használatával.
K: Mi történik, ha véletlenül bejelentkezem a PAT-ból egy nyilvános adattárba a GitHubon?
V: Az Azure DevOps a GitHub nyilvános adattáraiba beadott PAT-okat vizsgálja. Ha kiszivárgott jogkivonatot találunk, azonnal részletes e-mail-értesítést küldünk a jogkivonat tulajdonosának, és naplózunk egy eseményt az Azure DevOps-szervezet naplózási naplójában. Ha nem tiltotta le a kiszivárgott személyes hozzáférési jogkivonatok automatikus visszavonására vonatkozó szabályzatot , azonnal visszavonjuk a kiszivárgott PAT-t. Javasoljuk az érintett felhasználókat, hogy a kiszivárogtatott jogkivonat visszavonásával és egy új jogkivonattal való lecserélésével hárítsák el a problémát.
További információ: A kiszivárgott PAT-k automatikus visszavonása.
K: Használhatok személyes hozzáférési jogkivonatot ApiKey-ként NuGet-csomagok közzétételéhez egy Azure Artifacts-csatornán a dotnet/nuget.exe parancssor használatával?
V.: Nem. Az Azure Artifacts nem támogatja a személyes hozzáférési tokenek API-kulcsként történő átadását. Helyi fejlesztési környezet használatakor javasoljuk az Azure Artifacts hitelesítőadat-szolgáltatójának telepítését az Azure Artifactsben történő hitelesítéshez. További információért tekintse meg a következő példákat: .Net, NuGet.exe. Ha az Azure Pipelines használatával szeretné közzétenni a csomagokat, a NuGet-hitelesítési feladattal hitelesítheti magát a hírcsatorna példájával.
K: Miért szűnt meg a PAT működése?
Válasz: A PAT-hitelesítéshez rendszeresen be kell jelentkeznie az Azure DevOpsba a teljes hitelesítési folyamat használatával. A 30 naponta egyszeri bejelentkezés sok felhasználó számára elegendő, de előfordulhat, hogy a Microsoft Entra konfigurációjától függően gyakrabban kell bejelentkeznie. Ha a PAT nem működik, először próbáljon meg bejelentkezni a szervezetbe, és fejezze be a teljes hitelesítési kérést. Ha a PAT továbbra sem működik, ellenőrizze, hogy lejárt-e.