分享方式:


關於驗證、授權和安全策略

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019

Azure DevOps 使用安全性概念的組合,以確保只有授權的使用者才能存取其功能、功能和數據。 存取權是由兩個主要程式所決定:驗證、驗證使用者的認證,以及根據帳戶權利授與許可權的授權。 這些程式會一起控制每位用戶可以在 Azure DevOps 中執行的動作。

本文擴展了開始使用許可權、存取權和安全組,幫助系統管理員瞭解不同的帳戶類型、身份驗證與授權方法,以及可用來保護 Azure DevOps 環境的安全策略。


帳戶類型

  • 使用者
  • 組織擁有者
  • 服務帳戶
  • 服務主體或受控識別
  • 作業代理程式

驗證

  • 使用者認證
  • Windows 驗證
  • 雙因素驗證 (2FA)
  • SSH 金鑰驗證
  • Microfost Entra Token
  • 個人存取令牌
  • Oauth 組態
  • Active Directory 驗證連結庫

授權

  • 安全性群組成員資格
  • 角色型存取控制
  • 存取層級
  • 功能旗幟
  • 安全性命名空間和許可權

原則

  • 隱私權原則 URL
  • 應用程式連線和安全性策略
  • 用戶原則
  • Git 存放庫和分支原則


帳戶類型

  • 使用者
  • 服務帳戶
  • 服務主體或受控識別
  • 作業代理程式

驗證

  • 使用者認證
  • Windows 驗證
  • 雙因素驗證 (2FA)
  • SSH 金鑰驗證
  • 個人存取權杖
  • Oauth 組態
  • Active Directory 驗證連結庫

授權

  • 安全性群組成員資格
  • 角色型權限
  • 存取層級
  • 功能旗幟
  • 安全性命名空間和許可權

原則

  • Git 存放庫和分支原則

重要

Azure DevOps 不支援替代認證驗證。 如果您仍在使用替代認證,強烈建議您切換到更安全的驗證方法。

Azure DevOps 都支援從規劃到部署的軟體開發。 每個平台都會使用 Microsoft Azure 的平臺即服務基礎結構和服務,包括 Azure SQL 資料庫,為您的專案提供可靠且全域可用的服務。

如需如何Microsoft確保您的專案安全、可用、安全及私人的詳細資訊,請參閱 Azure DevOps 數據保護概觀

帳戶

雖然人類用戶帳戶是主要焦點,但 Azure DevOps 也支援不同作業的各種其他帳戶類型:

  • 組織擁有者:Azure DevOps Services 組織或指派擁有者的建立者。 若要尋找貴組織的擁有者,請參閱 查閱組織擁有者
  • 服務帳戶:用來支援特定服務的內部 Azure DevOps 組織,例如 Agent 集區服務、PipelinesSDK。 如需服務帳戶的描述,請參閱 安全組、服務帳戶和許可權
  • 服務主體或受控識別: 添加到組織中的 Microsoft Entra 應用程式或受控識別 ,以代表非 Microsoft 應用程式執行操作。 某些服務主體是指內部 Azure DevOps 組織,以支援內部作業。
  • 作業代理程式:用來定期執行特定作業的內部帳戶。
  • 第三方帳戶:需要存取以支援 Web 攔截、服務連線或其他非Microsoft應用程式的帳戶。

在我們的安全性相關文章中,「使用者」是指新增至用戶中樞的所有身分識別,其中包括人類使用者和服務主體。

  • 服務帳戶:用來支援特定服務的內部 Azure DevOps 組織,例如 Agent 集區服務、PipelinesSDK。 如需服務帳戶的描述,請參閱 安全組、服務帳戶和許可權
  • 服務主體或受控識別:Microsoft Entra 應用程式或受控識別是新增至您的組織,代表非Microsoft應用程式執行動作。 某些服務主體是指內部 Azure DevOps 組織,以支援內部作業。
  • 作業代理程式:用來定期執行特定作業的內部帳戶。
  • 第三方帳戶:需要存取以支援 Web 攔截、服務連線或其他非Microsoft應用程式的帳戶。

管理帳戶的最有效方式是將它們 新增至安全組

注意

專案集合系統管理員群組的組織擁有者和成員會獲得幾乎所有功能的完整存取權。

驗證

驗證會根據登入 Azure DevOps 期間所提供的認證來驗證使用者的身分識別。 Azure DevOps 與數個身分識別系統整合,以管理驗證:

  • Microsoft Entra 識別碼:建議用於管理大量使用者群組的組織。 提供健全的雲端式驗證和使用者管理。
  • Microsoft帳戶 (MSA):適用於存取 Azure DevOps 組織的較小用戶基礎。 支援雲端驗證。
  • Active Directory (AD):建議使用現有的 AD 基礎結構,搭配許多使用者進行內部部署。

Microsoft Entra ID 和 Microsoft 帳戶都支援雲端驗證。 如需詳細資訊,請參閱 關於使用 Microsoft Entra ID 存取 Azure DevOps。

