管理服务连接

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

本文介绍 Azure Pipelines 中的服务连接。 服务连接是 Azure Pipelines 与用于在作业中执行任务的外部或远程服务之间的经过身份验证的连接。

例如,管道可能使用以下类别的服务连接:

  • Azure 订阅,用于 Azure 网站部署任务。
  • 不同的生成服务器或文件服务器,例如与 GitHub 存储库的标准 GitHub Enterprise Server 服务连接。
  • 联机持续集成环境,例如 Git 存储库的持续集成的 Jenkins 服务连接。
  • 远程计算机上安装的服务,例如使用托管服务标识的与 Azure 虚拟机的 Azure 资源管理器服务连接。
  • 外部服务,例如与 Docker 注册表、Kubernetes 群集或 Maven 存储库的服务连接。

本文的第一部分介绍如何创建、查看、编辑和使用服务连接。 本文的第二部分提供了对 Azure Pipelines 服务连接类型的引用。

先决条件

  • Azure DevOps 项目和管道。
  • 用于创建、查看、使用或管理服务连接的相应分配的用户角色。 有关详细信息,请参阅服务连接权限

创建服务连接

要为 Azure Pipelines 创建服务连接,请执行以下操作:

  1. 在 Azure DevOps 项目中,选择项目设置>服务连接

  2. 选择新建服务连接,选择所需的服务连接类型,然后选择下一步

  3. 选择身份验证方法,然后选择“下一步”。

  4. 输入服务连接的参数。 参数因服务连接类型和身份验证方法而异。

    根据服务连接类型和身份验证方法,可能存在指向验证连接的链接。 验证链接使用输入的信息对外部服务进行 REST 调用,并指示调用是否成功。

  5. 输入用于任务属性中的服务连接的服务连接名称

  6. (可选)输入说明

  7. 选择授予对所有管道的访问权限,以允许所有管道使用此连接。

    如果未选择此选项,则必须稍后显式地授权每个管道使用服务连接

  8. 选择保存验证并保存

以下示例显示了 Azure 资源管理器与 Azure 订阅的连接。 可以在管道任务中将服务连接名称 用作 MyAzureSubscription1 或等效的订阅名称值。

包含托管标识的“新建 Azure 服务连接”屏幕的屏幕截图。

要为 Azure Pipelines 创建服务连接,请执行以下操作:

  1. 在 Azure DevOps 项目中,选择项目设置>服务连接

  2. 选择新建服务连接,选择所需的服务连接类型,然后选择下一步

  3. 选择身份验证方法,然后选择“下一步”。

  4. 输入服务连接的参数。 参数因服务连接类型和身份验证方法而异。

    根据服务连接类型和身份验证方法,可能存在指向验证连接的链接。 验证链接使用输入的信息对外部服务进行 REST 调用,并指示调用是否成功。

  5. 输入用于任务属性中的服务连接的服务连接名称

  6. (可选)输入说明

  7. 选择授予对所有管道的访问权限,以允许所有管道使用此连接。

    如果未选择此选项,则必须稍后显式地授权每个管道使用服务连接

  8. 选择保存验证并保存

以下示例显示了 Azure 资源管理器与 Azure 订阅的连接。 可以在管道任务中将服务连接名称 用作 azureSubscription 或等效的订阅名称值。

新的 Azure 服务连接屏幕的屏幕截图。

查看服务连接

要查看有关服务连接的信息,请从项目选择项目设置>服务连接,然后选择要查看的服务连接。

  • 概述选项卡显示服务连接的详细信息,例如连接类型、创建者和身份验证类型。

    Azure 资源管理器概述页的屏幕截图。

  • 使用情况历史记录选项卡显示有关服务连接的历史使用情况的详细信息。

    Azure 资源管理器使用情况历史记录的屏幕截图。

  • 审批和检查选项卡显示允许管道阶段使用服务连接的审批和检查。 要添加审批和检查,请选择 + 符号或添加新项

    Azure 资源管理器审批和检查的屏幕截图。

