分享方式:


關於許可權和安全組

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

在本文中,瞭解透過繼承、安全組、角色等 Azure DevOps 中的存取層級和許可權。

如需默認許可權的概觀,請參閱 默認許可權快速參考

如需詳細資訊,請參閱 安全性最佳做法

存取層級

所有 Azure DevOps 使用者都有 存取層級,可授與或限制特定入口網站功能的存取權。

有三個主要存取層級: 項目關係人基本基本 + 測試計劃。 項目關係人存取權可讓您免費存取一組有限的功能的使用者。 如需詳細資訊,請參閱專案關係人存取快速參考

若要讓使用者存取 Agile 組合管理或測試案例管理功能, 請變更存取層級,而非許可權。 如需詳細資訊,請參閱 關於存取層級

權限

Azure DevOps 中的所有用戶都屬於一或多個預設 安全組。 安全組獲得允許或拒絕存取功能或工作的指派許可權

  • 成員會繼承指派給其安全組的許可權。
  • 許可權會定義在不同的層級:組織/集合、項目或物件。
  • 某些許可權會透過 角色型指派 進行管理(例如,小組管理員、延伸模組管理或管線資源角色)。
  • 系統管理員可以定義自定義安全組,以管理不同功能區域的許可權。

如需詳細資訊,請參閱 安全性最佳做法、安全性和使用者群組

在 Azure DevOps 中管理許可權牽涉到兩個主要群組:專案集合管理員和專案管理員。

專案集合管理員:

  • 在組織或專案集合中保留最高授權單位。
  • 執行整個集合的所有作業。
  • 管理組織的設定、原則和程式。
  • 建立和管理所有專案和延伸模組。

專案管理員:

  • 在專案層級操作。
  • 從入口網站中的 [專案] 設定管理安全組和許可權。
  • 參與者會處理他們在專案內建立的特定物件許可權。

權限狀態

指派許可權以授與或限制存取權:

使用者或群組具有權限:

  • 允許
  • 允許 (繼承)
  • 允許 (系統)

使用者或群組沒有權限:

  • 拒絕
  • 拒絕 (繼承)
  • 拒絕 (系統)
  • 未設定
許可權狀態 描述
允許 明確授與使用者執行特定工作,且不會繼承自群組成員資格。
允許 (繼承) 授與群組成員以執行特定工作。
允許 (系統) 授與優先於使用者許可權的許可權。 無法編輯並儲存在組態資料庫中,使用者看不見。
拒絕 明確限制使用者執行特定工作,且不會繼承自群組成員資格。 針對大部分的群組和幾乎所有權限,[拒絕] 優先於 [允許]。 如果使用者屬於兩個群組,且其中一個群組具有特定的許可權設定為 Deny,該使用者就無法執行需要該許可權的工作,即使他們屬於該許可權設定為 Allow 的群組也一樣。
拒絕 (繼承) 限制群組成員執行特定工作。 覆寫明確的 Allow
拒絕 (系統) 限制優先於使用者許可權的許可權。 無法編輯並儲存在組態資料庫中,使用者看不見。
未設定 隱含地拒絕使用者執行需要該許可權的工作,但允許具有該許可權的群組成員資格優先,也稱為 Allow (inherited)Deny (inherited)

即使在另一個群組中遭到拒絕,Project 集合管理員Team Foundation Administrators 群組的成員仍可能會收到許可權。 下列範例會進一步說明此案例:

  • 使用者仍可能會存取項目設定或管理使用者。 不過,對於工作專案刪除或管線管理等工作,作為 Project Collection Administrators 群組的成員不會覆寫 其他地方設定的拒絕 許可權。
  • 如果使用者被拒絕刪除特定專案中工作項目的許可權,即使他們是專案集合系統管理員群組的一部分,也無法刪除工作專案。 同樣地,如果管線許可權遭到拒絕,即使其系統管理角色,它們仍無法管理或執行管線。

警告

當您修改群組的許可權時,會影響該群組中的所有使用者。 即使是單一許可權變更也會影響數百位使用者,因此在進行任何調整之前,請務必先考慮潛在影響。

