如何验证与个人主体以外的其他主体的 Azure Repos 服务连接?

问题描述 投票:0回答:3

我是多个 Azure DevOps 组织的管理员。我工作的公司有一家姐妹公司,因此我们也有两个独立的 Azure DevOps 组织。

在这个问题中,我将它们称为“公司 A”,它拥有(Azure DevOps)“组织 A”,以及“公司 B”,它拥有(Azure DevOps)“组织 B”。

组织 A 和 B 都连接到同一个 Azure Active Directory 租户。

在组织 A 中,我有一个 Git 存储库 pipeline-tools,其中包含 PowerShell 脚本和 Azure Pipelines YAML 模板。 pipeline-tools 用于分散在所有项目和存储库中的所有 YAML 管道。

在组织 B 中,我们到目前为止一直使用经典管道,但我们希望迁移到 YAML 管道(组织 A 仅使用 YAML 管道)。

可以pipeline-tools存储库复制到组织B,但我宁愿每次我想要进行更改或添加PowerShell脚本时只更新一个存储库。

我知道可以通过创建 Azure Repos 类型的服务连接来实现这一点。然而,在阅读文档后,似乎只有两种方法来验证服务连接; 基本身份验证,或使用个人访问令牌 (PAT)

我的问题是:我可以为此服务连接设置身份验证,以便它链接到个人帐户吗?

假设我通过 PAT 设置身份验证;那么我需要管理自己,确保 PAT 不会过期。如果我忘记了(例如我在度假)并且它过期了,那么组织 B 中的所有管道都将失败,因为服务连接身份验证中断。

另外,假设我不再为这家公司工作,并且我的帐户被删除:这将使我生成的所有 PAT 无效,并中断服务连接。

是否可以使用某种服务主体而不是个人主体进行身份验证?如果可能的话,我怎样才能实现这一目标?

非常感谢您的帮助!

azure-devops azure-active-directory azure-pipelines azure-pipelines-yaml
3个回答
1
投票

在我工作的公司里,我自己也曾为这个问题而苦苦挣扎。我们在不同的项目、组织和源代码控制模板中遇到了同样的问题。由于没有 PAT,您无法通过不同的组织与 Azure devops Repos 进行交互,因此我们决定建立一个中央

Github
存储库并将所有文件存储在那里。

正如您所提到的,PAT 与创建它的人相关联。您还可以出于 DevOps 目的在 azure Active Directory 上创建一个新用户并使用此用户,但 Github 解决方案可能会更好。

我们的做法:

我们从一个项目创建了与 Github 的连接,链接的应用程序出现在 Github 应用程序上。

这样,您的组织类型的每个项目都将拥有服务连接 Github(使用 azure pipelines 应用程序)

然后,您将使用此服务连接在您的组织中下载代码,但您应该将源代码控制保留在 Github 上。

代码示例:

resources:
  repositories:
    - repository: devops
      type: github
      name: ORG/DevOps
      ref: azure-devops-dev
      endpoint: MyConnectionWithGithubApp

0
投票

与 Microsoft 进行一些交谈后,很明显目前不支持此功能。

使用服务连接类型 Azure Repos 与 PAT 或基本身份验证是当前唯一支持的身份验证方法。

您可以在 Visual Studio 开发人员社区的问题报告中阅读更多相关信息:如何验证与个人主体以外的其他主体的 Azure Repos 服务连接?

我还创建了一个功能请求:在多个 Azure DevOps 组织之间共享 Azure Repos 托管的 Git 存储库,无需使用 PAT


0
投票

目前面临同样的问题。我看到该功能请求仍然处于开放状态,没有任何进展。您是否找到了解决此问题的其他方法?

© www.soinside.com 2019 - 2024. All rights reserved.