编辑服务连接

  • 要编辑服务连接属性,请在服务连接页上选择编辑。 可以编辑的参数取决于服务连接类型和身份验证方法。

  • 还可以在更多选项菜单上选择安全性删除。 有关管理安全权限的详细信息,请参阅设置服务连接权限

  • 要编辑现有审批和检查,请从审批和检查选项卡上审批旁边的更多选项菜单中选择。

编辑 Azure 资源管理器服务连接的方法的屏幕截图。

使用服务连接

要在管道中使用服务连接,请执行以下操作:

  • 对于 YAML 管道,请将代码中的连接名称用作 azureSubscription 或其他连接名称值。

    YAML 服务连接设置的屏幕截图。

  • 对于经典管道,请在 Azure 订阅中选择连接名称,或在管道任务中选择其他连接名称设置。

    经典服务连接设置的屏幕截图。

授权管道

  • 要授权所有管道使用服务连接,请在连接属性中选择允许所有管道使用此连接选项。

  • 要授权单个管道使用服务连接,请执行以下操作:

    1. 在管道页上选择运行管道,以对手动生成进行排队。
    2. 此时将显示消息此管道需要访问资源的权限才能继续运行。 选择消息旁边的查看
    3. 正在等待审阅屏幕上,选择允许,然后在确认屏幕上再次选择允许

    此操作明确地将管道添加为服务连接的授权用户。

常见服务连接类型

默认情况下,Azure Pipelines 支持以下服务连接类型。 你也可以创建自己的自定义服务连接

服务连接类型 说明
Azure 经典 通过凭据或证书连接到 Azure 订阅。
Azure Repos/Team Foundation Server 连接到 DevOps 组织或集合中的 Azure Repos。
Azure Resource Manager 连接到 Azure 资源。
Azure 服务总线 连接到 Azure 服务总线队列。
Bitbucket 云 连接到 Bitbucket 云存储库。
Cargo 连接到 Cargo 包存储库。
Chef 连接到 Chef 存储库。
Docker 主机 连接到 Docker 主机。
Docker 注册表 通过 Docker Hub、Azure 容器注册表或其他源连接到 Docker 注册表。
常规 连接到通用服务器。
GitHub 连接到 GitHub 存储库。
GitHub Enterprise Server 连接到 GitHub Enterprise 存储库。
Incoming Webhook 连接到传入 Webhook。
Jenkins 连接到 Jenkins 服务器。
Jira 连接到 Jira 服务器。
Kubernetes 连接到 Kubernetes 群集。
Maven 连接到 Maven 存储库。
npm 连接到 npm 存储库。
NuGet 连接到 NuGet 服务器。
其他 Git 连接到 Git 存储库。
Python 包下载 连接到 Python 存储库进行下载。
Python 包上传 连接到 Python 存储库进行上传。
Service Fabric 连接到 Azure Service Fabric 群集。
SSH 通过 SSH 连接到主机。
Subversion 连接到 Apache Subversion 存储库。
Visual Studio App Center 连接到 Visual Studio App Center 服务器。

Azure 经典服务连接

使用以下参数,使用 Azure 凭据或 Azure 管理证书定义和保护与 Microsoft Azure 订阅的连接。

参数 说明
身份验证方法 必需。 选择“凭据”或“基于证书”。
环境 必需。 在定义订阅时,选择“Azure 云”、“Azure Stack”或其中一个预定义的 Azure 政府云
订阅 ID 必需。 Azure 订阅的类似于 GUID 的标识符(不是订阅名称)。 可以从 Azure 门户复制订阅 ID。
订阅名称 必需。 Microsoft Azure 订阅的名称。
用户名 凭据身份验证所必需的。 工作或学校帐户的用户名(例如 @fabrikam.com)。 不支持 Microsoft 帐户(例如 @live 或 @hotmail)。
密码 凭据身份验证所必需的。 指定的用户的密码。
管理证书 基于证书身份验证所必需的。 从发布设置 XML 文件或 Azure 门户复制管理证书密钥的值。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

