配置初始组、成员和权限

通过使用组和权限的插件文件,可以为团队项目配置初始安全设置。 通过定义可创建安全组、嵌套组、指派组成员以及允许或拒绝每个组的特定权限的任务,您可以实现这一目的。 除执行这些任务以外,您还可以在集合级别、项目级别、项目分类和事件订阅领域指定初始安全设置。

Microsoft Solutions Framework (MSF) 过程模板为默认组指派多种权限。 可通过自定义组和权限的插件文件来修改这些指派方式。 有关此插件的更多信息,请参见组和权限插件

主题内容

  • 使用 Group、Member 和组 Permission 元素定义和指派组权限

  • Team Foundation Server 中定义的组宏和默认组

  • 嵌套组和指派组成员的示例

  • 指派集合级别权限

  • 指派项目级别权限

  • 指派区域路径控制权限

  • 指派迭代路径控制权限

  • 指派事件订阅管理权限

有关如何为团队项目的功能区域(如 Team Foundation Build、Team Foundation 版本控制和 Visual Studio 实验室管理工具版)配置初始安全设置的信息,请参见控制对功能区域的访问

有关如何自定义工作项类型以允许或拒绝组或用户的访问权限的信息,请参见管理创建或修改工作项的权限

有关如何管理用户和组以及控制对 Visual Studio Application Lifecycle Management (ALM) 的访问的更多信息,请参见配置用户、组和权限

使用 Group、Member 和组 Permission 元素定义组并确保组安全

使用 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

指定要创建的组的名称。

description

说明该组对其他用户的作用。

member

name

指定要添加为另一个组的成员的某个组的名称。 可以创建组并使用以下任何成员类型预填充这些组:

  • Team Foundation Server 中定义的默认组

  • 以前已在 groupsandpermissions.xml 文件中创建的项目组(例如,[$$PROJECTNAME$$]\Contributors)

  • 在 Active Directory 中定义的组和用户,应使用以下格式指定这些组和用户:

    • DOMAIN\USERNAME

    • DOMAIN\GROUPNAME

有关指定默认组时所采用的格式的信息,请参见本主题后面的 Team Foundation Server 中定义的默认组。

permission

name

标识要应用的权限。 有关支持的权限的列表,请参见本主题后面的以下部分:

  • 指派集合级别权限

  • 指派项目级别权限

  • 指派区域级别和迭代级别的控制权限

class

标识要在其中授予组权限的类或区域。 以下为有效值:

  • NAMESPACE:指定集合级别的权限。

  • PROJECT:指定项目级别的权限。

  • CSS_NODE:指定用于查看和管理团队项目的区域路径的权限。

  • ITERATION_NODE:指定用于查看和管理团队项目的迭代路径的权限。

  • EVENT_SUBSCRIPTION:指定用于查看、订阅和取消订阅以及更改团队项目的警报设置的权限。

allow

使用 truefalse 值指示是允许还是拒绝权限。

path

标识要在其中应用权限的区域路径或迭代路径的节点。 只有当 class 设置为 CSS_NODE 或 ITERATION_NODE 时,该特性才有效。

Team Foundation Server 中定义的组宏和默认组

下表列出了可用于指定在 Team Foundation Server 中定义的默认组的宏。

提示

只能在组和权限的插件中指定下表中的宏。 当通过使用生成、版本控制或实验室管理的插件指派权限时,不能指定这些宏。

默认组

项目集合管理员

[SERVER]\$$PROJECTCOLLECTIONADMINGROUP$$

[SERVER]\$$TEAMFOUNDATIONADMINGROUP$$

项目集合服务帐户

[SERVER]\$$PROJECTCOLLECTIONSERVICESGROUP$$

项目集合生成服务帐户

[SERVER]\$$PROJECTCOLLECTIONBUILDSERVICESGROUP$$

项目集合生成管理员

[SERVER]\$$PROJECTCOLLECTIONBUILDADMINSGROUP$$

项目管理员

$$PROJECTADMINGROUP$$

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

