组件、术语和关键概念

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。

分析服务

Analytics 服务是 Azure DevOps 未来的报告平台。 它目前在 Azure DevOps Services 上可用,可从 Azure DevOps Server 上的 Azure DevOps 市场安装。 有关详细信息,请参阅 什么是 Analytics 服务?

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

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

项目集合

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

项目

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

Azure DevOps Server 管理控制台

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

服务帐户

由 Azure DevOps 运行 Web 服务和应用程序的一个或多个帐户。 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 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 中配置授权外,您可能还需要对版本控制和工作项进行授权。 可以在命令提示符下单独管理这些权限,但它们作为团队资源管理器界面的一部分集成。