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 OAuth 應用程式的 Azure DevOps 整合 ,以取得最佳安全性和未來相容性。
- 針對服務間的互動場景,使用服務主體或受管理的身份。
- 避免生產應用程式中的個人存取令牌。
現有的應用程式
- 規劃從個人存取權杖移轉至 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 許可權。
- 驗證方法:使用服務主體或受控識別,而不是嘗試以服務帳戶身分驗證。
如何從個人存取權杖移轉至新式驗證?
執行下列步驟:
識別應用程式中目前的個人存取權杖使用方式。
選擇替代身份驗證方法:
- Microsoft Entra ID OAuth 使用者委派案例
- 服務間情境的服務主體
使用 Azure DevOps 移轉驗證範例來更新驗證碼。
在移除任何個人存取權杖相依性之前,請先徹底測試變更。
監視並驗證新的驗證方法。
實施程序
選擇案例的驗證方法之後,請完成實作:
- 新應用程式: 建置與 Microsoft Entra OAuth 應用程式的 Azure DevOps 整合
- 服務應用程式: 在 Azure DevOps 中使用服務主體和受控識別
- 個人指令碼: 使用個人存取權杖