Team Foundation Server(TFS)是一种为 Microsoft 产品提供 源代码管理、数据收集、报告和项目跟踪,而为协作软件开发的项目。可作为独立的软件,或 Visual Studio Team System (VSTS) 在服务器端后端平台。它是Microsoft应用程序生命周期管理(ALM)工具的核心协作平台,简单的说它是管理和开发软件项目的整个生命周期的平台工具。
主要功能
- 版本管理:工作区(workspace)、变更集(changeset)、标签
- 并行开发支持:多点(checkout)、分支与合并、搁置集(shelveset)
- 强化过程管理:链接工作项、静态代码分析、代码覆盖率
- 自动化构建
- 完善的权限管理
- 支持分布式开发
组件术语
- 应用层、数据层、客户端层:组成 Team Foundation Server 的逻辑层。这些层可能全部部署在同一台物理计算机上,也可能安装在多台计算机上。
- 团队项目集合:Team Foundation Server中所有数据的主要组织单位。集合可以包含一个或多个团队项目。
- 团队项目:团队用于共享开发特定软件技术或产品所需的团队活动的中心点。团队项目以团队项目集合进行组织。
- Team Foundation 管理控制台:Team Foundation Server中管理员的集中管理工具。您可以从管理控制台管理用户和权限,还可以创建和管理团队项目集合、添加和管理 SharePoint Web应用程序以在部署中使用、创建和管理虚拟实验室以及检查服务器状态。
- 服务帐户:Team Foundation中的Web服务和应用程序使用的帐户。Team Foundation Server需要使用服务帐户在服务器和Web服务之间执行操作。这些服务帐户有特定要求。
- SharePoint 产品:为基于Web的业务应用程序的协作和开发提供可伸缩、可管理的平台的软件。 您可以将一个或多个SharePoint Web应用程序包含为Team Foundation Server 部署的组成部分。若要包含这些应用程序之一,必须为 SharePoint 产品安装和配置 Team Foundation Server 扩展,并且必须在整个部署中配置权限。
- SQL Server 和 SQL Server Reporting Services:为大型联机事务处理 (OLTP)、数据仓库和电子商务应用程序提供数据库平台的软件。SQL Server 也是数据集成、分析和报告解决方案的业务智能平台。Team Foundation Server 在 SQL Server 数据库中存储其数据。您也可以选择包含运行 SQL Server Reporting Services 的服务器和自动生成团队项目报告的服务器。
安全
- 拓扑,包括运行 Team Foundation组件的服务器的部署位置和部署方式、在 Team Foundation Server 和Team Foundation客户端之间传递的网络通信以及必须在 Team Foundation Server上运行的服务。
- 身份验证,包括确定 Team Foundation Server 中的用户、组和服务的有效性。
- 授权,包括确定 Team Foundation Server 中的有效用户、组和服务是否有执行特定操作的相应权限。
此外,您还应考虑 Team Foundation Server 依赖的其他组件和服务。
在考虑 Team Foundation Server 的安全性时,必须了解身份验证和授权之间的差别。“身份验证”是指对来自客户端、服务器或进程的连接尝试所提供的凭据进行验证。“授权”是指验证尝试连接的身份是否具有访问对象或方法的权限。授权只在身份验证成功之后进行。如果连接没有通过身份验证,它在执行任何授权检查操作之前就会失败。连接成功通过身份验证后,特定操作仍可能因用户或组没有被授权执行该操作而被禁止。
拓扑端口
Team Foundation Server 部署和安全性的首要因素是部署的各个组件是否能够彼此连接以进行通信。您的目标是启用Team Foundation客户端与 Team Foundation Server 之间的连接,同时限制或阻止其他连接尝试。
Team Foundation Server 需要依靠一些特定的端口和服务才能发挥作用。可以对这些端口进行保护和监视以帮助满足业务安全的需要。必须允许Team Foundation Server网络通信在 Team Foundation 客户端、承载 Team Foundation 应用层和数据层的各个逻辑组件的服务器、Team Foundation Build 计算机以及使用 Team Foundation Server Proxy 的远程客户端之间进行传递。默认情况下,Team Foundation Server 配置为对其 Web 服务使用 HTTP。
您可以在 Active Directory 域或工作组中部署 Team Foundation Server。与工作组相比,Active Directory 提供的内置安全功能更多。可以使用 Active Directory 功能帮助保护 Team Foundation Server 部署的安全。例如,可以将 Active Directory 配置为禁止使用重复的计算机名称,这样,恶意用户就无法用运行 Team Foundation Server 的非法服务器来假冒计算机名称。若要降低同类威胁在工作组中的影响,必须配置计算机证书。
无论是在工作组中还是在域中部署 Team Foundation Server,都必须符合 Team Foundation Server 本身的要求所规定的约束。
身份验证
Team Foundation Server 安全性与 Windows 集成身份验证和 Windows 操作系统的安全功能集成在一起,其实现也依赖于后两个因素。 可以使用 Windows 集成身份验证对以下方面进行帐户身份验证:Team Foundation 客户端与 Team Foundation Server 之间的连接、承载 Team Foundation 逻辑应用层和数据层的服务器上的 Web 服务、应用层服务器和数据层服务器本身之间的连接。
不应将 Team Foundation Server 与 SharePoint 产品之间的任何 SQL Server 数据库连接配置为使用 SQL Server 身份验证,因为这种方式的安全性没有 Windows 身份验证高。在连接至数据库时,数据库管理员帐户的用户名和密码会以不加密的格式发送。Windows 集成身份验证并不发送用户名和密码,而是使用 Windows 集成身份验证安全协议向 SQL Server 传输与宿主 Internet 信息服务 (IIS) 应用程序池关联的服务帐户标识信息。
组和权限
Team Foundation Server 授权基于下列因素:Team Foundation 用户和组、直接分配给这些用户和组的权限,以及这些用户和组由于属于其他 Team Foundation Server 组而可能继承的权限。Team Foundation 用户和组可以是本地用户或组、Active Directory 用户和组,或者同时属于这两者。
Team Foundation Server 预先配置了服务器、集合和项目级别的默认组。您可以通过添加各个用户填充这些组。但是,使用 Active Directory 安全组来填充这些组可能更易于管理。利用这种方法,可以更有效地管理多台计算机或多个应用程序(如 SharePoint 产品和 SQL Server)中的组成员资格和权限。
特定的部署可能要求您在多台计算机上以及多个应用程序中配置用户、组和权限。例如,如果要将报表和项目门户包含在部署中,必须在 Reporting Services、SharePoint 产品和 Team Foundation Server 中配置用户和组的权限。在 Team Foundation Server 中,可以为每个项目、每个集合设置权限,也可以在整个部署(服务器级别)中设置权限。此外,某些权限将默认授予添加到 Team Foundation Server 中的任何用户或组,因为该用户或组会自动添加到 “Team Foundation Valid Users”
体系结构
若要分析和计划 Team Foundation Server 的最佳部署以满足业务需求,必须考虑以下各方面:
- Team Foundation 的逻辑应用层、数据层和客户端层
- 承载这些层的物理服务器的位置
- 将在您的环境中运行的 Team Foundation Build和生成计算机。
- Team Foundation Server Proxy
此外,还必须考虑这些实体之间的交互。您必须知道使用哪些 Web 服务、数据库和对象模型。而且,您还必须了解默认情况下使用哪些网络端口和协议,以及可以自定义哪些网络端口。除了其本身的服务之外,Team Foundation Server 还需依靠其他服务才能运行。
对象模型
通过 Team Foundation Server 的对象模型,Team Foundation 的逻辑层可以进行通信,软件集成商及其他公司可以自定义和扩展 Team Foundation Server 功能。
Team Foundation Server 的对象模型是一组包含下列接口的托管 API:
- Team Foundation Framework 服务
- 管理服务
- 事件服务
- 团队项目集合服务
- 注册服务
- 安全性服务
- 位置服务
- 标识管理服务
- 目录服务
- 作业服务
- 属性服务
- 版本控制对象模型
- 工作项跟踪对象模型
- Foundation Build 对象模型
Web服务
Team Foundation Server 包含一组 Web 服务和数据库,它们将单独安装和配置在承载 Team Foundation 的逻辑应用层、数据层和客户端层的一台或多台服务器上。
配置信息
Team Foundation Server 依赖于 SQL Server、Internet 信息服务 (IIS) 和 Windows 操作系统。根据部署的不同,Team Foundation Server 可能还依赖于 SQL Server Reporting Services 或 SharePoint 产品。因此,Team Foundation Server 的配置信息可存储在下列任意位置:
- IIS 数据存储区
- Team Foundation Server 的配置文件
- Reporting Services 的数据源(例如,TFSREPORTS 数据)
- Team Foundation Server 的配置数据库
- Windows 注册表
在维护 Team Foundation Server 部署时,必须考虑这些配置源。若要以任意方式更改配置,可能需要修改存储在多个位置中的信息。此外,还可能需要更改数据层和客户端层的配置信息。Team Foundation Server 包括一个管理控制台和多个命令行实用工具,可帮助您进行这些更改。不过,有些配置更改可能需要您手动进行一些调整。
同步 Active Directory 与 Team Foundation Server 之间的组标识对于在 Active Directory 域中运行 Team Foundation Server 的部署,当发生以下任意事件时,均会同步组和标识信息:
Team Foundation 的应用层服务器启动。
在 Team Foundation Server 中向组添加 Active Directory 组。
超过计划作业中指定的时间段。(默认值为一小时,Team Foundation Server 中的所有组每 24 小时更新一次。)
标识管理服务 (IMS) 与 Active Directory 同步,并且更改的标识会从服务器传播到客户端。根据作业服务的同步计划的不同,更改可能不会立即反映在 Team Foundation Server 中。 默认情况下,将在 24 小时内更新所有组,但您可以自定义此设置以更加适合部署的需求。