对于证书身份验证,请选择验证以验证连接信息。

如果在 Azure 政府云中定义了订阅,请确保应用程序在配置服务连接之前满足相关的合规性要求。

Azure Repos

使用基本身份验证或基于令牌的身份验证连接到 Azure DevOps 组织或项目集合。 使用以下参数定义和保护与另一个 Azure DevOps 组织的连接。

参数 说明
身份验证方法 选择基于令牌基本身份验证。
连接 URL 必需。 DevOps 组织或项目集合的 URL。
用户名 基本身份验证所必需的。 要连接到服务的用户名。
密码 基本身份验证所必需的。 指定用户名的密码。
个人访问令牌 基于令牌的身份验证需要。 用于向服务进行身份验证的令牌。 了解详细信息
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

选择验证以验证连接信息。

有关详细信息,请参阅使用 Azure DevOps 的个人访问令牌对访问进行身份验证

Azure 资源管理器服务连接

有关创建与 Azure 资源管理器服务的服务连接的信息,请参阅使用 Azure 资源管理器服务连接连接到 Azure

Azure 服务总线服务连接

为了增强安全性,请使用发布到 Azure 服务总线 v2 任务而不是 Azure 服务总线服务连接,将消息发送到 Azure 服务总线。 此版本的任务支持 Microsoft Entra ID 和工作负载联合身份验证。

Bitbucket 云服务连接

将 OAuth 与授予授权结合使用或者将用户名和密码与基本身份验证结合使用,以定义与 Bitbucket 云的连接。 要使管道正常工作,存储库访问必须保持活动状态。

参数 说明
身份验证方法 选择授予权限基本身份验证
OAuth 配置 需要授予权限。 与 Bitbucket 的 OAuth 连接。
用户名 基本身份验证所必需的。 要连接到服务的用户名。
密码 基本身份验证所必需的。 指定用户名的密码。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

选择验证授权以验证连接信息。

Cargo 服务连接

使用以下参数定义和保护与 Cargo 项目存储库的连接。

参数 说明
身份验证方法 选择项目存储库的身份验证方法:基本用户名/密码(包括 Azure DevOps PAT)授权值(包括 crates.io 令牌)
存储库 URL 必需。 存储库的 URL。 对于 crates.io,请使用 https://crates.io
用户名 选择“基本身份验证”时是必需的。 用于连接到终结点的用户名。 如果使用个人访问令牌或授权值身份验证方法,则该值可以是任意值。
密码 选择“基本身份验证”时是必需的。 用于连接到终结点的密码。 个人访问令牌适用于 Azure DevOps Services 组织。
令牌 选择授权值身份验证时是必需的。
服务连接名称 服务连接的名称
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

Chef 服务连接

使用以下参数定义和保护与 Chef 自动化服务器的连接。

参数 说明
服务器 URL 必需。 Chef 自动化服务器的 URL。
节点名称(用户名) 必需。 要连接到的节点的名称。 通常,此参数是你的用户名。
客户端密钥 必需。 Chef .pem 文件中指定的密钥。
服务连接名称 服务连接的名称
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

Docker 主机服务连接

使用以下参数定义和保护与 Docker 主机的连接。

参数 说明
服务器 URL 必需。 Docker 主机的 URL。
CA 证书 必需。 用于向主机进行身份验证的受信任的证书颁发机构证书。
证书 必需。 用于向主机进行身份验证的客户端证书。
密钥 必需。 Docker key.pem 文件中指定的密钥。
服务连接名称 服务连接的名称
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

有关保护与 Docker 主机的连接的详细信息,请参阅保护 Docker 守护程序套接字

Docker 注册表服务连接

您可以创建与 Docker 容器注册表的服务连接。

选择注册表类型:

Docker Hub 或其他

输入以下参数以定义与 Docker Hub 注册表或其他的连接。

