使用服务主体注册代理

代理版本 3.227.1 开始,可以使用服务主体注册代理,方法如下:将 SP 指定为代理身份验证选项。

授予服务主体对代理池的访问权限

在使用服务主体注册代理之前,必须已创建服务主体 并向其授予访问代理池的权限。

重要

只有代理池管理员、Azure DevOps 组织所有者TFS 或 Azure DevOps Server 管理员才能授予服务主体对代理池的访问权限。

如果代理是部署组代理,则你必须是部署组管理员、Azure DevOps 组织所有者TFS 或 Azure DevOps Server 管理员

  1. 打开浏览器并导航到 Azure Pipelines 组织的“代理池”选项卡。

    1. (https://dev.azure.com/{yourorganization}) 登录到组织。

    2. 选择“Azure DevOps”、“组织设置”。

      选择组织设置。

    3. 选择“代理池”。

      “选择代理池”选项卡。

  2. 在页面右侧选择需要的代理池,然后选择“安全性”。 选择“添加”,然后添加拥有“管理员”角色的服务主体。

    代理池安全性选项卡的屏幕截图。

  3. 如果未显示要使用的服务主体,请让管理员添加该服务主体,并授予该服务主体对相应代理池的管理员角色。 管理员可以是代理池管理员、Azure DevOps 组织所有者TFS 或 Azure DevOps Server 管理员

    如果是部署组代理,管理员可以是部署组管理员、Azure DevOps 组织所有者TFS 或 Azure DevOps Server 管理员

    可以在 Azure Pipelines 的“部署组”页上的“安全性”选项卡中将服务主体添加到部署组管理员角色。

注意

如果看到如下消息:“很抱歉,无法添加标识。请尝试其他标识。”或者“无法修改自身标识角色。请尝试其他标识。”,则表明你可能已执行了上文中针对组织所有者、TFS 或 Azure DevOps Server 管理员的步骤。 无需执行任何操作;你已拥有管理代理池的权限。

如果要使用项目设置代理池将服务主体添加到代理池安全组,则必须首先将服务主体添加为具有基本访问级别(推荐)或更高权限的组织用户。

使用服务主体注册代理

  1. 在配置代理时,根据系统提示,指定 SP 为身份验证类型,以便在代理注册期间使用服务主体进行身份验证。

  2. 出现提示时,请提供 客户端 (应用) ID租户 ID

    应用程序 ID 的屏幕截图。

  3. 指定客户端密码。 客户端密码仅在代理注册期间使用。

    客户端密码的屏幕截图。

  4. 指定针对其为服务主体授予管理员权限的代理池的名称,并继续执行代理注册步骤。

有关将服务主体与 Azure DevOps 配合使用的详细信息,请参阅使用服务主体和托管标识

注意

如果要使用服务主体(在 Azure 公有云中)将代理从 Azure 中国云配置到 Azure 公有云中的 Azure DevOps 组织,则可能会收到以下错误:

ClientSecretCredential authentication failed: AADSTS90002: Tenant 'xxxxxxxxxxxxxx' not found. Check to make sure you have the correct tenant ID and are signing into the correct cloud. Check with your subscription administrator, this may happen if there are no active subscriptions for the tenant.

若要解决此错误,请将环境变量 $AZURE_AUTHORITY_HOST 设置为 https://login.microsoftonline.com,将登录 URL 设置为 Azure 公共云登录,然后运行代理 config.cmd。

有关详细信息,请参阅 Azure 中国开发人员指南代理注册选项帮助EnvironmentCredentialClass