Gitlab + Jenkins 与 Azure Active Directory 身份验证

Ima*_*dem 5 azure jenkins gitlab azure-active-directory devops

背景和问题

\n

我正在为一家公司开发 DevOps 平台,该公司希望为开发人员提供用于代码版本控制和自动测试/构建/部署的工具,使用 Gitlab + Jenkins + Azure(以及 Jira / Sonarqube / Grafana 等其他工具,但不相关)这里)。

\n

出于安全原因和易于管理,我们希望为用户提供一个用于所有这些工具的帐户:Azure Active Directory。

\n

目前,Gitlab 用户可以通过 Azure AD 连接,并且推送到 Gitlab 存储库会触发 Jenkins 中的构建。\n当我通过 Azure AD 配置 Jenkins 身份验证时,Gitlab 与 Jenkins 的集成不再起作用,因为您无法再使用使用用户名/密码连接到 Jenkins,这似乎是 Gitlab 集成提供的唯一方法。

\n

当前设置

\n\n

问题

\n
    \n
  • Jenkins 有没有办法根据用户提供多种身份验证策略?(正如 Gitlab 所做的那样)
  • \n
  • Gitlab 有没有办法使用其他用户/密码进行 Jenkins 集成或 Webhooks?
  • \n
  • 我们必须在 Azure AD 和 Gitlab 集成之间进行选择吗?(如果是这样,这是否意味着没有人使用 Jenkins 单点登录和 Gitlab ?看起来很奇怪)
  • \n
\n

线索和想法

\n
    \n
  • 尝试使用 webhooks 而不是 Jenkins 集成,但它失败了,因为 webhooks 还需要用户名/密码(并且集成可能不太“高级”)
  • \n
  • 尝试找到一种在 Jenkins 上启用多种身份验证方法的方法,但现在似乎不可能(https://issues.jenkins.io/browse/JENKINS-15063
  • \n
  • 尝试在 Azure AD 上向 Gitlab 授予角色权限,但它不会改变任何内容,因为我找不到如何使用 OAuth 和 Jenkins 来创建 Gitlab
  • \n
\n

我彻底搜索了答案,但仍然可能错过了一些微不足道的东西。\n我没有找到太多关于这个特定设置的文献,所以我希望这里有人以前遇到过这种情况

\n

感谢您的帮助

\n

小智 0

我找到了解决这个问题的方法。

  1. 单击顶部栏中您记录的用户名来识别您的用户 ID。您将获得 Jenkins 用户 ID,即 gitlab 中的用户用户名。例如:a42fac35-6in9-464d-8ffb-71263843b814
  2. 为所需用户生成 api 令牌,并从https://Jenkins.example.com/user/ <user_ID>/configure复制密码。这个 api-token 将是您在 gitlab 中的密码

通过在 gitlab 中提供这些详细信息,可以与 Jenkins 集成。