参数 说明
Docker 注册表 必需。 Docker 注册表的 URL。
Docker ID 必需。 Docker 帐户用户的标识符。
Docker 密码 必需。 Docker ID 的密码。 (Docker Hub 需要 PAT 而不是密码。)
电子邮件 可选。 要用于接收通知的电子邮件地址。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

在输入其余参数之前,可以选择验证来验证凭据。

Azure 容器注册表

Azure 容器注册表在 Azure DevOps 服务器中不可用。

可以使用服务主体托管标识工作负载联合身份验证身份验证类型连接到 Azure 容器注册表。

服务主体身份验证类型

输入以下参数,以使用服务主体定义与 Azure 容器注册表的连接。

参数 说明
订阅 必需。 包含要用于创建服务连接的容器注册表的 Azure 订阅。
Azure 容器注册表 必需。 用于创建服务连接的 Azure 容器注册表。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。
托管标识身份验证类型

输入以下参数,以使用托管服务标识定义与 Azure 容器注册表的连接。

参数 说明
订阅 ID 必需。 Azure 订阅的类似于 GUID 的标识符(不是订阅名称)。 可以从 Azure 门户复制订阅 ID。
订阅名称 必需。 Microsoft Azure 订阅的名称。
租户 ID 必需。 Microsoft Entra ID 租户的类似的 GUID 标识符。 可以从 Azure 门户复制租户 ID。
Azure 容器注册表登录服务器 必需。 Azure 容器注册表的登录服务器。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。
工作负载联合身份验证身份验证类型

输入以下参数,以使用工作负载联合身份验证定义与 Azure 容器注册表的连接。

参数 说明
订阅 必需。 包含要用于创建服务连接的容器注册表的 Azure 订阅。
Azure 容器注册表 必需。 用于创建服务连接的 Azure 容器注册表实例。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 对于 YAML 管道,请使用名称作为脚本中的 azureSubscription 或其他连接名称值。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

通用服务连接

使用以下参数定义和保护与任何通用类型的服务或应用程序的连接。

参数 说明
服务器 URL 必需。 服务的 URL。
用户名 可选。 要连接到服务的用户名。
密码/令牌密钥 可选。 指定用户名的密码或访问令牌。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

GitHub 服务连接

使用以下参数定义与 GitHub 存储库的连接。

提示

其他 Git 服务器GitHub Enterprise Server 连接有特定的服务连接。

参数 说明
选择授权 必需。 “授予授权”或“个人访问令牌”。
令牌 个人访问令牌授权所必需的。 GitHub 个人访问令牌 (PAT)。
授予权限 需要授予权限。 用于连接到服务的 OAuth 配置。 例如,选择 AzurePipelines 以连接 Azure Pipeline。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

注意

如果为“选择授权”选项选择“授予授权”,对话框将显示一个“授权”按钮,用于打开 GitHub 签名页。 如果选择“个人访问令牌”,请将其粘贴到“令牌”文本框中。 此对话框显示令牌的建议范围:repo、user、admin:repo_hook。 有关详细信息,请参阅创建供命令行使用的访问令牌。然后,完成以下步骤以在你的配置文件中注册 GitHub 帐户。

  1. 从 Azure Pipelines 页面标题右侧的帐户名称打开你的“用户设置”。
  2. 选择“个人访问令牌”。
  3. 选择“添加”,然后输入创建令牌所需的信息。

有关详细信息,请参阅项目源 - 版本控制

GitHub Enterprise Server 服务连接

使用以下参数定义与 GitHub Enterprise 存储库的连接。

提示

其他 Git 服务器标准 GitHub 服务连接有特定的服务连接。

参数 说明
选择授权 必需。 个人访问令牌用户名和密码OAuth2
服务器 URL 必需。 服务的 URL。
接受不信任的 TLS/SSL 证书 设置此选项以允许客户端接受自签名证书,而不是在 Azure Pipelines 服务角色或托管代理的计算机中安装证书。
令牌 个人访问令牌授权所必需的。
用户名 用户名和密码身份验证所必需的。 要连接到服务的用户名。
密码 用户名和密码身份验证所必需的。 指定用户名的密码。
OAuth 配置 OAuth2 授权所必需的。 可以使用现有的 OAuth 配置或创建新的配置。
GitHub Enterprise Server 配置 URL URL 是从 OAuth 配置中提取的。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

