共用方式為


Azure DevOps 的驗證方法

Azure DevOps 服務 |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020

本文說明 Azure DevOps 整合的驗證方法,並協助您選擇案例的最佳選項。 Microsoft Entra ID 等新式驗證方法可為新應用程式提供增強的安全性和最佳方法。

這很重要

建議針對與 Azure DevOps Services 整合的新應用程式進行 Microsoft Entra ID 驗證。 請謹慎使用個人存取權杖,並僅在 Microsoft Entra ID 無法使用時使用它們。

OAuth 2.0 和 Microsoft Entra ID 驗證僅適用於 Azure DevOps Services,不適用於 Azure DevOps Server。

針對內部部署案例,請使用 .NET 用戶端程式庫、Windows 驗證或 個人存取權杖

依場景的驗證方法

根據您的應用程式類型和需求選擇合適的身份驗證方法。

應用程式類型 描述 範例 建議的方法 程式代碼範例
Web/桌面應用程式 使用目前架構的互動式應用程式 React 應用程式、.NET 桌面應用程式 Microsoft Entra OAuth 搭配 Microsoft 驗證程式庫 (MSAL) 管理的用戶端主控台應用程式
服務/背景應用程式 在沒有使用者互動的情況下執行的應用程式 Azure Functions,背景服務 服務主體和受控識別 服務主體
舊版用戶端應用程式 使用用戶端函式庫的現有應用程式 使用 Azure DevOps .NET 連結庫的控制台應用程式 具有 OAuth 的 .NET 用戶端程式庫 用戶端程式庫主控台應用程式
Headless/CLI 應用程式 非互動式命令列工具 建置腳本、自動化工具 裝置授權授與流程 裝置設定檔
Azure DevOps 延伸模組 在 Azure DevOps 內執行的延伸模組 自訂儀錶板小工具和工作專案表單 Azure DevOps Web 擴充功能 SDK 新增儀錶板小工具
Azure DevOps Server 應用程式 本地端部署 Azure DevOps Server 整合 自定義伺服器擴充功能 .NET 用戶端程式庫 或 Windows 驗證 用戶端程式庫主控台應用程式
個人/臨機操作指令碼 個人用途的快速腳本 PowerShell 腳本,curl 指令 個人存取令牌 開始使用 REST API

入門建議

以下各節提供在不同情境中開始使用的建議。

新的應用程式

現有的應用程式

  • 規劃從個人存取權杖移轉至 Microsoft Entra ID 驗證。
  • 請考慮 Azure DevOps 改善的 驗證移轉時間表 ,並減少個人存取權杖的使用。
  • 針對安全性最佳做法檢閱您目前的驗證方法。

Azure DevOps Server

  • 盡可能搭配 Windows 驗證使用 .NET 用戶端程式庫
  • 當可接受時,請針對 Azure DevOps Server 案例使用個人存取權杖。
  • 規劃未來的 Azure DevOps Services 移轉,以利用新式驗證。

常見問題的解答

以下各節提供常見問題的解答。

我應該使用 Microsoft Entra ID OAuth 或個人存取權杖嗎?

在下列案例中使用 Microsoft Entra ID OAuth:

  • 新的應用程式和整合
  • 需要強大安全性的生產工作負載
  • 需要企業身分整合的應用程式
  • 符合合規性需求的長期專案

僅在下列案例中使用個人存取權杖:

  • 個人指令碼和臨機操作任務
  • 移轉規劃期間的舊版應用程式
  • 無法使用新式驗證的 Azure DevOps Server 案例

我應該使用服務主體或使用者委派進行驗證嗎?

在下列案例中使用服務主體或受控識別:

  • 建置獨立運作的應用程式 (背景服務、自動化)。
  • 建立不需要使用者互動的應用程式。
  • 實作服務對服務通訊。
  • 建置持續整合和持續交付 (CI/CD) 管道或自動化工作流程。

在下列案例中使用使用者委派 (OAuth 且需使用者同意):

  • 建置為人類使用者執行動作的應用程式。
  • 建立互動式應用程式,讓使用者使用自己的認證登入。
  • 實作需要使用者特定權限的功能。
  • 建立尊重使用者個人存取權限的應用程式。

如何使用 Azure DevOps Services 和 Azure DevOps Server 進行驗證?

最佳做法是建立個別的驗證路徑:

  • Azure DevOps Services:使用 Microsoft Entra ID OAuth。
  • Azure DevOps Server:搭配 Windows 驗證或個人存取權杖使用 .NET 用戶端程式庫。

使用該 requestContext 方法來偵測服務類型,並套用適當的驗證方法。

為什麼我的服務帳戶無法存取 Azure DevOps API?

以下是一些可能影響服務帳戶存取的常見問題:

  • 服務帳戶未「具體化」:使用正確的登入方法。 服務帳戶需要互動式登入許可權或適當的 Microsoft Entra ID 註冊。
  • 許可權不足:請確定服務帳戶具有適當的 Azure DevOps 許可權。
  • 驗證方法:使用服務主體或受控識別,而不是嘗試以服務帳戶身分驗證。

如何從個人存取權杖移轉至新式驗證?

執行下列步驟:

  1. 識別應用程式中目前的個人存取權杖使用方式。

  2. 選擇替代身份驗證方法:

    • Microsoft Entra ID OAuth 使用者委派案例
    • 服務間情境的服務主體
  3. 使用 Azure DevOps 移轉驗證範例來更新驗證碼。

  4. 在移除任何個人存取權杖相依性之前,請先徹底測試變更。

  5. 監視並驗證新的驗證方法。

實施程序

選擇案例的驗證方法之後,請完成實作: