控制对功能区域的访问
可以为团队项目的以下功能区域配置初始安全设置:团队查询、Team Foundation 版本控制、Team Foundation Build 和 Visual Studio 实验室管理工具版。Microsoft Solutions Framework (MSF) 的过程模板为默认安全组分配了多种权限。可通过自定义相应功能区域的插件文件来修改这些指派方式。
有关如何配置 Visual Studio Team Foundation Server 安全组的信息,请参见配置初始组、团队、成员和权限。
主题内容
使用功能 Permission 元素指派功能区域的权限
为工作项查询分配权限
指派版本控制权限
指派生成权限
指派实验室管理权限
有关如何管理用户和组以及控制对 Visual Studio Application Lifecycle Management (ALM) 的访问的更多信息,请参见配置用户、组和权限。
使用功能 Permission 元素指派功能区域的权限
使用功能 permission 元素可以允许或拒绝 Team Foundation Server 安全组、Windows 组或 Windows 标识访问功能区域的权限。应在工作项跟踪、Team Foundation 版本控制、Team Foundation Build 和实验室管理工具版的插件文件中使用此元素。必须将 permission 元素封装在其对应的容器(即 permissions 元素)中。对功能 permission 元素使用以下语法结构:
<permission allow="PermissionName" identity="GroupName"/>
<permission deny="PermissionName" identity="GroupName"/>
<permission allow="PermissionName" deny="PermissionName" identity="GroupName"/>
下表描述功能 permission 元素的特性:
特性 |
说明 |
---|---|
allow |
标识要授予的权限。请以逗号分隔的文本格式指定权限。 有关为每个功能区域定义的权限的名称,请参见本主题后面的以下部分:
|
deny |
标识要撤消的权限。请以逗号分隔的文本格式指定权限。
说明
拒绝的权限优先于允许的权限。
|
identity |
指定要应用权限的 Team Foundation Server 安全组、Windows 组或 Windows 标识。有关指定组时所采用的格式,请参见配置初始组、团队、成员和权限中的“Team Foundation Server 中定义的默认组”。 |
下面的示例演示如何授予权限以允许**“Contributors (参与者)”**组查看生成和生成定义、将生成排队以及编辑生成质量。
<taskXml>
<permission allow="Read, PendChange, Checkin, Label, Lock" identity="[$$PROJECTNAME$$]\Contributors"/>
</taskXml>
说明 |
---|
如果运行时找不到某个标识的权限,将会在该标识所属的任何其他组中搜索权限。如果找不到相应的权限,默认情况下将拒绝该权限。 |
为工作项查询分配权限
在工作项插件文件中,可以分配用于控制对团队查询文件夹的访问的权限。查询文件夹权限特定于查询和查询文件夹。可以向 Windows 用户和组或针对 Team Foundation Server 定义的默认组授予相应的访问权限。
可以使用功能 permission 元素来指派这些权限,如以下示例所示:
<Permission allow="Read, Contribute, Delete, ManagePermissions, FullControl" identity="="[$$PROJECTNAME$$]\$$PROJECTADMINGROUP$$" />
说明 |
---|
在创建团队项目之后,可通过右击一个查询文件夹或“团队资源管理器”中的查询,然后单击“安全性”来设置权限。有关更多信息,请参见组织和设置工作项查询的权限。 |
下表描述了用于控制对查询文件夹和查询的访问的权限,还指明了在 MSF 过程模板中所做的默认指派。默认情况下,查询和查询文件夹的创建者或所有者可以完全控制对其创建或拥有的查询的管理。
权限 |
说明 |
Readers (访问者)、Contributors (参与者)、Builders (构建者) |
Creator Owners (创建者/所有者)、Project Administrator (项目管理员) 组、Project Collection Administrators (项目集合管理员) |
---|---|---|---|
Read |
读取。可查看并运行查询或查看查询文件夹及其内容 |
||
Contribute |
参与。可查看并编辑查询或查询文件夹及其内容 |
||
Delete |
删除。可查看、编辑和删除查询或查询文件夹及其内容 |
||
ManagePermissions |
管理权限。可管理查询或查询文件夹及其内容的权限 |
||
FullControl |
完全控制。可查看、编辑、删除和管理查询或查询文件夹及其内容的权限 |
指派版本控制权限
通过更改版本控制的插件文件,可以指派用于控制对源代码文件和文件夹的访问的权限。版本控制权限特定于源代码文件和文件夹。可以向 Windows 用户和组或针对 Team Foundation Server 定义的默认组授予相应的访问权限。
可以使用功能 permission 元素来指派这些权限,如以下示例所示:
<permission allow="Read, PendChange, Checkin, Label, Lock, Merge" identity="[$$PROJECTNAME$$]\@@Contributors@@" />
说明 |
---|
在创建团队项目之后,您可以通过右击“源代码管理资源管理器”中的文件夹或文件,单击“属性”,然后单击“安全”选项卡来设置这些权限。在该选项卡上,可以单击要更改权限的用户或组,然后编辑“权限”中所列的权限。还可以使用版本控制的 tf 命令行工具或 TFSSecurity 命令行工具来设置这些权限。有关更多信息,请参见Control Access to Team Foundation Version Control。 |
下表描述了用于控制对源代码文件或文件夹的访问的权限,还指明了在 MSF 过程模板中所做的默认指派。
权限 |
说明 |
访问者 |
参与者 |
构建者 |
“Project Administrators (项目管理员)”组 |
---|---|---|---|---|---|
Read |
读取。可以显示文件或文件夹的内容。 如果用户对文件夹有“读取”权限,但对于该文件夹包含的文件,该用户没有“读取”权限,则该用户可以显示这些文件的名称和属性,但不能打开它们。 |
||||
PendChange |
签出。可以执行签出并对项执行挂起更改。挂起更改的示例包括添加、编辑、重命名、删除、撤消删除、分支和合并文件。 |
||||
Merge |
合并。可以将更改合并到用户有权限合并的路径中。 |
||||
Checkin |
签入。可以签入项并修订任何提交的变更集注释。挂起的更改时,将提交用户签入该项目。 |
||||
Label |
标签。可以对项添加标签。 |
||||
Lock |
锁定。可以锁定某项,以便其他用户不能对其进行更新。 |
||||
ReviseOther |
修订其他用户的更改。可以更改其他人的变更集注释和签入说明的内容。 |
||||
UnlockOther |
取消锁定其他用户的更改。可以移除其他人的锁定。 |
||||
UndoOther |
撤消其他用户的更改。可以撤消其他人的挂起的更改。 |
||||
LabelOther |
管理标签。可以修改其他人的标签。 |
||||
AdminProjectRights |
管理权限。可以为版本控制配置安全设置。 |
||||
CheckinOther |
签入其他用户的更改。可以作为其他用户执行签入。转换实用工具需要此权限。 |
||||
ManageBranch |
管理分支。对给定的路径具有此权限的用户可以将该路径下的任何文件夹都转换为分支。具有此分支权限的用户还可以编辑分支属性、重新设置分支父级、将分支转换为文件夹。 具有此权限的用户只有在还具有目标路径的“合并”权限时,才可以对该分支执行分支操作。如果用户对某个分支没有“管理分支”权限,就无法从该分支创建分支。 |
指派生成权限
通过更改生成插件文件,可以指派用于控制对生成活动的访问的权限。可以向 Windows 用户和组以及 Team Foundation Server 组授予访问权限。有关指定组时所采用的格式的信息,请参见配置初始组、团队、成员和权限中的“Team Foundation Server 中定义的默认组”。
可以使用功能 permission 元素来指派这些权限,如以下示例所示:
<Permission allow="ViewBuildDefinition, QueueBuilds, ViewBuilds, EditBuildQuality" identity="[$$PROJECTNAME$$]\@@Contributors@@" />
说明 |
---|
在创建团队项目之后,可以通过打开团队资源管理器中的项目,右击“生成”,然后单击“安全”来设置这些权限。可以通过右击生成定义,然后单击“安全”,来对特定生成定义应用权限。如果您希望对生成文件夹应用权限,请右击该文件夹,然后单击“安全”。此外,您还可以使用 TFSSecurity 命令行工具设置这些权限。有关更多信息,请参见管理权限。 |
下表描述了可指派的权限,这些权限用于控制对团队项目的生成功能的访问。下表还指明了在 MSF 过程模板中所做的默认指派。
说明 |
---|
“重写由生成执行的签入验证”权限只应指派给生成服务的服务帐户以及负责代码质量的生成管理员。有关更多信息,请参见签入由封闭签入生成控制的挂起的更改。 |
权限 |
说明 |
访问者 |
参与者 |
生成管理员 |
Project Administrators |
Project Collection Administrators |
---|---|---|---|---|---|---|
ViewBuildDefinition |
查看生成定义。可以查看为团队项目创建的生成定义。 |
|||||
ViewBuilds |
查看生成。可以查看该团队项目的已排队和已完成的生成。 |
|||||
EditBuildQuality |
编辑生成质量。可以通过 Team Foundation Build 界面添加有关生成质量的信息。 |
|||||
QueueBuilds |
将生成排队。可以通过 Team Foundation Build 界面或在命令提示符处将生成添加到队列中。 |
|||||
DeleteBuildDefinition |
删除生成定义。可以删除生成定义。 |
|||||
DeleteBuilds |
删除生成。可以删除已完成的生成。 |
|||||
DestroyBuilds |
销毁生成。可以永久删除已完成的生成。 |
|||||
EditBuildDefinition |
编辑生成定义。可以创建和修改生成定义。 |
|||||
ManageBuildQualities |
管理生成质量。可以添加或移除生成质量,例如,“部署准备工作就绪”、“已拒绝”或“调查中”。有关更多信息,请参见添加或移除生成质量值。 |
|||||
ManageBuildQueue |
管理生成队列。可以取消、推迟已排队的生成或者重新设置其优先级。 |
|||||
RetainIndefinitely |
无限期保留。可以标记生成,以使它不会自动被任何适用的保留策略删除。 |
|||||
StopBuilds |
停止生成。可以停止正在进行的生成。 |
|||||
OverrideBuildCheckInValidation |
重写由生成执行的签入验证。可以在先不触发系统搁置并生成变更的情况下提交影响封闭生成定义的变更集。有关更多信息,请参见签入由封闭签入生成控制的挂起的更改。 |
|||||
UpdateBuildInformation |
更新生成信息。可以添加有关生成质量的信息。 此权限只应指派给服务帐户。 |
指派实验室管理权限
通过更改实验室插件文件,可以控制对实验室管理工具版活动的访问。实验室管理工具版权限特定于虚拟机、环境和其他资源。可以向 Windows 用户和组以及 Team Foundation Server 组授予访问权限。可以使用功能 permission 元素来指派这些权限,如以下示例所示:
<permission allow="Read, Create, Write, Edit, Start, Stop, ManageSnapshots, Pause" identity="[$$PROJECTNAME$$]\@@Contributors@@" />
说明 |
---|
通过使用 TFSLabConfig 命令行工具,可以设置实验室管理工具版权限。若要显示有关特定实验室资源的信息,您必须对该资源具有“读取”权限。若要删除某个位置,您必须对该位置具有“删除实验室位置”权限。有关更多信息,请参见 TFSLabConfig Permissions 命令。 |
下表描述了可指派的权限,这些权限用于控制对 Visual Studio 实验室管理工具版的访问。下表还指明了在 MSF 过程模板中所做的默认指派。
权限 |
说明 |
访问者 |
参与者 |
“项目集合生成服务帐户”组 |
“团队项目管理员”组 |
“项目集合管理员”组 |
---|---|---|---|---|---|---|
Read |
查看实验室资源。可以查看多种实验室管理工具版资源的信息,其中包括集合主机组、项目主机组和环境。 |
|||||
Create |
导入虚拟机。可以从 Virtual Machine Manager (VMM) 库共享导入虚拟机。 此权限不同于“写入”,因为用户可以在实验室管理工具版中创建对象,而不能向 VMM 主机组或库共享中写入任何内容。 |
|||||
Write |
写入环境和虚拟机。可以创建环境。对项目库共享具有此权限的用户可以存储环境和虚拟机。 |
|||||
Edit |
编辑环境和虚拟机。可以编辑环境和虚拟机。会针对要编辑的对象检查权限。 |
|||||
Start |
启动。可以启动环境。 |
|||||
Stop |
停止。可以停止环境。 |
|||||
Pause |
暂停。可以暂停环境。 |
|||||
ManageSnapshots |
管理快照。可以执行所有快照管理任务,包括拍摄快照、还原快照、重命名快照、删除快照和读取快照。 |
|||||
Delete |
删除环境和虚拟机。可以删除环境和虚拟机。会针对要删除的对象检查权限。 |
|||||
ManageLocation |
管理实验室位置。可以编辑实验室管理工具版资源的位置,其中包括集合主机组、集合库项目、项目主机组和项目库共享。 集合级别位置(集合主机组和集合库共享)的此权限还能让用户创建项目级别位置(项目主机组和项目库共享)。 |
|||||
DeleteLocation |
删除实验室位置。可以删除实验室管理工具版资源的位置,其中包括集合主机组、集合库共享、项目主机组和项目库共享。 |
|||||
ManageChildPermissions |
管理子级权限。可以更改所有子级实验室管理工具版对象的权限。例如,如果用户对某个团队项目主机组具有此权限,该用户就可以更改该团队下的所有环境的权限。 |
|||||
ManagePermissions |
管理权限。可以修改实验室管理工具版对象的权限。会针对要修改权限的对象检查此权限。 |
|||||
EnvironmentOps |
环境操作。可以启动、停止、暂停和管理快照,以及对环境执行其他操作。 |