服务帐户和依赖项
Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019
如果了解每个 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 的软件程序(例如 SQL Server 的服务帐户)管理服务帐户。
服务帐户
尽管 Azure DevOps Server 使用多个服务帐户,但你可以对大多数或全部帐户使用相同的域或工作组帐户。 例如,可以使用与 Azure DevOps Server(TFSService)的服务帐户相同的域Contoso\\Example
帐户和 SQL Server Reporting Services(TFSReports)的数据源帐户。 但是,不同的服务帐户可能需要不同的权限级别。 例如, TFSService 必须具有 作为服务 权限的登录,并且 TFSReports 必须具有 “允许本地 登录”权限。 如果对这两个帐户使用相同的帐户 Contoso\\Example
,则必须向其授予这两个权限。 此外,TFSService 需要比 TFSReport 所需的权限正常运行要大得多,如本主题后面的表所示。 出于安全考虑,应考虑为这两个服务帐户使用单独的帐户。
重要
不得使用用于安装 Azure DevOps Server 的帐户作为其中任一服务帐户的帐户。
如果在 Active Directory 域中部署了 Azure DevOps Server,则应将帐户设置为 敏感,并且无法为服务帐户委派 选项。 例如,在下表中,应为 TFSService 设置该选项。 有关 Azure DevOps Server 文档中使用的所需服务帐户和占位符名称的详细信息,请参阅 Team Foundation 安装指南中的主题“安装 Azure DevOps Server 所需的帐户”。 有关 Active Directory 中的帐户委派的详细信息,请参阅 Microsoft 网站上的以下页面: 在 Active Directory 中委派颁发机构。
由于必须管理多个服务帐户,因此每个服务帐户都由标识其函数的占位符名称引用,如本主题后面的表中所列。 占位符名称不是用于每个服务帐户的帐户的实际名称。 帐户的实际名称因部署而异。 在前面的示例中,用于 TFSService 和 TFSReports 的 帐户为 Contoso\\Example
。 在你自己的部署中,可以创建具有特定名称的TFSService
TFSReports
域帐户,也可以使用系统帐户网络服务作为 Team Foundation Server 的服务帐户。
重要
除非另有具体说明,否则下表中没有任何组或帐户应是部署 Azure DevOps Server 的任何服务器上的 Administrators 组的成员。
下表列出了可在 Azure DevOps Server 部署中使用的大多数服务帐户。 有关此处未列出的其他服务帐户,请参阅 权限和组、服务帐户。
服务帐户
占位符名称和可用帐户类型
所需的权限和组成员身份
说明
Azure DevOps Services
帐户服务(CollectionName)
无。 仅当使用 Azure DevOps 的托管部署时,才使用此帐户。
在 Azure DevOps Services 中创建组织时,会自动为你创建。 当客户端与托管服务通信并且可以通过 Web 门户管理页查看时,会使用它。
Azure DevOps Server
TFSService:可以是本地帐户、域帐户、工作组中的本地服务或域中的网络服务
在应用程序层服务器上以服务 身份登录
此服务帐户用于所有 Azure DevOps Web 服务。 如果对此帐户使用域帐户,则必须是整个部署中所有计算机完全信任的域的成员。
Team Foundation Build
TFSBuild,可以是工作组中的本地帐户、域帐户或本地服务
作为服务登录
配置生成时以及生成状态信息在生成控制器与生成代理之间通信时,使用此服务帐户。
SQL Server Reporting Services
TFSReports,可以是工作组中的本地帐户、域帐户或本地服务
允许在应用程序层服务器上和运行报表服务器上的 SQL Server Reporting Services
TFSWareHouseDataReader 的服务器上本地登录
此服务帐户从 Reporting Services 检索报表的数据。
Azure DevOps Server 代理
TFSProxy,可以是本地帐户、域帐户、工作组中的本地服务或域中的网络服务
作为服务登录
用于所有代理服务。 如果对此帐户使用域帐户,则必须是整个部署中所有计算机完全信任的域的成员。
测试代理和测试代理控制器
TFSTest:可以是域中的本地帐户、域帐户或网络服务。
作为服务登录
在测试代理控制器与测试代理之间通信有关测试的信息时使用。
在服务帐户下运行的服务
下表列出了在本地 Azure DevOps 部署中的服务帐户下运行的服务。
服务名称 | 服务帐户 | 逻辑层 |
---|---|---|
代码覆盖率服务 | TFSService | 应用程序层 |
Azure DevOps Server Web 服务 | TFSService | 应用程序层 |
SQL Server Reporting Services (如果使用命名实例,则为 MSSQLSERVER 或 InstanceName ) | 本地系统或域帐户 | 应用程序层 |
报告 Web 服务 | 本地系统、网络服务或域帐户 | 应用程序层 |
Visual Studio Team Foundation 生成服务主机(如果安装了 Team Foundation Build) | TFSBuild | 生成计算机 |
Visual Studio Team Foundation 后台作业代理 | TFSService | 应用程序层 |
Visual Studio Test Controller | TFSTest | 任何计算机 |
Visual Studio Test Agent | TFSTest | 测试计算机 |
Analysis Server (如果使用命名实例,则为 MSSQLSERVER 或 InstanceName ) | 本地系统或域帐户 | 数据层 |
SQL Server Browser | 本地服务或域帐户 | 数据层 |
SQL Server (如果使用命名实例,则为 MSSQLSERVER 或 InstanceName ) | 本地系统、网络服务或域帐户 | 数据层 |
SQL Server 代理 (如果使用命名实例,则为 MSSQLSERVER 或 InstanceName) | 本地系统、网络服务或域帐户 | 数据层 |
帐户服务(CollectionName) | 自动 | Web 层 (仅限 Azure DevOps Services) |
有关 SQL Server 的服务帐户的详细信息,请参阅Microsoft网站上的以下页面: SQL Server 联机丛书。 有关 Azure DevOps Server 服务帐户的最新信息,请参阅 安装和配置本地 Azure DevOps。
注意
如果更改 Team Foundation Build 的服务帐户,则必须确保新服务帐户是生成服务组的成员。 还必须确保帐户对临时文件夹和 ASP.NET 临时文件夹具有读/写权限。 同样,如果更改 Team Foundation Server 代理服务器的服务帐户,则必须确保该帐户是相应组的成员。 有关详细信息,请参阅 “配置生成系统”。
问题解答
问:服务帐户是否分配给访问级别组?
答: 默认情况下,服务帐户将添加到默认访问级别。 如果使利益干系人成为默认访问级别,则必须将 Azure DevOps Server 服务帐户添加到基本组或高级组。
问:服务帐户是否需要许可证?
答: 不是。 服务帐户不需要单独的许可证。
问:如何实现更改服务帐户的密码或帐户?
答: 请参阅 更改服务帐户或密码