關於安全性、驗證與授權

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

Azure DevOps 採用許多安全性概念,以確保只有應該能夠存取功能、函式和數據的使用者才能存取。 帳戶可透過驗證其安全性認證和其帳戶權利授權來存取 Azure DevOps,以存取功能或功能。

本文以開始使用許可權、存取權和安全組提供的資訊為基礎。 管理員 istrators 受益於瞭解用來保護 Azure DevOps 的帳戶類型、驗證方法、授權方法和原則。


帳戶類型

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

驗證

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

授權

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

原則

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


帳戶類型

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

驗證

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

授權

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

原則

  • Git 存放庫和分支原則

重要

自 2020 年 3 月 2 日起,Azure DevOps 不再支援替代認證驗證。 如果您仍在使用替代認證,強烈建議您切換到更安全的驗證方法(例如,個人存取令牌)。 深入了解

我們的雲端服務、Azure DevOps Services 和內部部署伺服器 Azure DevOps Server 都支援軟體開發專案,從規劃到部署。 Azure DevOps 使用 Microsoft Azure 的平臺即服務基礎結構和許多 Azure 服務,包括 Azure SQL 資料庫,為您的開發專案提供可靠且全域可用的服務。

如需 Microsoft 在 Azure DevOps Services 安全、可用、安全及私人中保留專案所需步驟的詳細資訊,請參閱本白皮書 Azure DevOps Services 數據保護概觀

帳戶

雖然感興趣的帳戶主要類型是您新增至組織或專案的人類用戶帳戶,但 Azure DevOps 支援其他類型的帳戶來執行各種作業。 其中包括下列帳戶類型。

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

在這些檔中,用戶可以參考已新增至用戶中樞的所有身分識別,其中包括人類使用者和服務主體。

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

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

注意

專案集合 管理員 istrators 群組的組織擁有者和成員會獲授與大部分所有特性和功能的完整存取權。

驗證

驗證會根據登入 Azure DevOps 時所提供的認證來驗證帳戶身分識別。 這些系統會與 這些其他系統整合並依賴下列其他系統所提供的安全性功能:

  • Microsoft Entra ID
  • Microsoft 帳戶 (MSA)
  • Active Directory (AD)

Microsoft Entra ID 和 MSA 支援雲端驗證。 當您需要管理大量使用者時,建議您使用 Microsoft Entra ID。 否則,如果您有小型使用者基底存取 Azure DevOps 中的組織,您可以使用 Microsoft 帳戶。 如需詳細資訊,請參閱 關於使用 Microsoft Entra ID 存取 Azure DevOps。

針對內部部署部署,建議在管理大量使用者群組時使用AD。 如需詳細資訊,請參閱 設定群組以用於內部部署

驗證方法 (與其他服務和應用程式整合)

其他應用程式和服務可以與 Azure DevOps 中的服務和資源整合。 若不要多次要求使用者認證,即可存取您的帳戶,應用程式可以使用下列驗證方法。

  • 個人存取權杖可代表您自己產生權杖:

    • 存取特定資源或活動,例如組建或工作項目
    • 需要使用者名稱和密碼作為基本認證,且不支援 Microsoft 帳戶和 Microsoft Entra 功能 (例如多重要素驗證) 的 Xcode 和 NuGet 等用戶端
    • 存取 Azure DevOps REST API
  • Azure DevOps OAuth 可代表使用者產生權杖,以存取 REST API帳戶設定檔 API 僅支援 OAuth。

  • SSH 驗證,當您使用的 Linux、macOS 或 Windows 執行適用於 Windows 的 Git,且無法使用 Git 認證管理員個人存取權杖進行 HTTPS 驗證時,產生您自己的加密金鑰。

  • 服務主體或受控識別 ,代表應用程式或服務產生 Microsoft Entra 令牌,通常會自動化某些需要存取 Azure DevOps 資源的工作流程。 大部分傳統上由服務帳戶和 PAT 執行的動作,都可以使用服務主體或受控識別來完成。

根據預設,您的帳戶或集合會允許存取所有驗證方法。 您可以限制存取,但必須特別限制每個方法的存取。 當您拒絕存取驗證方法時,就沒有任何應用程式可以使用該方法來存取您的帳戶。 任何先前可存取的應用程式都會收到驗證錯誤,而且無法存取您的帳戶。

如需如何儲存認證的詳細資訊,請參閱 Azure DevOps 的認證記憶體。

如需如何選擇正確驗證機制的詳細資訊,請參閱 驗證指引。