注意

如果选择“个人访问令牌”(PAT),则必须将 PAT 粘贴到“令牌”文本框中。 此对话框显示令牌的建议范围:repo、user、admin:repo_hook。 有关详细信息,请参阅创建供命令行使用的访问令牌。然后,完成以下步骤以在你的配置文件中注册 GitHub 帐户。

  1. 从 Azure Pipelines 页面标题右侧的帐户名称打开你的“用户设置”。
  2. 选择“个人访问令牌”。
  3. 选择“添加”,然后输入创建令牌所需的信息。

传入 WebHook 服务连接

使用以下参数创建传入 Webhook 服务连接。

参数 说明
WebHook 名称 必需。 WebHook 的名称。
机密 可选。 用于通过 WebHook 进行身份验证的机密。
HTTP 标头 可选。 发送校验和的标头名称。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

Jenkins 服务连接

使用以下参数定义与 Jenkins 服务的连接。

参数 说明
服务器 URL 必需。 Jenkins 服务器的 URL。
接受不信任的 TLS/SSL 证书 设置此选项以允许客户端接受自签名证书,而不是在 Azure Pipelines 服务角色或托管代理的计算机中安装证书。
用户名 必需。 要连接到服务的用户名。
密码 必需。 指定用户名的密码。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

在输入其余参数之前,可以选择验证来验证凭据。

有关详细信息,请参阅 Azure Pipelines 与 Jenkins 的集成项目源 - Jenkins

Jira 服务连接

使用以下参数定义与 Jira 服务的连接。

参数 说明
服务器 URL 必需。 Jira 服务器的 URL。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

Kubernetes 服务连接

使用以下参数定义与 Kubernetes 群集的连接。 从以下选项中选择身份验证方法

  • Kubeconfig
  • 服务帐户
  • Azure 订阅

Kubeconfig 选项

参数 说明
Kubeconfig 必需。 kubeconfig 文件的内容。
群集上下文 可选。 用于标识群集的 kubeconfig 文件中的上下文。
Accept untrusted certificates 设置此选项以允许客户端接受自签名证书。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

服务帐户选项

参数 说明
服务器 URL 必需。 群集的 API 服务器 URL。
机密 与要用于部署的服务帐户关联的机密。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

使用以下命令提取服务器 URL。

kubectl config view --minify -o 'jsonpath={.clusters[0].cluster.server}'

使用以下命令序列提取与群集连接和进行身份验证所需的 Secret 对象。

kubectl get serviceAccounts <service-account-name> -n <namespace> -o 'jsonpath={.secrets[*].name}'

在以下命令中,将 service-account-secret-name 替换为上一个命令的输出。

kubectl get secret <service-account-secret-name> -n <namespace> -o json

复制以 YAML 格式提取的 Secret 对象并粘贴到 Secret 文本字段中。

注意

使用服务帐户选项时,请确保存在 RoleBinding,它用于将 edit ClusterRole 中的权限授予所需的服务帐户。 必须存在此项,Azure Pipelines 才能使用服务帐户在所选命名空间中创建对象。

Azure 订阅选项

参数 描述
Azure 订阅 必需。 包含要用于创建服务连接的群集的 Azure 订阅。
群集 Azure Kubernetes 服务群集的名称。
命名空间 群集中的命名空间。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

对于启用了 Azure RBAC 的群集,会在所选命名空间中创建 ServiceAccount,同时创建 RoleBinding 对象,以便创建的 ServiceAccount 只能在所选命名空间上执行操作。

对于禁用了 Azure RBAC 的群集,会在所选命名空间中创建 ServiceAccount,但创建的 ServiceAccount 具有群集范围的特权(跨命名空间)。

