設定初始群組、小組、成員和權限

您可以使用群組和權限的外掛程式檔案,設定 Team 專案的初始安全性設定。 做法是定義工作,以建立安全性群組、巢狀群組、將群組定義為小組、設定初始小組設定、將成員指派給群組,以及允許或拒絕每個群組的特定權限。 除了執行這些工作之外,您還可以指定集合層級、專案層級和專案類別區域的初始安全性設定。

Microsoft 流程範本會指派數個權限給預設群組。 您可以自訂群組和權限的外掛程式檔案來修改這些指派。 如需這個外掛程式的詳細資訊,請參閱使用群組和權限外掛程式定義群組、小組和權限

本主題內容

  • 定義及指派權限給群組

  • 群組巨集和預設群組

  • 巢狀群組及指派成員給群組

  • 定義小組

  • 指派集合層級權限

  • 指派專案層級權限

  • 指派控制區域路徑的權限

  • 指派控制反覆項目路徑的權限

如需如何設定 Team 專案功能區域 (例如 Team Foundation Build、Team Foundation 版本控制 和 Visual Studio Lab Management) 之初始安全性設定的相關資訊,請參閱控制功能區域的存取權

如需如何自訂工作項目類型,以允許或拒絕存取群組或使用者的相關資訊,請參閱將規則套用至工作項目欄位

如需如何管理 Visual Studio Application Lifecycle Management (ALM) 之使用者和群組及控制存取權的詳細資訊,請參閱管理 TFS 中的使用者或群組

定義及指派權限給群組

您可以使用 groupmember 項目,在 Team Foundation Server 中指定新的安全性群組,以及將成員加入該群組。 您可以使用群組 permission 項目,將權限指派給群組和該群組的成員。 您必須封裝其對應容器項目內的所有項目,包括 groupsmemberspermissions。 您可以對上述所有項目使用下列語法:

<group name="Group Name" description="Description of Group"></group>
<member name="MemberName"></member>
<permission name="PermissionName" class="ClassName" allow="True | False"/>

下表描述 groupmember 和群組 permission 項目的屬性。 這些項目只能用於群組和權限外掛程式檔案。

項目

屬性

描述

group

name

指定所要建立之群組的名稱。

isTeam

指出群組是小組 (true) 或不是小組 (false)。

description

向其他使用者描述群組的用途。

member

name

指定要加入成為其他群組之成員的群組名稱。 您可以建立群組,並預先填入下列任何類型的成員:

  • Team Foundation Server 中定義的預設群組

  • 先前在 groupsandpermissions.xml 檔案中定義的專案群組 (例如 [$$PROJECTNAME$$]\Contributors)

  • Active Directory 中定義的群組和使用者可以使用下列格式指定:

    • 網域\使用者名稱

    • 網域\群組名稱

如需指定預設群組時所用之格式的相關資訊,請參閱本主題稍後的群組巨集和預設群組。

permission

name

指出要套用的權限。 如需支援的權限清單,請參閱本主題稍後的下列章節:

  • 指派集合層級權限

  • 指派專案層級權限

  • 指派控制區域路徑的權限

  • 指派控制反覆項目路徑的權限

class

指出獲授與群組權限的類別或區域。 下列是有效值:

  • NAMESPACE:指定集合層級權限。

  • PROJECT:指定專案層級權限。

  • CSS_NODE:指定用於檢視及管理 Team 專案之區域路徑的權限。

  • ITERATION_NODE:指定用於檢視及管理 Team 專案之反覆項目路徑的權限。

allow

使用 truefalse 值指出允許或拒絕權限。

path

指出要套用權限的區域路徑或反覆項目路徑的節點。 這個屬性只在 class 設為 CSS_NODE 或 ITERATION_NODE 時有效。

群組巨集和預設群組

下表列出您可以用來指定 Team Foundation Server 中所定義之預設群組的巨集。

注意事項注意事項

您只能在群組和權限的外掛程式中指定下表中的巨集。當您使用組建、版本控制或實驗室管理的外掛程式指派權限時,無法指定這些巨集。

預設群組

巨集

Project Collection Administrators

[SERVER]\$$PROJECTCOLLECTIONADMINGROUP$$

[SERVER]\$$TEAMFOUNDATIONADMINGROUP$$

$$COLLECTIONADMINGROUP$$

Project Collection Service Accounts

[SERVER]\$$PROJECTCOLLECTIONSERVICESGROUP$$

Project Collection Build Service Accounts

[SERVER]\$$PROJECTCOLLECTIONBUILDSERVICESGROUP$$

$$COLLECTIONBUILDSERVICESGROUP$$

Project Collection Build Administrators

[SERVER]\$$PROJECTCOLLECTIONBUILDADMINSGROUP$$

