组件、条款和主要概念

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

若要有效地部署和管理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 市场安装。 有关详细信息,请参阅 什么是分析服务?

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

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

项目集合

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

Project

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

Azure DevOps Server管理控制台

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

服务帐户

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

SharePoint 产品

支持项目门户和仪表板的软件。 在部署Azure DevOps Server时,可以包含一个或多个 SharePoint Web 应用程序。 若要包含其中一个应用程序,您必须为 SharePoint 产品安装和配置Azure DevOps Server扩展,并且必须在整个部署中配置权限。 有关详细信息,请参阅 使用项目门户共享信息。 TFS 2018 及更高版本已弃用与 SharePoint 产品的集成。

SQL Server和SQL Server Reporting Services

为数据仓库提供数据库平台和用于数据集成、分析和报告解决方案的商业智能平台的软件。 Azure DevOps Server将其数据存储在SQL Server数据库中。 还可以选择包含运行SQL Server Reporting 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配置为对其 Web 服务使用 HTTP。 有关Azure DevOps Server使用的端口和服务的完整列表及其体系结构中的使用方式,请参阅Azure DevOps Server体系结构

可以在 Active Directory 域或工作组中部署Azure DevOps Server。 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 中配置授权权限的附加内容中,可能需要在版本控制和工作项中进行授权。 可以在命令提示符下单独管理这些权限,但它们作为团队资源管理器界面的一部分集成。