注意

此选项列出服务连接创建者有权跨不同 Azure 租户访问的所有订阅。 如果看不到其他 Azure 租户中的订阅,请检查你在这些租户中的 Microsoft Entra 权限。

Maven 服务连接

使用以下参数定义和保护与 Maven 存储库的连接。

参数 说明
身份验证方法 必需。 选择用户名和密码身份验证令牌
注册表 URL 必需。 Maven 存储库的 URL。
注册表 ID 必需。 与 Maven 尝试连接到的存储库/镜像的 ID 元素匹配的服务器 ID。
用户名 当连接类型为“用户名和密码”时是必需的。 用于进行身份验证的用户名。
密码 当连接类型为“用户名和密码”时是必需的。 对应于用户名的密码。
个人访问令牌 当连接类型为“身份验证令牌”时是必需的。 用于向服务进行身份验证的令牌。 了解详细信息
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

npm 服务连接

使用以下参数定义和保护与 npm 服务器的连接。

参数 说明
身份验证方法 必需。 选择用户名和密码身份验证令牌
注册表 URL 必需。 Maven 存储库的 URL。
用户名 当连接类型为“用户名和密码”时是必需的。 用于进行身份验证的用户名。
密码 当连接类型为“用户名和密码”时是必需的。 对应于用户名的密码。
个人访问令牌 已选择所需的身份验证令牌。 用于向服务或注册表进行身份验证的个人访问令牌 (PAT)。 PAT 适用于支持它们的存储库,例如 https://registry.npmjs.org DevOps Services 组织或 Azure DevOps Server。 有关详细信息,请参阅使用个人访问令牌
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

NuGet 服务连接

使用以下参数定义和保护与 NuGet 服务器的连接。

参数 说明
身份验证方法 必需。 选择 ApiKey外部 Azure Pipelines基本身份验证
源 URL 必需。 NuGet 服务器的 URL。
ApiKey 当连接类型为“ApiKey”时是必需的。 身份验证密钥。
个人访问令牌 当连接类型为“外部 Azure Pipelines”时是必需的。 用于在其他 Azure 服务组织或 Azure DevOps Server 上使用 NuGet 源进行身份验证的令牌。 该服务。 有关详细信息,请参阅使用个人访问令牌
用户名 当连接类型为“基本身份验证”时是必需的。 用于进行身份验证的用户名。
密码 当连接类型为“基本身份验证”时是必需的。 对应于用户名的密码。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

要配置 NuGet,使其向 Azure Artifacts 和其他 NuGet 存储库进行身份验证,请参阅 NuGet 身份验证

“其他 Git”服务连接

使用以下参数定义和保护与外部 Git 存储库服务器的连接。 GitHubGitHub Enterprise Server 有特定的服务连接。

参数 说明
Git 存储库 URL 必需。 Git 存储库服务器的 URL。
尝试从 Azure Pipelines 访问此 Git 服务器 选中后,Azure Pipelines 会尝试在将管道运行排入队列之前连接到存储库。 可以禁用此设置,以在使用不可公开访问的存储库时提高性能。 当其他 Git 存储库不可公开访问时,CI 触发器不起作用。 只能启动手动或计划的管道运行。
用户名 可选。 用于连接到 Git 存储库服务器的用户名。
密码/令牌 可选。 指定用户名的密码或访问令牌。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

有关详细信息,请参阅项目源

Python 包下载服务连接

使用以下参数定义和保护与 Python 存储库的连接以下载 Python 包。

参数 说明
身份验证方法 必需。 选择用户名和密码身份验证令牌
用于下载的 Python 存储库 URL 必需。 Python 源的 URL。
个人访问令牌 当连接类型为“身份验证令牌”时是必需的。 用于向支持它们和 DevOps Services 组织的 Python 源进行身份验证的个人访问令牌 (PAT)。 有关详细信息,请参阅使用个人访问令牌
用户名 当连接类型为“用户名和密码”时是必需的。 用于进行身份验证的用户名。
密码 当连接类型为“用户名和密码”时是必需的。 对应于用户名的密码。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