$$COLLECTIONBUILDADMINISTRATORSGROUP$$

Project Administrators

$$PROJECTADMINGROUP$$

[$$PROJECTNAME$$]\$$PROJECTADMINGROUP$$

[$$PROJECTNAME$$]\Builders

專案建立者

$$CREATOR_OWNER$$

@creator

預設小組

@defaultTeam

範例:巢狀群組及指派成員給群組

下列範例示範如何設定名為 TestGroup1、TestGroup2 和 TestGroup3 的群組。 在這個範例中,您會將 TestGroup1 加入成為 TestGroup2 的成員。 您必須先定義 TestGroup1,再定義 TestGroup2,這個程式碼才有效。

<task id="GroupCreation1"> 
    <taskXml>
      <groups>
        <group name="TestGroup1" description="Test group 1.  Contains no members out of the box.">
          <permissions>
            <permission name="GENERIC_READ" class="PROJECT" allow="true" />
          </permissions>
        </group>
        <group name="TestGroup2" description="Test group 2.  Contains TestGroup1 and Project Administrators.">
          <permissions>
            <permission name="GENERIC_READ" class="PROJECT" allow="true" />
          </permissions>
          <members>
            <member name="TestGroup1" />
            <member name="$$PROJECTADMINGROUP$$" />
          </members>
        </group>
        <group name="TestGroup3" description="Test group 3. Contains DOMAIN\USER, DOMAIN\GROUP, Project Administrators, and Project Collection Build Service Accounts.">
          <permissions>
            <permission name="GENERIC_READ" class="PROJECT" allow="true" />
          </permissions>
          <members>
            <member name="DOMAIN\USER" />
            <member name="DOMAIN\GROUP" />
            <member name="[$$PROJECTNAME$$]\$$PROJECTADMINGROUP$$" />
            <member name="[SERVER]\$$PROJECTCOLLECTIONBUILDSERVICESGROUP$$" />
          </members>
        </group>
      </groups>
    </taskXml>
</task>

定義小組

除了建立群組之外,您還可以將群組指派為小組。 建立 Team 專案也會建立預設小組。 如果您有數個小組想要將自己的工作與其他小組分開管理,可以在群組和權限外掛程式檔案中定義這些小組,或在建立 Team 專案之後設定這些小組。 請參閱 加入另一個小組或小組階層架構

下列範例示範如何將群組設定為小組。 在這個範例中,您將「夢幻小組」群組指定為小組,並將 Team 專案建立者加入成為小組的成員。 所有為小組指定的反覆項目路徑,都必須在 Classifications 外掛程式檔案中定義。 請參閱 在 Classification 外掛程式中定義初始區域和反覆項目

<group name="Dream Team" isTeam="true" description="Next generation work">
   <permissions>
      <permission name="GENERIC_READ" class="PROJECT" allow="true" />
   </permissions>
   <members>
      <member name="@creator"/>
   </members>
   <teamSettings areaPath="Area">
      <iterationPaths backlogPath="Iteration">
         <iterationPath path="Release 1\Sprint 1" />
         <iterationPath path="Release 1\Sprint 2" />
         <iterationPath path="Release 1\Sprint 3" />
         <iterationPath path="Release 1\Sprint 4" />
         <iterationPath path="Release 1\Sprint 5" />
         <iterationPath path="Release 1\Sprint 6" />
      </iterationPaths>
   </teamSettings>
</group>

指派集合層級權限

您可以使用群組 permission 項目和 NAMESPACE 類別,指派集合層級權限。 這些權限控制對 Team 專案所能使用之資源的存取權。 您只能針對下列類別的使用者設定集合層級權限:

  • 集合層級使用者和群組 (例如 Project Collection Administrators)

  • 執行 Team Foundation 的伺服器上已加入至集合層級的專案層級群組

  • 您所建立並加入至集合層級的自訂群組

如需指定群組時所用的格式,請參閱本主題稍早的群組巨集和預設群組。

注意事項注意事項

下列三種方法可設定這些權限:在 Team Explorer 中的伺服器上按一下滑鼠右鍵,然後按一下 [安全性];開啟並使用 Team Foundation 的管理主控台;或是使用 TFSSecuritytf 命令列工具。如需詳細資訊,請參閱Collection-Level Groups使用 TFSSecurity 變更群組和權限Permission Command

下列範例示範如何將集合層級權限授與 Team 專案的專案管理員。

<group name="PROJECTADMINGROUP" description="Members of this group can add, modify, and delete items within the team project.">
   <permissions>
       <permission name="GENERIC_READ" class="NAMESPACE" allow="true" />
       <permission name="WORK_ITEM_WRITE" class="NAMESPACE" allow="true" />
       <permission name="MANAGE_LINK_TYPES" class="NAMESPACE" allow="true" />
       <permission name="MANAGE_TEMPLATE" class="NAMESPACE" allow="true" />
       <permission name="MANAGE_TEST_CONTROLLERS" class="NAMESPACE" allow="true" />
    </permissions>