權限繼承

許可權會遵循階層,允許從父節點繼承或覆寫它。

群組繼承:

  • 用戶會從他們所屬的群組繼承許可權。
  • 如果使用者直接或透過群組成員資格擁有 Allow 許可權,但也有 透過另一個群組的 Deny 許可權, 則 Deny 許可權優先。
  • 專案集合管理員或 Team Foundation 系統管理員的成員會保留大部分允許的許可權,即使它們屬於拒絕這些許可權的其他群組(工作專案作業除外)。

物件層級繼承:

指派給區域、反覆專案、版本控制資料夾和工作專案查詢資料夾等節點的物件層級許可權會繼承至階層。

權限繼承和特定性規則:

  • 明確許可權一律優先於繼承的許可權。
  • 除非明確覆寫,否則所有子節點都會繼承在較高層級節點上設定的許可權。
  • 如果子節點的許可權未明確允許或拒絕,則會從其父節點繼承許可權。
  • 如果明確設定子節點的許可權,則不論是否允許或拒絕,父系的許可權都不會繼承。

特 異性:

在物件階層中,特定性勝過繼承。 如果存在衝突的許可權,則最特定的許可權優先。

範例:

  • 明確 拒絕 『area-1』 (父節點)。
  • 明確 允許 『area-1/sub-area-1』 (子節點)。
  • 在此情況下,使用者會收到 『 area-1/sub-area-1』 上的 Allow ,並覆寫繼承 自父節點的 Deny