針對內部部署環境,使用 Active Directory 有效率地管理使用者存取。 在 設定群組以用於內部部署中深入瞭解。

以程式設計方式進行驗證

選擇其中一個可用的 驗證方法,以程式設計方式存取您的 Azure DevOps 組織,而不重複輸入您的使用者名稱和密碼。 使用下列方法將工作流程自動化、與 REST API 整合,或建置自定義應用程式:

  • 使用 OAuth 建置代表使用者執行動作的應用程式。 用戶必須同意應用程式。 針對新的應用程式,請使用 Microsoft Entra OAuth
  • 使用 服務主體或受控識別 ,將工作流程或建置工具自動化,以定期存取組織資源。 代表應用程式本身發出Microsoft Entra 令牌。
  • 使用 Microsoft Entra標識碼 進行安全、雲端式驗證和使用者管理。
  • 使用 個人存取令牌 (PAT) 進行臨機作要求或早期原型設計。 避免進行長期應用程式開發的 PAT,因為它們更容易受到洩漏和誤用的影響。

小提示

請務必 安全地儲存認證 ,並遵循管理驗證方法的最佳做法。

根據預設,您的組織允許存取所有驗證方法。 組織管理員可以 停用安全策略來限制對這些驗證方法的存取。 租用戶系統管理員可以進一步降低 PAT 風險,藉由限制 PAT 的創建方式

授權

授權會判斷已驗證的身分識別是否具有存取 Azure DevOps 中特定服務、功能、函式、物件或方法的必要許可權。 授權檢查一律會在驗證成功之後進行,如果驗證失敗,則永遠不會評估授權。 即使在驗證之後,如果使用者或群組缺少必要的許可權,可能會拒絕存取特定動作。

Azure DevOps 會透過直接指派給使用者或透過安全組或角色繼承的許可權來管理授權。 存取層級和功能旗標可以進一步控制對特定功能的存取。 若要深入瞭解這些授權方法,請參閱 開始使用許可權、存取權和安全組

安全性命名空間和許可權

安全性命名空間會定義 Azure DevOps 資源上特定動作的使用者存取層級。

  • 例如,每個資源系列的工作專案或 Git 存放庫都有自己的唯一命名空間。
  • 在每個命名空間內,可以有多個訪問控制清單(ACL)。
    • 每個 ACL 都包含識別符、繼承旗標和一或多個存取控制項目(ACE)。
    • 每個 ACE 都會指定識別描述元、允許許可權的位掩碼,以及拒絕許可權的位掩碼。

如需詳細資訊,請參閱 安全性命名空間和許可權參考

安全性原則

若要保護您的組織和程式代碼,組織層級(專案集合管理員)或租用戶層級(Azure DevOps 系統管理員)系統管理員可以根據原則範圍來啟用或停用各種安全策略。 要考慮的主要原則包括:

如果您的組織已連線到 Microsoft Entra ID,您可以存取下列其他安全性功能:

檢閱並設定這些原則,以加強組織的安全性狀態,並確保符合您的數據隱私權和存取需求。

專案範圍的使用者群組

根據預設,新增至組織的使用者可以檢視所有組織和專案資訊和設定,包括使用者清單、專案清單、帳單詳細數據、使用量數據等等。

若要限制特定使用者的存取權,例如項目關係人、Microsoft Entra 來賓使用者,或特定安全組的成員,請啟用 限制用戶可見性和共同作業至貴組織的特定專案 預覽功能。 啟用此功能時,任何新增至 Project-Scoped 使用者 群組的使用者或群組,會以下列方式加以限制:

  • 存取僅限於組織設定內的 [概觀] 和 [專案] 頁面。
  • 使用者只能連線到並檢視他們 明確加入的專案
  • 使用者只能選取明確新增至相同專案的使用者和群組身分識別。

如需詳細資訊,請參閱 管理您的組織:限制專案的用戶可見度等等以及管理預覽功能

警告

使用此預覽功能時,請考慮下列限制:

  • 本節所述的有限可見度功能僅適用於透過入口網站進行互動。 使用 REST API 或 azure devops CLI 命令,項目成員可以存取受限制的數據。
  • 受限群組中的使用者只能選取明確新增至 Azure DevOps 的使用者,而不能選取可透過 Microsoft Entra 群組成員資格存取的使用者。
  • 在Microsoft Entra ID 中具有預設存取權之有限群組中的來賓用戶,無法搜尋具有人員選擇器的使用者。

Git 存放庫和分支原則

若要保護您的程式代碼,您可以設定各種 Git 存放庫和分支原則。 如需詳細資訊,請參閱下列文章。

Azure Repos 和 Azure Pipelines 安全性

由於存放庫和建置和發行管線會帶來獨特的安全性挑戰,因此會採用本文所討論功能以外的其他功能。 如需詳細資訊,請參閱下列文章。

下一步