</group>

下表描述您可以指派的集合層級權限。

注意事項注意事項

在 MSF 流程範本中,預設不會指派任何集合層級權限。

權限

描述

DIAGNOSTIC_TRACE

修改追蹤設定。 可以變更追蹤設定,以收集 Team Foundation Server Web 服務更詳細的診斷資訊。

CREATE_PROJECTS

建立新專案。 可以在 Team 專案集合中建立專案。

GENERIC_WRITE

編輯集合層級資訊。 可以編輯 Team 專案集合中之使用者和群組的集合層級權限。 具有這個權限的使用者可以執行下列工作:

  • 在 Team Foundation Server 的集合中加入、移除或重新命名集合層級應用程式群組。

    注意事項注意事項

    您無法移除預設集合層級群組,例如 Project Collection Administrators。

  • 加入或移除 Windows 使用者或 Team Foundation Server 中之其他應用程式群組中的使用者或群組 (伺服器層級)。

  • 變更使用者和群組的集合層級權限。

此外,具有這個權限的使用者可以修改版本控制的權限,而且除非其存取權遭到其他權限明確拒絕,否則他們也具有版本控制中所有檔案的寫入權限。

MANAGE_TEMPLATE

管理流程範本。 可以下載、建立、編輯流程本,以及將流程範本上傳到 Team 專案集合。

MANAGE_TEST_CONTROLLERS

管理測試控制器。 可以註冊及取消註冊 Team 專案集合的測試控制器。

MANAGE_LINK_TYPES

管理工作項目連結類型。 可以加入、移除及變更工作項目的連結類型。

GENERIC_READ

檢視集合層級資訊。 可以檢視集合層級群組的成員資格和這些使用者的權限。

指派專案層級權限

您可以在群組和權限外掛程式檔案中指派專案層級權限。 您可以使用群組 permission 項目和 PROJECT 類別來指派這些權限。 這些權限可控制單一專案資源的存取權。 您可以將存取權授與 Windows 中的使用者和群組、Team Foundation 中的群組,以及您先前在群組和權限外掛程式檔案中定義的群組。 如需指定群組時所用的格式,請參閱本主題稍早的群組巨集和預設群組。

下列範例示範如何將數個權限授與 Team 專案的 Contributors 群組。

<group name="Contributors" description="Members of this group can add, modify, and delete items within the team project.">
   <permissions>
      <permission name="GENERIC_READ" class="PROJECT" allow="true" />
      <permission name="DELETE_TEST_RESULTS" class="PROJECT" allow="true" />
       <permission name="PUBLISH_TEST_RESULTS" class="PROJECT" allow="true" />
       <permission name="VIEW_TEST_RESULTS" class="PROJECT" allow="true" />
       <permission name="MANAGE_TEST_ENVIRONMENTS" class="PROJECT" allow="true" />
      <permission name="MANAGE_TEST_CONFIGURATIONS" class="PROJECT" allow="true" />
   </permissions>
</group>

下表描述您可以指派的專案層級權限,並指出在 MSF 流程範本中所做的預設指派。

權限

描述

Readers

Contributors

組建系統管理員

GENERIC_READ

檢視專案層級資訊。 可以檢視專案層級群組的成員資格和這些成員的權限。

核取標記 核取標記 核取標記

VIEW_TEST_RESULTS

檢視測試回合。 可以檢視這個節點中的測試計劃。

核取標記 核取標記 核取標記

MANAGE_TEST_CONFIGURATIONS

管理測試組態。 可以建立及刪除 Team 專案的測試組態。

核取標記 核取標記

MANAGE_TEST_ENVIRONMENTS

管理測試環境。 可以建立及刪除 Team 專案的測試環境。

核取標記 核取標記

PUBLISH_TEST_RESULTS

建立測試回合。 可以加入及移除 Team 專案的測試結果,以及加入或修改 Team 專案的測試回合。

核取標記 核取標記

DELETE_TEST_RESULTS

刪除測試回合。 可以刪除 Team 專案的排程測試。

核取標記 核取標記

DELETE

刪除 Team 專案。 可以從 Team Foundation Server 中刪除使用者具有這個權限的專案。

GENERIC_WRITE

編輯專案層級資訊。 可以編輯 Team Foundation Server 中之使用者和群組的專案層級權限。

指派控制區域路徑的權限