Python 包上传服务连接

使用以下参数定义和保护与 Python 存储库的连接以上传 Python 包。

参数 说明
身份验证方法 必需。 选择用户名和密码身份验证令牌
用于上传的 Python 存储库 URL 必需。 Python 源的 URL。
EndpointName 必需。 用于 twine 上传的唯一存储库。 不允许使用空格和特殊字符。
个人访问令牌 请参阅使用个人访问令牌
用户名 当连接类型为“用户名和密码”时是必需的。 用于进行身份验证的用户名。
密码 当连接类型为“用户名和密码”时是必需的。 对应于用户名的密码。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

Service Fabric 服务连接

创建与 Service Fabric 群集的服务连接时,有三个选项用于身份验证方法:基于证书Microsoft Entra 凭据使用 gMSA 的 Windows 安全性

基于证书的身份验证选项

参数 说明
群集终结点 必需。 群集的客户端连接终结点。 使用 tcp:// 为值添加前缀。 此值将替代发布配置文件。
服务器证书查找 当连接类型为基于证书Microsoft Entra 凭据时,请选择指纹通用名称
服务器证书指纹 当连接类型为基于证书Microsoft Entra 凭据,且服务器证书查找指纹时,此项为必填项。 用于验证群集标识的群集证书的指纹。 此值将替代发布配置文件。 用逗号 (',') 分隔多个指纹
客户端证书 当连接类型为“基于证书”时是必需的。 群集客户端证书文件的 Base64 编码。 可以使用以下 PowerShell 脚本对证书进行编码:[System.Convert]::ToBase64String([System.IO.File]::ReadAllBytes("C:\path\to\certificate.pfx"))
用户名 当连接类型是 Microsoft Entra 凭据时是必需的。 用于进行身份验证的用户名。
密码 当连接类型是 Microsoft Entra 凭据时是必需的。 当身份验证方法为基于证书时,为可选。 证书密码。
不安全 可选。 选择此选项可跳过 Windows 安全身份验证。
群集 SPN 可选。 如果已选择“不安全”,则适用。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

Microsoft Entra 凭据身份验证选项

参数 说明
群集终结点 必需。 群集的客户端连接终结点。 使用 tcp:// 为值添加前缀。 此值将替代发布配置文件。
服务器证书查找 选择指纹通用名称
服务器证书指纹 当连接类型为基于证书Microsoft Entra 凭据,且服务器证书查找指纹时,此项为必填项。 用于验证群集标识的群集证书的指纹。 此值将替代发布配置文件。 用逗号 (',') 分隔多个指纹
服务器证书通用名称 当服务器证书查找为通用名称时是必需的。 用于验证群集标识的群集证书的通用名称。 此值将替代发布配置文件。 用逗号 (',') 分隔多个通用名称
客户端证书 当连接类型为“基于证书”时是必需的。 群集客户端证书文件的 Base64 编码。 可以使用以下 PowerShell 脚本对证书进行编码:[System.Convert]::ToBase64String([System.IO.File]::ReadAllBytes("C:\path\to\certificate.pfx"))
密码 当连接类型是 Microsoft Entra 凭据时是必需的。 当身份验证方法为基于证书时,为可选。 证书密码。
不安全 可选。 选择此选项可跳过 Windows 安全身份验证。
群集 SPN 可选。 如果已选择“不安全”,则适用。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

使用 gMSA 身份验证的 Windows 安全性选项

参数 说明
群集终结点 必需。 群集的客户端连接终结点。 使用 tcp:// 为值添加前缀。 此值将替代发布配置文件。
不安全 可选。 选择此选项可跳过 Windows 安全身份验证。
群集 SPN 可选。 gMSA 帐户的完全限定域 SPN。 仅当禁用不安全选项时,此参数才适用。 有关在群集中使用 gMSA 的详细信息,请参阅使用 gMSA 配置 Windows 安全性
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