嵌套组和指派组成员的示例

下面的示例演示如何配置名为 TestGroup1、TestGroup2 和 TestGroup3 的组。 此示例将 TestGroup1 添加为 TestGroup2 的成员。 为使此代码有效,必须在定义 TestGroup2 之前定义 TestGroup1。

<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>

指派集合级别权限

使用组 permission 元素和 NAMESPACE 类可以指派集合级别权限。 这些权限控制对整个团队项目中的可用资源的访问。 只能为以下类别的用户设置集合级别权限:

  • 集合级别的用户和组,如 Project Collection Administrators

  • 已在运行 Team Foundation 的服务器上添加至集合级别的项目级别组

  • 您创建并添加至集合级别的自定义组

有关指定组时所采用的格式,请参见本主题前面的 Team Foundation Server 中定义的默认组。

提示

可以通过在团队资源管理器中右击服务器,然后单击“安全”来设置这些权限,也可以通过打开并使用 Team Foundation 的管理控制台进行设置,或者通过使用 TFSSecuritytf 命令行工具来设置。 有关更多信息,请参见集合级别组使用 TFSSecurity 更改组和权限Permission 命令

下面的示例演示如何向团队项目的项目管理员授予集合级别权限。

<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

创建新项目。 可以在团队项目集合中创建项目。

GENERIC_WRITE

编辑集合级别信息。 可以在团队项目集合中编辑用户和组的集合级别权限。 具有此权限的用户可以执行以下任务:

  • 在 Team Foundation Server 集合中添加、移除或重命名集合级别的应用程序组。

    注意注意
    不能移除“项目集合管理员”等默认集合级别组。
  • 添加或移除 Windows 用户或其他 Team Foundation Server 应用程序组中的某个用户或组(在服务器级别)。

  • 更改用户和组的集合级别权限。

此外,具有此权限的用户可以修改版本控制权限,他们具有对版本控制中的所有文件的写访问权限,除非其权限被其他权限显式拒绝。

MANAGE_TEMPLATE

管理过程模板。 可以为团队项目集合下载、创建、编辑和上载过程模板。

MANAGE_TEST_CONTROLLERS

管理测试控制器。 可以注册和取消注册团队项目集合的测试控制器。

MANAGE_LINK_TYPES

管理工作项链接类型。 可以添加、移除和更改工作项的链接类型。

GENERIC_READ

查看集合级别信息。 可以查看集合级别的组成员资格以及这些用户的权限。

指派项目级别权限

可在组和权限插件文件中指派项目级别权限。 使用组 permission 元素和 PROJECT 类可以指派这些权限。 这些权限控制对单个项目的资源的访问。 可以向 Windows 用户和组、Team Foundation 组以及以前在组和权限插件文件中定义的组授予相应访问权限。 有关指定组时所采用的格式,请参见本主题前面的 Team Foundation Server 中定义的默认组。

提示

在创建团队项目之后,您可以在团队资源管理器中设置这些权限,方法是:右击该项目,单击“团队项目设置”,然后单击“安全”。 还可以使用 TFSSecurity 命令行工具来设置这些权限。 有关更多信息,请参见管理权限

下面的示例演示如何向团队项目的“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 (参与者)

Builders (构建者)

GENERIC_READ

查看项目级别信息。 可以查看项目级别的组成员资格以及这些成员的权限。

选中标记 选中标记 选中标记

VIEW_TEST_RESULTS

查看测试运行。 可以查看此节点中的测试计划。

选中标记 选中标记 选中标记

MANAGE_TEST_CONFIGURATIONS

管理测试配置。 可以创建和删除团队项目的测试配置。

选中标记 选中标记

MANAGE_TEST_ENVIRONMENTS

管理测试环境。 可以创建和删除团队项目的测试环境。

选中标记 选中标记

PUBLISH_TEST_RESULTS

创建测试运行。 可以添加和移除测试结果,也可以添加或修改团队项目的测试运行。

选中标记 选中标记

DELETE_TEST_RESULTS