您可以使用群組 permission 項目和 CSS_NODE 類別,指派用以控制區域定義之存取權的權限。 這些權限可控制單一專案之類別結構的存取權。 您可以將存取權授與 Windows 中的使用者和群組、Team Foundation 中的群組,以及您先前在群組和權限外掛程式檔案中定義的群組。 如需指定群組時所用之格式的相關資訊,請參閱本主題稍早的群組巨集和預設群組。

下列範例示範如何將數個權限授與 Team 專案的 Contributors 群組。

<group name="Contributors" description="Members of this group can add, modify, and delete items within the team project.">
   <permissions>
      <permission name="GENERIC_READ" class="CSS_NODE" allow="true" />
      <permission name="WORK_ITEM_READ" class="CSS_NODE" allow="true" />
      <permission name="WORK_ITEM_WRITE" class="CSS_NODE" allow="true" />
      <permission name="MANAGE_TEST_PLANS" class="CSS_NODE" allow="true" />
   </permissions>
</group>

下表描述所能指派用以控制專案區域和反覆項目節點之階層結構的存取權的權限。 此表也會指出 MSF 流程範本中所做的預設指派。

注意事項注意事項

追蹤工作項目中有部分作業需要多項權限。例如,您需要有多項權限才能刪除節點。

權限

描述

Readers

Contributors

組建系統管理員

GENERIC_READ

檢視這個節點。 可以檢視區域節點的安全性設定。

核取標記 核取標記 核取標記

WORK_ITEM_READ

檢視這個節點中的工作項目。 可以檢視 (但無法變更) 指派給區域節點的工作項目。

核取標記 核取標記 核取標記

WORK_ITEM_WRITE

編輯這個節點中的工作項目。 可以編輯指派給區域節點的工作項目。

核取標記 核取標記

MANAGE_TEST_PLANS

管理測試計劃。 可以建立及編輯指派給區域節點的測試計劃。 如果測試計劃尚未執行,則也可以刪除它們。

核取標記 核取標記

CREATE_CHILDREN

建立及排列子節點。 可以建立區域節點。 同時具有這個權限和 GENERIC_WRITE 權限的使用者,可以移動或重新排列任何子區域節點。

DELETE

刪除這個節點。 可以刪除區域節點。

同時具有這個權限和其他節點之 GENERIC_WRITE 權限的使用者,除可刪除區域節點之外,還可重新分類所刪節點中現有的工作項目。 如果所刪除的節點具有子節點,則也會一併刪除那些節點。

GENERIC_WRITE

編輯這個節點。 可以設定區域節點的權限,以及重新命名區域節點。

指派控制反覆項目路徑的權限

您可以使用群組 permission 項目和 ITERATION_NODE 類別,指派用以控制反覆項目路徑之存取權的權限。 這些權限可控制單一專案之里程碑版本或反覆項目的存取權。 您可以將存取權授與 Windows 中的使用者和群組、Team Foundation 中的群組,以及您先前在群組和權限外掛程式檔案中定義的群組。 如需指定群組時所用之格式的相關資訊,請參閱本主題稍早的群組巨集和預設群組。

下列範例示範如何將數個權限授與 Team 專案的 Contributors 群組:

<group name="Contributors" description="Members of this group can add, modify, and delete items within the team project.">
   <permissions>
      <permission name="GENERIC_READ" class="ITERATION_NODE" allow="true" />
      <permission name="GENERIC_WRITE" class="ITERATION_NODE" allow="true" />
      <permission name="CREATE_CHILDREN" class="ITERATION_NODE" allow="true" />
   </permissions>
</group>

下表描述所能指派用以控制專案反覆項目節點之階層結構的存取權的權限。 由於 MSF 流程範本並未指定任何 ITERATION_NODE 權限,因此所有小組成員都可以建立、檢視及刪除反覆項目節點。

注意事項注意事項

追蹤工作項目中有部分作業需要多項權限。例如,您需要有多項權限才能刪除節點。

權限

描述

GENERIC_READ

檢視這個節點。 可以檢視節點的安全性設定。

CREATE_CHILDREN

建立及排列子節點。 可以建立反覆項目節點。 同時具有這個權限和 GENERIC_WRITE 權限的使用者,可以移動或重新排列任何反覆項目節點。

DELETE

刪除這個節點。 可以刪除反覆項目節點。

同時具有這個權限和其他節點之 GENERIC_WRITE 權限的使用者,除可刪除反覆項目節點之外,還可重新分類所刪節點中現有的工作項目。 如果所刪除的節點具有子節點,則也會一併刪除那些節點。

GENERIC_WRITE

編輯這個節點。 可以設定反覆項目節點的權限,以及重新命名節點。

請參閱

概念

使用群組和權限外掛程式定義群組、小組和權限

控制功能區域的存取權

管理 TFS 中的使用者或群組

Team Foundation Server 的權限參考