SSH 服务连接

使用以下参数定义和保护使用安全外壳 (SSH) 的与远程主机的连接。

参数 说明
主机名 必需。 远程主机的名称或 IP 地址。
端口号 必需。 远程主机的端口号。 默认端口为 22。
私钥 如果使用此类型的身份验证,则是私钥文件的全部内容。
用户名 必需。 连接到远程主机时要使用的用户名。
密码/通行短语 如果使用密钥对作为凭据,则指定用户名的密码。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

有关详细信息,请参阅 SSH 任务通过 SSH 复制文件

Subversion 服务连接

使用以下参数定义和保护与 Subversion 存储库的连接。

参数 说明
Subversion 存储库 URL 必需。 Subversion 存储库的 URL。
接受不信任的 TLS/SSL 证书 选择此选项可允许 SVN 客户端接受自签名 SSL 服务器证书,而无需将其安装到 Azure DevOps 服务角色并生成代理计算机。
领域名称 如果 Subversion 的服务连接是外部的,则为必需。 如果在生成或发布管道中使用多个凭据,请使用此参数指定包含为服务连接指定的凭据的领域。
用户名 必需。 要连接到服务的用户名。
密码 必需。 指定用户名的密码。
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

可以通过多种方式找到领域名称:

  • 如果通过 HTTP 或 HTTPS 访问存储库:在没有保存凭据的情况下在 Web 浏览器中打开存储库。 它在身份验证对话框中使用领域名称。

  • 使用 svn 命令行。 如果存储了凭据,请运行例如 svn info https://svnserver/repo。 当要求你输入密码时,将显示领域名称。

  • 如果你存储了访问存储库的凭据,请在用户配置文件的 Subversion 身份验证缓存部分的其中一个文件中查找领域名称。 例如,~/.subversion/auth/svn/simpleC:\Users\yourname\Application Data\Subversion\auth\svn.simple

Visual Studio App Center 服务连接

使用以下参数定义和保护与 Visual Studio App Center 的连接。

参数 说明
服务器 URL 必需。 App Center 服务的 URL。
API 令牌 必需。 用于向服务进行身份验证的令牌。 有关详细信息,请参阅 API 文档
连接名称 必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
说明 可选。 服务连接的说明。
安全性 可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。

其他服务连接的扩展

其他服务连接类型和任务可以作为扩展安装。 请参阅以下通过扩展提供的服务连接示例:

  • System Center Virtual Machine Manager (SCVMM) 集成。 连接到 SCVMM 服务器以预配虚拟机,并对其执行以下操作:

    • 管理检查点
    • 启动和停止虚拟机 (VM)
    • 运行 PowerShell 脚本
  • VMware 资源部署. 从 Visual Studio Team Services 或 Team Foundation Server 连接到 VMware vCenter Server,以预配、启动、停止或快照 VMware 虚拟机。

  • Power Platform Build Tools。 使用 Microsoft Power Platform Build Tools 自动执行与基于 Microsoft Power Platform 构建的应用相关的常见生成和部署任务。 安装该扩展后,Power Platform 服务连接类型具有以下属性。

    参数 说明
    连接名称 必需。 在任务属性中引用此服务连接时将使用的名称。
    服务器 URL 必需。 Power Platform 实例的 URL。 示例:https://contoso.crm4.dynamics.com
    租户 ID 必需。 要向其进行身份验证的租户 ID(在 Azure 门户中也称为目录 ID)。 有关显示租户 ID 并配置应用程序 ID 和关联的客户端密码的脚本,请参阅 https://aka.ms/buildtools-spn。 还必须在 CDS 中创建应用程序用户
    应用程序 ID 必需。 进行身份验证要使用的 Azure 应用程序 ID。
    应用程序 ID 的客户端密码 必需。 与上述应用程序 ID 关联的服务主体的客户端密码,用于证明标识。

你也可以创建自己的自定义服务连接

帮助和支持