訓練
認證
Microsoft Certified: Power Platform Developer Associate - Certifications
示範如何使用 Microsoft Power Platform Developer 來簡化、自動化及轉換商務工作和程序。
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
個人存取令牌 (PAT) 可作為驗證 Azure DevOps 的替代密碼。 此 PAT 會識別您,並判斷存取範圍和範圍。 因此,將 PAT 視為密碼的相同層級。
當您使用Microsoft工具時,Microsoft帳戶 (MSA) 或 Microsoft Entra 識別符是可辨識和支援的方法。 如果您使用不支援Microsoft或Microsoft Entra 帳戶的非Microsoft工具,或不想與這些工具共用主要認證,PAT 是適當的替代方案。
本文會引導您建立、使用、修改和撤銷 Azure DevOps 的 PAT。
您可以使用下列方法來管理 PAT:
若要建立非Microsoft工具的 PAT,您可以使用 Git 認證管理員 或手動產生它們。 建議您檢閱驗證 指引 ,以選擇適當的驗證機制。 PAT 為不需要大量解決方案的小型專案提供簡單的替代方案。 若沒有認證管理員,使用者每次都會輸入其認證。
登入您的組織 (https://dev.azure.com/{Your_Organization}
)。
從您的首頁開啟使用者設定 ,然後選取 [個人存取權杖]。
選取 [+ 新增權杖]。
為您的令牌命名、選取您想要使用令牌的組織,然後將令牌設定為在設定天數之後自動到期。
選取此令牌的範圍,以授權您的特定工作。
例如,若要為組建和發行代理程式建立令牌以向 Azure DevOps 進行驗證,請將令牌的範圍設定為代理程式集區(讀取及管理)。 若要讀取稽核記錄事件及管理或刪除數據流,請選取 [讀取稽核記錄],然後選取 [ 建立]。
注意
您可能會受限於建立完整範圍的 PAT。 如果是,您在 Microsoft Entra ID 中的 Azure DevOps 系統管理員已啟用原則,以將您限制為特定的自定義定義範圍集。 如需詳細資訊,請參閱 使用原則管理 PAT/限制建立完整範圍的 PAT。
針對自定義定義的 PAT,存取元件治理 API vso.governance
所需的範圍無法在 UI 中選取。
完成時,請複製權杖,並將其儲存在安全的位置。 針對您的安全性,它不會再次顯示。
在 Azure DevOps 中驗證所需的任何位置使用 PAT。
重要
在 PAT 的存續期間,使用者會收到兩個通知:第一次是在建立時,以及其到期前的第二個七天。
建立 PAT 之後,您會收到類似下列範例的通知。 此通知可確認您的 PAT 已成功新增至您的組織。
下圖顯示 PAT 到期前七天的通知範例。
如需詳細資訊,請參閱 設定 SMTP 伺服器並自定義警示和意見反應要求的電子郵件。
如果您收到非預期的 PAT 通知,則可能表示系統管理員或工具為您建立 PAT。 以下列出一些範例。
https://dev.azure.com/{Your_Organization}
on YourMachine」 的令牌。警告
您的 PAT 可作為您的數位身分識別,就像密碼一樣。
Git
Git 互動需要用戶名稱,這可以是空字串以外的任何專案。 若要搭配 HTTP 基本身份驗證使用 PAT, Base64-encode
如 $MyPat
下列程式代碼區塊所示。
在 PowerShell 中,輸入下列程式代碼。
$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
使用認證管理員避免每次輸入認證,並讓您的令牌更安全:
移除現有的原始來源: 如果您先前使用使用者名稱新增來源,請執行下列命令來移除它:
git remote remove origin
使用 PAT 進行驗證: 如果您遇到標準驗證的問題,請執行下列命令以透過命令行進行驗證:
git remote add origin https://dev.azure.com/<PAT>@<company_machineName>:/<project-name>/_git/<repo_name>
git push -u origin --all
path to git repo = /_git/do
指的是 Git 存放庫的 Azure DevOps 中使用的 URL 路徑結構。 區 /_git/
段表示您正在存取 Git 存放庫,而且您應該以存放庫的實際名稱取代 do
。 例如,如果您的存放庫名為 my-repo
,則路徑會是 『/_git/my-repo
』 。
複製存放庫: 如果您使用 Git 且需要驗證,請執行下列命令:
git clone https://{organization}@dev.azure.com/{organization}/_git/{repository}
{organization}
取代為您的 Azure DevOps 組織名稱,並以{repository}
您的存放函式庫名稱取代 。
您可以在程式代碼中使用 PAT 來驗證 API 要求,並將工作流程自動化。 若要這樣做,請在 HTTP 要求的授權標頭中包含 PAT。
若要透過 HTTP 標頭提供 PAT,請先將它 Base64
轉換成字串。 下列範例示範如何使用 C# 轉換成 Base64
。
Authorization: Basic BASE64_USERNAME_PAT_STRING
然後,產生的字串可以做為 HTTP 標頭,格式如下。
下列範例使用 C# 中的 HttpClient 類別 。
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());
}
}
提示
當您使用變數時,請在字串開頭新增 $
,如下列範例所示。
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());
}
}
當您的程式代碼正常運作時,最好從基本身份驗證切換到 OAuth。
如需如何使用 PAT 的詳細資訊和範例,請參閱下列文章:
請執行下列步驟:
從首頁開啟您的使用者設定,然後選取 [配置檔]。
在 [安全性] 底下,選取 [ 個人存取令牌]。 選取您要修改的令牌,然後 選取 [編輯]。
編輯令牌名稱、令牌到期或與令牌相關聯的存取範圍,然後選取 [ 儲存]。
您可以隨時撤銷 PAT,原因如下:
從首頁開啟您的使用者設定,然後選取 [配置檔]。
在 [安全性] 底下,選取 [ 個人存取令牌]。 選取您要撤銷存取權的令牌,然後選取 [ 撤銷]。
在確認對話框中選取 [ 撤銷 ]。
如需詳細資訊,請參閱 撤銷系統管理員的使用者 PAT。
自 2024 年 7 月起,我們已大幅變更 Azure DevOps 所發行的 PAT 格式。 這些變更可提供更多安全性優點,並改善透過合作夥伴供應專案提供的秘密偵測工具,例如 適用於 Azure DevOps 的 GitHub 進階安全性。 這個新的 PAT 格式會遵循所有Microsoft產品的建議格式。 包含更多可識別的位可改善這些秘密偵測工具的誤判偵測率,並讓我們更快速地減輕偵測到的洩漏。
重要變更:
AZDO
簽章。需要採取動作:
重要
這兩種格式在可預見的未來仍然有效,但我們 積極鼓勵客戶轉換到新的84個字元格式。 隨著新格式的採用增加,我們考慮淘汰舊版 52 個字元的格式,以及該樣式發行的所有令牌。
答:請確定您已登入已設定 PAT 範圍的組織。 您可以在登入相同Microsoft Entra 識別符的任何組織時,檢視所有 PAT,但是當您登入其範圍所在的組織時,您只能編輯組織範圍的令牌。
答:當使用者從 Azure DevOps 移除時,PAT 會在 1 小時內失效。 如果您的組織已連線到 Microsoft Entra 識別碼,PAT 也會在 Microsoft Entra 識別符中失效,因為它屬於使用者。 我們建議將 PAT 輪替至另一個使用者或服務帳戶,讓服務保持執行。
答:是,有一種方式可以使用我們的 PAT 生命週期管理 API 來更新、管理及建立 PAT。 如需詳細資訊,請參閱 使用 REST API 和 常見問題管理 PAT。
A: 不可以。 您可以搭配大部分的 Azure DevOps REST API 使用基本身份驗證,但 組織和配置檔 僅支援 OAuth。 如需詳細資訊,請參閱 使用 REST API 管理 PAT。
答:Azure DevOps 會掃描簽入 GitHub 上的公用存放庫的 PAT。 當我們找到流失的令牌時,我們會立即傳送詳細的電子郵件通知給令牌擁有者,並在 Azure DevOps 組織的 稽核記錄中記錄事件。 除非您停用自動 撤銷洩露的個人存取令牌原則 ,否則我們會立即撤銷洩露的 PAT。 我們鼓勵受影響的使用者撤銷洩露的令牌,並將它取代為新的令牌,以減輕問題。
如需詳細資訊,請參閱 自動撤銷外洩的 PAT。
A: 不可以。 Azure Artifacts 不支援傳遞個人存取權杖做為 ApiKey。 使用本機開發環境時,建議您安裝 Azure Artifacts Credential Provider,以向 Azure Artifacts 進行驗證。 如需詳細資訊,請參閱下列範例:dotnet、NuGet.exe。 如果您想要使用 Azure Pipelines 發佈套件,請使用 NuGet 驗證 工作來向摘要 範例進行驗證。
答:PAT 驗證會要求您定期使用完整驗證流程登入 Azure DevOps。 每 30 天登入一次就足以供許多使用者使用,但視您的 Microsoft Entra 設定而定,您可能需要更頻繁地登入。 如果您的 PAT 停止運作,請先嘗試登入您的組織,並完成完整的驗證提示。 如果您的 PAT 仍然無法運作,請檢查它是否已過期。
答:在 Azure DevOps 中,您可以使用服務主體或管理身分識別,建立未繫結至特定人員的存取密鑰。 如需詳細資訊,請參閱管理服務連線、在 Azure Pipelines 中使用 Azure 金鑰保存庫 秘密。
訓練
認證
Microsoft Certified: Power Platform Developer Associate - Certifications
示範如何使用 Microsoft Power Platform Developer 來簡化、自動化及轉換商務工作和程序。