Github 操作 + Azure OIDC,任何分支的“主题”值

tia*_*sag 7 azure azure-active-directory openid-connect github-actions

我正在使用 Github Actions 构建一些要推送到 Azure 容器注册表的 Docker 映像。我正在尝试基于此 GH Action使用 OIDC 作为身份验证机制。我知道该操作支持其他身份验证策略,出于某种原因,我已在我的用例中放弃了这些策略。

根据GH 文档,需要根据 GH 帐户、存储库名称和分支名称填充“主题”字段。然而,想要为多个分支构建 Docker 镜像,这似乎需要每个分支一个联合配置 - 在我看来,这不切实际。

所以我的问题是:有谁知道是否可以(以及如何)设置一个带有“主题”值的联合配置,该值可以作为某种通配符,涵盖给定存储库中的所有分支?

谢谢!

小智 6

在 AWS 上,可以使用通配符,例如:

"repo:MY_ORG/MY_REPO:*"

但这似乎不适用于 Azure,您可以在 Azure 联合凭据中输入通配符,但 GitHub 工作流程失败。真正需要一个分支是疯狂的,因为我们需要为每个新的 git 分支设置新的凭证配置。

我通过使用 GitHub 环境解决了这个问题。我设置了一个环境(称为main但可以称为任何东西),然后设置我的工作流程,如下所示:

jobs:
  test:
    runs-on: ubuntu-latest
    environment: main
Run Code Online (Sandbox Code Playgroud)

然后在 Azure 中设置要使用的联合信用: EntityofEnvironment而不是EntityofBranch

这将适用于任何分支 - 但显然,如果您出于其他原因使用 GitHub 环境,这可能不可行。