授權

授權會驗證嘗試連線的身分識別具有存取服務、功能、函式、物件或方法的必要許可權。 只有在成功驗證之後,才會發生授權。 如果連線未通過驗證,就會在執行任何授權檢查之前失敗。 如果連線驗證成功,可能仍然不允許特定動作,因為使用者或群組沒有執行該動作的授權。

授權取決於指派給帳戶的許可權。 許可權會直接授與帳戶,或透過安全組或安全性角色的成員資格授與。 存取層級和功能旗標也可以授與或限制功能存取權。 如需這些授權方法的詳細資訊,請參閱 開始使用許可權、存取權和安全組

安全性命名空間和許可權

安全性命名空間會儲存數據,以判斷 Azure DevOps 帳戶必須在特定資源上執行特定動作的存取層級。 每個資源系列,例如工作專案或 Git 存放庫,都會透過唯一的命名空間來保護。 每個安全性命名空間都包含零個或多個訪問控制清單(ACL)。 每個 ACL 都包含一個令牌、一個繼承旗標,以及一組零個或多個存取控制專案(ACE)。 每個 ACE 都包含身分識別描述元、允許的許可權位掩碼,以及拒絕的許可權位掩碼。

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

安全性原則

若要保護您的組織和程序代碼,您可以設定許多原則。 具體而言,您可以啟用或停用下列原則:

一般

  • 隱私策略 URL:指定連結至自定義檔的 URL,描述您如何處理內部和外部來賓數據隱私權。 如需詳細資訊,請參閱 為您的組織新增隱私策略 URL。

應用程式連線和安全性策略

使用 Microsoft Entra 租用戶原則,將建立新組織限所需的使用者。 此原則預設會關閉,且只有在組織連線到 Microsoft Entra ID 時才有效。 如需詳細資訊,請參閱 限制組織建立

下列原則會決定您想要為組織提供使用者和應用程式的存取權:

用戶原則

  • 外部來賓存取 權(只有在組織連線到 Microsoft Entra ID 時有效。):啟用時,可以透過 [使用者] 頁面,將邀請傳送給非租使用者 Microsoft Entra ID 成員的使用者電子郵件帳戶。 如需詳細資訊,請參閱 將外部使用者新增至您的組織
  • 允許小組和專案管理員邀請新使用者:只有在組織連線到 Microsoft Entra 識別符時才有效。 啟用時,小組和專案管理員可以透過 [使用者 ] 頁面新增使用者。 如需詳細資訊,請參閱限制來自 Project 和 Team 的新使用者邀請 管理員 istrators
  • 要求存取:只有在組織連線到 Microsoft Entra ID 時才有效。 啟用時,使用者可以要求存取資源。 要求會視需要向系統管理員傳送電子郵件通知,要求檢閱和存取權。 如需詳細資訊,請參閱 將外部使用者新增至您的組織
  • 邀請 GitHub 使用者:只有在組織未連線到 Microsoft Entra 識別碼時才有效。 啟用時,系統管理員可以根據其 GitHub 使用者帳戶,從 [使用者] 頁面新增使用者 。 如需詳細資訊,請參閱 驗證和邀請 GitHub 使用者常見問題

專案範圍使用者群組

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

重要

  • 本節所述的有限可見度功能僅適用於透過入口網站進行互動。 使用 REST API 或 azure devops CLI 命令,項目成員可以存取受限制的數據。
  • 在 Microsoft Entra ID 中具有預設存取權之有限群組中的來賓使用者,無法搜尋具有人員選擇器的使用者。 當組織的預覽功能關閉,或來賓使用者不是有限群組的成員時,來賓使用者可以如預期般搜尋所有 Microsoft Entra 使用者。

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

  • 只能存取組織 設定 的 [概觀] 和 [專案] 頁面。
  • 只能連線並檢視他們已明確新增至的專案(請參閱 將使用者新增至專案或小組
  • 只能選取已明確新增至其所連線專案的使用者和群組身分識別。

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

警告

當組織啟用 [將用戶可見度和共同作業限制為特定專案預覽功能] 時,專案範圍用戶無法透過 Microsoft Entra 群組成員資格搜尋已新增至組織的使用者,而不是透過明確的用戶邀請。 這是非預期的行為,且正在處理解決方案。 若要自行解決此問題,請停用將 用戶可見性和共同作業限製為組織的特定專案 預覽功能。

Git 存放庫和分支原則

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

Azure Repos 和 Azure Pipelines 安全性

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

下一步