删除测试运行。 可以删除团队项目的计划测试。

选中标记 选中标记

DELETE

删除团队项目。 可以从 Team Foundation Server 中删除用户具有此删除权限的项目。

GENERIC_WRITE

编辑项目级别信息。 可以在 Team Foundation Server 中编辑用户和组的项目级别权限。

指派区域路径控制权限

使用组 permission 元素和 CSS_NODE 类可以指派用于控制对区域定义的访问的权限。 这些权限控制对单个项目的分类结构的访问。 可以向 Windows 用户和组、Team Foundation 组以及以前在组和权限插件文件中定义的组授予相应访问权限。 有关指定组时所采用的格式的信息,请参见本主题前面的 Team Foundation Server 中定义的默认组。

提示

在创建团队项目之后,您可以在团队资源管理器中设置这些权限,方法是:右击该项目,依次单击“区域和迭代”“区域”选项卡和“安全”。可以为层次结构中不同级别的节点指派权限。 还可以使用 TFSSecurity 命令行工具来设置这些权限。 有关更多信息,请参见管理权限

下面的示例演示如何向团队项目的“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 (参与者)

Builders (构建者)

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 Foundation Server 中定义的默认组。

提示

在创建团队项目之后,您可以在团队资源管理器中设置这些权限,方法是:右击该项目,依次单击“区域和迭代”“迭代”选项卡和“安全”。 可以为层次结构中不同级别的节点指派权限。 还可以使用 TFSSecurity 命令行工具来设置这些权限。 有关更多信息,请参见管理权限

下面的示例演示如何向团队项目的“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" />
</group>

下表描述了可指派的权限,这些权限用于控制对项目迭代节点的分层结构的访问。 由于 MSF 过程模板不会指定任何 ITERATION_NODE 权限,因此所有团队成员均可创建、查看和删除迭代节点。

提示

用于跟踪工作项的某些操作需要多种权限。 例如,您需要多种权限来删除节点。

权限

说明

GENERIC_READ

查看此节点。 可以查看节点的安全设置。

CREATE_CHILDREN

创建子节点并对子节点排序。 可以创建迭代节点。 同时具有此权限以及 GENERIC_WRITE 权限的用户可以移动任何迭代节点或对任何迭代节点重新排序。

DELETE

删除此节点。 可以删除迭代节点。

同时具有此权限以及对另一个节点的 GENERIC_WRITE 权限的用户可以删除迭代节点并对所删节点中的现有工作项重新分类。 如果删除的节点有子节点,则子节点也会被删除。

GENERIC_WRITE

编辑此节点。 可以设置迭代节点的权限,并重命名节点。

指派事件订阅管理权限

使用组 permission 元素和 EVENT_SUBSCRIPTION 类可以指派用于控制对项目警报的访问的权限。 这些权限控制对单个团队项目的事件服务的访问。 可以向 Windows 用户和组、Team Foundation 组以及以前在组和权限插件文件中定义的组授予相应访问权限。 有关指定组时所采用的格式的信息,请参见本主题前面的 Team Foundation Server 中定义的默认组。

下面的示例演示如何向团队项目的“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="EVENT_SUBSCRIPTION" allow="true" />
        <permission name="GENERIC_WRITE" class=" EVENT_SUBSCRIPTION" allow="true" />
        <permission name="UNSUBSCRIBE" class=" EVENT_SUBSCRIPTION" allow="true" />
   </permissions>
</group>

下表描述了可指派的权限,这些权限用于控制对事件订阅的访问。

提示

默认情况下,MSF 过程模板中未指派任何事件订阅权限。 所有团队成员均可查看、订阅和取消订阅项目警报。

权限

说明

GENERIC_READ

可以查看警报。

GENERIC_WRITE

可以更改警报设置。

UNSUBSCRIBE

可以取消订阅警报。

请参见

概念

组和权限插件

配置用户、组和权限

在过程模板中自定义功能区域

其他资源

控制对功能区域的访问

管理创建或修改工作项的权限