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 创建服务连接,请执行以下操作:
在 Azure DevOps 项目中,选择
项目设置
>
服务连接
。
选择
新建服务连接
,选择所需的服务连接类型,然后选择
下一步
。
选择身份验证方法,然后选择“下一步”。
输入服务连接的参数。 参数因
服务连接类型
和身份验证方法而异。
根据服务连接类型和身份验证方法,可能存在指向
验证
连接的链接。 验证链接使用输入的信息对外部服务进行 REST 调用,并指示调用是否成功。
输入用于任务属性中的服务连接的
服务连接名称
。
(可选)输入
说明
。
选择
授予对所有管道的访问权限
,以允许所有管道使用此连接。
如果未选择此选项,则必须稍后显式地
授权每个管道使用服务连接
。
选择
保存
或
验证并保存
。
以下示例显示了 Azure 资源管理器与 Azure 订阅的连接。 可以在管道任务中将
服务连接名称
用作
azureSubscription
或等效的订阅名称值。
查看服务连接
要查看有关服务连接的信息,请从项目选择
项目设置
>
服务连接
,然后选择要查看的服务连接。
概述
选项卡显示服务连接的详细信息,例如连接类型、创建者和身份验证类型。
使用情况历史记录
选项卡显示有关服务连接的历史使用情况的详细信息。
审批和检查
选项卡显示允许管道阶段使用服务连接的
审批和检查
。 要添加审批和检查,请选择
+
符号或
添加新项
。
要编辑服务连接属性,请在服务连接页上选择
编辑
。 可以编辑的参数取决于服务连接类型和身份验证方法。
还可以在
更多选项
菜单上选择
安全性
或
删除
。 有关管理安全权限的详细信息,请参阅
设置服务连接权限
。
要编辑现有审批和检查,请从
审批和检查
选项卡上审批旁边的
更多选项
菜单中选择。
在管道页上选择
运行管道
,以对手动生成进行排队。
此时将显示消息
此管道需要访问资源的权限才能继续运行
。 选择消息旁边的
查看
。
在
正在等待审阅
屏幕上,选择
允许
,然后在确认屏幕上再次选择
允许
。
此操作明确地将管道添加为服务连接的授权用户。
常见服务连接类型
默认情况下,Azure Pipelines 支持以下服务连接类型。 你也可以创建自己的
自定义服务连接
。
服务连接类型
如果在
Azure 政府云
中定义了订阅,请确保应用程序在配置服务连接之前满足相关的合规性要求。
Azure Repos
使用基本身份验证或基于令牌的身份验证连接到 Azure DevOps 组织或项目集合。
使用以下参数定义和保护与另一个 Azure DevOps 组织的连接。
有关详细信息,请参阅
使用 Azure DevOps 的个人访问令牌对访问进行身份验证
。
Azure 资源管理器服务连接
有关创建与 Azure 资源管理器服务的服务连接的信息,请参阅
使用 Azure 资源管理器服务连接连接到 Azure
。
Azure 服务总线服务连接
为了增强安全性,请使用
发布到 Azure 服务总线 v2 任务
而不是 Azure 服务总线服务连接,将消息发送到 Azure 服务总线。 此版本的任务支持 Entra ID 和工作负载联合身份验证。
Bitbucket 云服务连接
将 OAuth 与
授予授权
结合使用或者将用户名和密码与
基本身份验证
结合使用,以定义与 Bitbucket 云的连接。 要使管道正常工作,存储库访问必须保持活动状态。
如果为“选择授权”选项选择“授予授权”,对话框将显示一个“授权”按钮,用于打开 GitHub 签名页。
如果选择“个人访问令牌”,请将其粘贴到“令牌”文本框中。
此对话框显示令牌的建议范围:
repo、user、admin:repo_hook
。 有关详细信息,请参阅
创建供命令行使用的访问令牌
。然后,完成以下步骤以在你的配置文件中注册 GitHub 帐户。
从 Azure Pipelines 页面标题右侧的帐户名称打开你的“
用户设置
”。
选择“
个人访问令牌
”。
选择“添加”,然后输入创建令牌所需的信息。
有关详细信息,请参阅
项目源 - 版本控制
。
GitHub Enterprise Server 服务连接
使用以下参数定义与 GitHub Enterprise 存储库的连接。
其他 Git 服务器
和
标准 GitHub 服务连接
有特定的服务连接。
如果选择“个人访问令牌”(PAT),则必须将 PAT 粘贴到“令牌”文本框中。
此对话框显示令牌的建议范围:
repo、user、admin:repo_hook
。 有关详细信息,请参阅
创建供命令行使用的访问令牌
。然后,完成以下步骤以在你的配置文件中注册 GitHub 帐户。
从 Azure Pipelines 页面标题右侧的帐户名称打开你的“
用户设置
”。
选择“
个人访问令牌
”。
选择“添加”,然后输入创建令牌所需的信息。
传入 WebHook 服务连接
使用以下参数创建传入 Webhook 服务连接。
在输入其余参数之前,可以选择
验证
来验证凭据。
有关详细信息,请参阅
Azure Pipelines 与 Jenkins 的集成
和
项目源 - Jenkins
。
Jira 服务连接
使用以下参数定义与 Jira 服务的连接。
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 RBAC 的群集,会在所选命名空间中创建 ServiceAccount,同时创建 RoleBinding 对象,以便创建的 ServiceAccount 只能在所选命名空间上执行操作。
对于禁用了 Azure RBAC 的群集,会在所选命名空间中创建 ServiceAccount,但创建的 ServiceAccount 具有群集范围的特权(跨命名空间)。
此选项列出服务连接创建者有权跨不同 Azure 租户访问的所有订阅。 如果看不到其他 Azure 租户中的订阅,请检查你在这些租户中的 Microsoft Entra 权限。
Maven 服务连接
使用以下参数定义和保护与 Maven 存储库的连接。
个人访问令牌
已选择所需的身份验证令牌。 用于向服务或注册表进行身份验证的个人访问令牌 (PAT)。 PAT 适用于支持它们的存储库,例如 https://registry.npmjs.org DevOps Services 组织或 Azure DevOps Server。 有关详细信息,请参阅使用个人访问令牌。
必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
可选。 服务连接的说明。
可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。
NuGet 服务连接
使用以下参数定义和保护与 NuGet 服务器的连接。
个人访问令牌
当连接类型为“外部 Azure Pipelines”时是必需的。 用于在其他 Azure 服务组织或 Azure DevOps Server 上使用 NuGet 源进行身份验证的令牌。 该服务。 有关详细信息,请参阅使用个人访问令牌。
当连接类型为“基本身份验证”时是必需的。 用于进行身份验证的用户名。
当连接类型为“基本身份验证”时是必需的。 对应于用户名的密码。
必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
可选。 服务连接的说明。
可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。
要配置 NuGet,使其向 Azure Artifacts 和其他 NuGet 存储库进行身份验证,请参阅 NuGet 身份验证。
“其他 Git”服务连接
使用以下参数定义和保护与外部 Git 存储库服务器的连接。
GitHub 和 GitHub Enterprise Server 有特定的服务连接。
尝试从 Azure Pipelines 访问此 Git 服务器
选中后,Azure Pipelines 会尝试在将管道运行排入队列之前连接到存储库。 可以禁用此设置,以在使用不可公开访问的存储库时提高性能。 当其他 Git 存储库不可公开访问时,CI 触发器不起作用。 只能启动手动或计划的管道运行。
可选。 用于连接到 Git 存储库服务器的用户名。
密码/令牌
可选。 指定用户名的密码或访问令牌。
必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
可选。 服务连接的说明。
可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。
有关详细信息,请参阅项目源。
Python 包下载服务连接
使用以下参数定义和保护与 Python 存储库的连接以下载 Python 包。
个人访问令牌
当连接类型为“身份验证令牌”时是必需的。 用于向支持它们和 DevOps Services 组织的 Python 源进行身份验证的个人访问令牌 (PAT)。 有关详细信息,请参阅使用个人访问令牌。
当连接类型为“用户名和密码”时是必需的。 用于进行身份验证的用户名。
当连接类型为“用户名和密码”时是必需的。 对应于用户名的密码。
必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
可选。 服务连接的说明。
可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。
Python 包上传服务连接
使用以下参数定义和保护与 Python 存储库的连接以上传 Python 包。
Service Fabric 服务连接
创建与 Service Fabric 群集的服务连接时,有三个选项用于身份验证方法:基于证书、Microsoft Entra 凭据或使用 gMSA 的 Windows 安全性。
基于证书的身份验证选项
服务器证书指纹
当连接类型为基于证书或 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 凭据身份验证选项
服务器证书指纹
当连接类型为基于证书或 Microsoft Entra 凭据,且服务器证书查找为指纹时,此项为必填项。 用于验证群集标识的群集证书的指纹。 此值将替代发布配置文件。 用逗号 (',') 分隔多个指纹
服务器证书通用名称
当服务器证书查找为通用名称时是必需的。 用于验证群集标识的群集证书的通用名称。 此值将替代发布配置文件。 用逗号 (',') 分隔多个通用名称
客户端证书
当连接类型为“基于证书”时是必需的。 群集客户端证书文件的 Base64 编码。 可以使用以下 PowerShell 脚本对证书进行编码:[System.Convert]::ToBase64String([System.IO.File]::ReadAllBytes("C:\path\to\certificate.pfx"))
当连接类型是 Microsoft Entra 凭据时是必需的。 当身份验证方法为基于证书时,为可选。 证书密码。
可选。 选择此选项可跳过 Windows 安全身份验证。
群集 SPN
可选。 如果已选择“不安全”,则适用。
必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
可选。 服务连接的说明。
可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。
使用 gMSA 身份验证的 Windows 安全性选项
群集 SPN
可选。 gMSA 帐户的完全限定域 SPN。 仅当禁用不安全选项时,此参数才适用。 有关在群集中使用 gMSA 的详细信息,请参阅使用 gMSA 配置 Windows 安全性
必需。 在任务属性中引用此服务连接时使用的名称。 如果你正在使用 YAML,请在脚本中使用 azureSubscription 或等效的订阅名称值作为名称。
可选。 服务连接的说明。
可选。 选择授予对所有管道的访问权限,以允许所有管道使用此连接。 如果未选择此选项,则必须为使用它的每个管道显式地授权服务连接。
SSH 服务连接
使用以下参数定义和保护使用安全外壳 (SSH) 的与远程主机的连接。
如果通过 HTTP 或 HTTPS 访问存储库:在没有保存凭据的情况下在 Web 浏览器中打开存储库。 它在身份验证对话框中使用领域名称。
使用 svn 命令行。 如果存储了凭据,请运行例如 svn info https://svnserver/repo
。 当要求你输入密码时,将显示领域名称。
如果你存储了访问存储库的凭据,请在用户配置文件的 Subversion 身份验证缓存部分的其中一个文件中查找领域名称。 例如,~/.subversion/auth/svn/simple 或 C:\Users\yourname\Application Data\Subversion\auth\svn.simple。
Visual Studio App Center 服务连接
使用以下参数定义和保护与 Visual Studio App Center 的连接。
其他服务连接类型和任务可以作为扩展安装。 请参阅以下通过扩展提供的服务连接示例:
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 服务连接类型具有以下属性。
租户 ID
必需。 要向其进行身份验证的租户 ID(在 Azure 门户中也称为目录 ID)。 有关显示租户 ID 并配置应用程序 ID 和关联的客户端密码的脚本,请参阅 https://aka.ms/buildtools-spn。 还必须在 CDS 中创建应用程序用户
应用程序 ID
必需。 进行身份验证要使用的 Azure 应用程序 ID。
应用程序 ID 的客户端密码
必需。 与上述应用程序 ID 关联的服务主体的客户端密码,用于证明标识。