组件、条款和主要概念

Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2013

备注

Azure DevOps Server 以前名为 Visual Studio Team Foundation Server。

若要有效地部署和管理 Azure DevOps Server,你必须了解它的工作原理,并与其他部署组件通信。 作为 Azure DevOps 管理员,你应该熟悉 Windows 身份验证、网络协议和流量以及安装了 Azure DevOps 的业务网络的结构。 还应了解 Azure DevOps 组和权限。

你还可能会发现对 SQL Server、SQL Server Reporting Services 和 SharePoint 产品的了解很有用。

如果你了解本文中所述的组件和术语,则可以更好地规划、部署和管理 Azure DevOps Server。

分析服务

分析服务是适用于 Azure DevOps 的未来的报告平台。 它当前在 Azure DevOps Services 可用,并可通过 Azure DevOps Server 上的 Azure DevOps Marketplace 进行安装。 有关详细信息,请参阅 什么是分析服务?

应用层、数据层和客户端层

构成 Azure DevOps Server 的逻辑层。 这些层可能全部部署在同一台物理计算机上,也可能跨多台计算机安装。 有关详细信息,请参阅 Azure DevOps Server 的体系结构概述

项目集合

Azure DevOps Server 中所有数据的主组织单位。 集合确定可用于添加到项目的资源。 这些资源可能包括 SQL Server Reporting Services、代码搜索、Marketplace 扩展等。 有关详细信息,请参阅 管理项目集合

Project

团队用于共享开发特定软件技术或产品所需的团队活动的中心点。 项目在项目集合中进行组织。 有关详细信息,请参阅 关于项目和缩放你的组织

Azure DevOps Server 管理控制台

Azure DevOps Server 管理员的集中管理工具,用于配置和管理资源。 有关详细信息,请参阅 管理任务快速参考

服务帐户

由 Azure DevOps 运行的 Web 服务和应用程序的帐户。 Azure DevOps Server 要求服务帐户在服务器和 Web 服务之间执行操作。 这些服务帐户具有特定要求。 有关详细信息,请参阅 Azure DevOps Server 中的服务帐户和依赖项

SharePoint 产品

为项目门户网站和仪表板提供支持的软件。 你可以将一个或多个 SharePoint Web 应用程序作为 Azure DevOps Server 部署的一部分包括在内。 若要包括这些应用程序之一,你必须安装和配置用于 SharePoint 产品的 Azure DevOps Server 扩展,并且必须配置部署中的权限。 有关详细信息,请参阅 使用项目门户网站共享信息。 TFS 2018 和更高版本已弃用与 SharePoint 产品的集成。

SQL Server 和 SQL Server Reporting Services

为数据仓库提供数据库平台的软件,以及用于数据集成、分析和报表解决方案的商业智能平台。 Azure DevOps Server 将其数据存储在 SQL Server 数据库中。 你还可以选择包括运行 SQL Server Reporting Services 的服务器,该服务器会自动生成项目的报表。 有关详细信息,请参阅 管理报表、数据仓库和 analysis services 多维数据集

安全性概念

若要优化 Azure DevOps Server 的安全性,应了解以下概念:

  • 拓扑,其中包括:部署运行 Azure DevOps 组件的服务器的位置和方式、在 Azure DevOps Server 和 Azure DevOps 客户端之间传递的网络流量,以及必须在 Azure DevOps Server 上运行的服务。
  • 身份验证,包括在 Azure DevOps Server 中确定用户、组和服务的有效性。
  • 授权,包括确定 Azure DevOps Server 中的有效用户、组和服务是否具有执行特定操作的相应权限。

还应考虑 Azure DevOps Server 所依赖的其他组件和服务。

考虑 Azure DevOps Server 的安全性时,必须了解身份验证和授权之间的区别。 身份验证是验证从客户端、服务器或进程进行的连接尝试的凭据。 授权是验证尝试连接的标识是否有权访问对象或方法。 仅在身份验证成功之后才进行授权。 如果连接未经过身份验证,则在执行任何授权检查之前便会失败。 如果连接的身份验证成功,则仍可能禁止特定操作,因为未授权用户或组执行该操作。

拓扑、端口和服务

Azure DevOps Server 部署和安全性的第一个元素是部署的组件是否可以相互连接以进行通信。 你的目标是在 Azure DevOps 客户端和 Azure DevOps Server 之间启用连接,并限制或阻止其他连接尝试。