若要了解為何繼承許可權,您可以暫停許可權設定,然後選取 [為什麼?若要開啟 [安全性] 頁面,請參閱檢視許可權

注意

若要啟用 [ 項目許可權設定] 頁面預覽頁面 ,請參閱 啟用預覽功能

顯示 [許可權] 對話框、預覽頁面、[為何鏈接已標註] 的螢幕快照。

隨即開啟新的對話框,顯示該許可權的繼承資訊。

[專案許可權設定] 頁面的預覽使用者介面不適用於 Azure DevOps Server 2020 和舊版。

安全組和成員資格

安全組將特定許可權指派給其成員。

建立組織、集合或專案時,Azure DevOps 會建立一組預設安全性群組,這些安全性群組會自動指派預設權限。 使用下列動作來定義更多安全組:

  • 當您在下列層級建立自訂安全組時:
    • 專案層級
    • 組織或集合層級
    • 伺服器層級 (僅限內部部署)
  • 當您新增小組時,會建立小組安全組

您無法建立物件層級安全組,但您可以將自定義群組指派給物件層級,並將許可權指派給該層級。 如需詳細資訊,請參閱 設定物件層級許可權

預設安全性群組

大部分的 Azure DevOps 用戶都會新增至 參與者 安全組,並授與 基本 存取層級。 參與者群組提供存放庫、工作追蹤、管線等的讀取和寫入存取權。 基本 存取可讓您存取使用 Azure Boards、Azure Repos、Azure Pipelines 和 Azure Artifacts 的所有功能和工作。 需要管理 Azure Test Plans 存取權的用戶必須獲得 基本 + 測試計劃進階 存取權。

根據預設,每個專案和組織都會定義下列安全性群組。 您通常會將使用者或群組新增至 讀者參與者專案管理員 群組。

Project 組織或集合
- 建置系統管理員
-貢獻
- 專案管理員
- 專案有效使用者
-讀者
- 釋放系統管理員
- TeamName 小組
- 專案集合管理員
- 專案集合組建管理員
- 專案集合建置服務帳戶
- 專案集合 Proxy 服務帳戶
- 專案集合服務帳戶
- 專案集合測試服務帳戶
- 專案集合有效使用者
- 專案範圍使用者
- 安全組

如需每個群組的描述,請參閱 安全組、服務帳戶和許可權。 如需對最常見預設安全組進行的默認許可權指派,請參閱 默認許可權和存取權。

根據預設,每個專案和專案集合都會定義下列安全組。 您通常會將使用者或群組新增至 讀者參與者專案管理員 群組。

僅將服務帳戶新增至 Azure DevOps 服務帳戶群組。 若要瞭解有效的使用者群組,請參閱 本文稍後的有效使用者群組

專案層級 集合層級
- 建置系統管理員
-貢獻
- 專案管理員
- 專案有效使用者
-讀者
- 釋放系統管理員
- TeamName 小組
- 專案集合管理員
- 專案集合組建管理員
- 專案集合建置服務帳戶
- 專案集合 Proxy 服務帳戶
- 專案集合服務帳戶
- 專案集合測試服務帳戶
- 專案集合有效使用者
- 安全組

針對負責管理專案層級功能的使用者,例如小組、區域和反覆專案路徑、存放庫、服務勾點和服務端點,將它們新增至 Project Administrators 群組。

針對負責管理組織或集合層級功能的使用者,例如專案、原則、處理程式、保留原則、代理程式和部署集區,以及擴充功能,將它們新增至 專案集合管理員 群組。 如需詳細資訊,請參閱 關於使用者、小組、專案和組織層級設定

成員資格、許可權和存取層級管理

Azure DevOps 可透過下列三個連線的功能區域控制存取:

  • 成員資格管理支援將個別的使用者帳戶及群組加入預設安全性群組。 每個預設群組都與一組預設權限相關聯。 新增至任何安全組的所有用戶都會新增至有效使用者群組。 有效的使用者是指可以與專案、集合或組織連線的人。
  • 權限管理會控制不同系統層級中特定功能性工作的存取權。 物件層級許可權會設定檔案、資料夾、建置管線或共用查詢的許可權。 許可權設定會對應至 [允許]、[拒絕]、[繼承的允許]、[繼承的拒絕]、[系統允許]、[系統拒絕] 和 [未設定]。
  • 存取層級管理 可控制對入口網站功能的存取。 根據為使用者購買,系統管理員會將使用者的存取層級設定為項目關係人基本、基本 + 測試Visual Studio Enterprise(先前為進階)。

每個功能性區域都會使用安全性群組來簡化跨部署管理。 您可以透過 Web 管理內容加入使用者及群組。 許可權會根據您新增使用者的安全組自動設定。 或許可權會根據您新增群組的物件、專案、集合或伺服器層級取得。

安全性群組成員可以是使用者、其他群組及 Microsoft Entra 群組的組合。

安全組成員可以是使用者、其他群組和 Active Directory 群組或工作組的組合。

您可以建立 本機群組或 Active Directory (AD) 群組來管理您的使用者

Active Directory 和 Microsoft Entra 安全組

您可以藉由新增個別使用者來填入安全組。 但是,為了方便管理,使用 Azure DevOps Services 和 Active Directory (AD) 或適用於 Azure DevOps Server 的 Windows 使用者群組Microsoft Entra ID 填入這些群組會更有效率。 這種方法可讓您更有效率地跨多部計算機管理群組成員資格和許可權。

如果您只需要管理一小組使用者,您可以略過此步驟。 但是,如果您預期組織可能會成長,請考慮設定 Active Directory 或 Microsoft Entra 識別符。 此外,如果您打算使用額外的服務,請務必設定 Microsoft Entra ID,以搭配 Azure DevOps 使用以支援計費。

注意

如果沒有Microsoft Entra標識符,所有 Azure DevOps 使用者都必須使用 Microsoft 帳戶登入,而且您必須由個別用戶帳戶管理帳戶存取權。 即使您使用 Microsoft 帳戶管理帳戶存取,也請設定 Azure 訂用帳戶來管理計費

若要設定Microsoft Entra標識符以搭配 Azure DevOps Services 使用,請參閱 將組織連線到 Microsoft Entra ID

當組織連線到 Microsoft Entra 識別符時,您可以定義和管理各種組織原則,以增強安全性並簡化應用程式的存取。 如需詳細資訊,請參閱 關於安全性、安全策略

若要使用 Microsoft Entra 識別元管理組織存取,請參閱下列文章:

Azure DevOps 會在Microsoft Entra 標識符變更的一小時內,註冊對 Microsoft Entra 群組所做的變更。 透過群組成員資格的任何繼承許可權都會重新整理。 若要重新整理您的Microsoft Entra 成員資格和 Azure DevOps 中繼承的許可權,請註銷然後重新登入,或 觸發重新整理以重新評估您的許可權

若要設定 Active Directory 以搭配 Azure DevOps Server 使用,請參閱下列文章:

安裝 Azure DevOps Server 之前,請先安裝 Active Directory。

有效的使用者群組

當您將用戶帳戶直接新增至安全組時,它們會自動新增至下列其中一個有效的使用者群組。

  • 專案集合有效使用者所有成員已新增至組織層級群組。
  • 專案有效使用者所有成員已新增至專案層級群組。
  • Server\Azure DevOps 有效使用者:新增至伺服器層級群組的所有成員。
  • ProjectCollectionName\Project 集合有效使用者:已新增至集合層級群組的所有成員。
  • ProjectName\Project Valid Users:新增至專案層級群組的所有成員。

指派給這些群組的默認許可權主要提供讀取許可權,例如 檢視組建資源檢視專案層級資訊,以及 檢視集合層級資訊

您新增至某個專案的所有使用者都可以檢視集合內其他專案中的物件。 若要限制檢視存取,您可以 透過區域路徑節點設定限制。

如果您移除或拒絕 其中一個有效使用者群組的 [檢視實例層級資訊 ] 許可權,則群組的成員將無法根據您設定的群組來存取專案、集合或部署。

專案範圍使用者群組

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

重要

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

若要限制特定使用者,例如項目關係人、Microsoft Entra 來賓使用者,或特定安全組的成員,您可以啟用 限制用戶可見度和共同作業給組織的特定專案 預覽功能。 啟用之後,任何新增至專案範圍使用者群組的使用者或群組,都受限於存取 [組織設定] 頁面,但 [概觀] 和 [專案] 除外。 此外,他們只能存取新增至的專案。

警告

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

如需詳細資訊,請參閱 管理預覽功能

注意

安全組會在組織層級進行管理,即使它們用於特定專案也一樣。 視用戶權力而定,某些群組可能會隱藏在入口網站中。 若要檢視組織內的所有組名,您可以使用 Azure DevOps CLI 工具或 REST API。 如需詳細資訊,請參閱 新增和管理安全組

注意

安全組會在集合層級進行管理,即使它們用於特定專案也一樣。 視用戶權力而定,某些群組可能會隱藏在入口網站中。 若要檢視集合中的所有組名,您可以使用 Azure DevOps CLI 工具或 REST API。 如需詳細資訊,請參閱 新增和管理安全組

注意

安全組會在集合層級進行管理,即使它們用於特定專案也一樣。 視用戶權力而定,某些群組可能會隱藏在入口網站中。 若要檢視集合中的所有組名,您可以使用 REST API。 如需詳細資訊,請參閱 新增和管理安全組

角色型權限

使用角色型許可權時,您會將用戶帳戶或安全組指派給角色,併為每個角色指派一或多個許可權。 以下是主要角色和詳細信息的連結。

如需詳細資訊,請參閱 關於安全性角色

下圖說明專案和集合層級定義的安全組如何將許可權指派給物件、專案和組織。

概念映像將預設安全組對應至許可權等級、雲端

下圖說明如何在專案和集合層級定義安全組,以指派給物件、專案和集合層級指派的許可權。 您只能將伺服器層級安全組定義為伺服器層級的許可權。

概念映像將預設安全組對應至內部部署許可權等級

專案管理員或專案集合系統管理員群組的成員可以管理所有小組的所有小組工具。

預覽功能

功能旗標可控制對新功能的存取。 Azure DevOps 會定期在功能旗標後面引進新功能。 項目成員和組織擁有者可以啟用或停用預覽功能。 如需詳細資訊,請參閱 管理或啟用功能

下一步