Azure DevOps Server 依赖特定的端口和服务,以便能够正常工作。 可以保护和监视这些端口以帮助满足业务安全需要。 必须允许 Azure DevOps Server 的网络流量通过 Azure DevOps 客户端、承载应用层的逻辑组件的服务器和数据层的服务器、Team Foundation Build 的计算机以及使用 Azure DevOps 代理服务器的远程客户端。 默认情况下,Azure DevOps Server 配置为使用 HTTP 作为其 Web 服务。 有关 Azure DevOps Server 使用的端口和服务的完整列表以及如何在其体系结构中使用它们,请参阅 Azure DevOps Server 体系结构

你可以将 Azure DevOps Server 部署在 Active Directory 域或工作组中。 Active Directory 提供的内置安全功能比工作组提供的功能更多。 您可以使用 Active Directory 功能来帮助保护 Azure DevOps Server 的部署。 例如,你可以将 Active Directory 配置为防止恶意用户使用运行 Azure DevOps Server 的恶意服务器来欺骗计算机名称。 若要在工作组中缓解相同类型的威胁,必须配置计算机证书。

无论是将 Azure DevOps Server 部署在工作组中还是域中,你都必须遵守 Azure DevOps Server 本身要求施加的某些约束。 有关 Azure DevOps Server 的拓扑的详细信息,请参阅 简单的 Azure DevOps Server 拓扑中等 Azure DevOps Server 拓扑复杂的 Azure DevOps Server 拓扑、了解 Windows SharePoint Services以及 了解 SQL Server 和 SQL Server Reporting Services

身份验证

Azure DevOps Server 的安全性与集成,并且依赖于 Windows 集成身份验证和 Windows 操作系统的安全功能。 你可以使用 Windows 集成身份验证对 Azure DevOps 客户端和 Azure DevOps Server 之间的连接的帐户进行身份验证,为承载逻辑应用层和数据层的服务器上的 Web 服务以及应用程序层和数据层服务器本身之间的连接进行身份验证。

备注

你可以将 Azure DevOps Server 配置为在安装 Azure DevOps Server 后支持 Kerberos 进行客户端和服务器的相互身份验证。

不应将 Azure DevOps Server 和 SharePoint 产品之间的任何 SQL Server 数据库连接配置为使用 SQL Server 身份验证,因为它不如 Windows 身份验证安全。 连接到数据库时,数据库管理员帐户的用户名和密码会以未加密的格式发送。 Windows 集成身份验证不会发送用户名和密码。 相反,它使用 Windows 集成的身份验证安全协议将与主机 Internet Information Services (IIS) 应用程序池相关联的服务帐户标识信息传输到 SQL Server。

授权

Azure DevOps Server 授权基于 Azure DevOps 中的用户和组、直接分配给这些用户和组的权限,以及这些用户和组可能通过属于 Azure DevOps Server 中的其他组继承的权限。 Azure DevOps 中的用户和组可以是本地用户或组、Active Directory 用户或组,或同时为两者。

Azure DevOps Server 在服务器、集合和项目级别上通过默认组进行预配置。 可以通过添加各个用户来填充这些组。 但是,如果使用 Active Directory 安全组填充这些组,可能会发现管理更方便。 通过采用这种方法,您可以跨多台计算机或应用程序(如 SharePoint 产品和 SQL Server)更有效地管理组成员身份和权限。

特定部署可能需要在多台计算机上和多个应用程序中配置用户、组和权限。 例如,如果想要在部署过程中包括报表和项目门户网站,则必须在 Reporting Services、SharePoint 产品和 Azure DevOps Server 中配置用户和组的权限。 在 Azure DevOps Server 中,你可以为每个项目、每个集合以及服务器级别) 上的部署 (设置权限。 此外,默认情况下,会向添加到 Azure DevOps Server 的任何用户或组授予某些权限,因为该用户或组会自动添加到 Azure DevOps 有效用户。 有关详细信息,请参阅 管理用户或组

若要在 Azure DevOps Server 中配置的权限,可能需要在版本控制和工作项中进行授权。 您可以在命令提示符下单独管理这些权限,但它们将作为团队资源管理器接口的一部分进行集成。