使用Jenkins Google登录插件时的自定义用户

时间:2018-08-28 16:23:22

标签: security jenkins devops

我正在尝试从Jenkins用户数据库+基于矩阵的安全性到我们公司的Jenkins,再使用Google登录插件和基于角色的策略插件来更好地控制用户帐户。

通过这种新设置,我想知道如何创建一个指定用户,该用户将被远程触发Jenkins作业的脚本使用。我想这样做而不必将用户添加到我们公司的GSuite帐户中,因为这每月需要花费几美元。在切换到Google Login之前,我只能在Jenkins用户数据库中手动创建一个用户,然后从那里获取API令牌,但是由于切换到Google Login,所以没有添加用户的选项(这是合理的,因为这些用户由Google现在)。此刻似乎我必须选择:

  • 使用旧方法,而无需通过Google进行身份验证。这不是一个很好的结果,因为我们希望最大程度地减少必须为新员工加入公司而设置的用户帐户数量,以减少入职费用。
  • 使用Google登录插件并在GSuite中为这些脚本/要求创建一个新的专用“ Jenkins”用户。这要花钱。
  • 使用现有的用户API令牌来避免在我们的GSuite帐户中花费新的Google用户的费用。这似乎是一种不好的做法,我有时会后悔。

是否有一种解决方法不需要为此指定GSuite用户或重新使用现有的Google用户凭据?

2 个答案:

答案 0 :(得分:2)

我前段时间做了类似的研究,现在看来还没有办法。

但是,我将SAML plugin与GSuite结合使用,而不是与Google登录插件结合使用,但是从詹金斯的安全角度来看,我认为它们的工作方式相同。

使用此类插件时,詹金斯(Jenkins)在其配置中创建一个securityRealm。以我为例:

  <securityRealm class="org.jenkinsci.plugins.saml.SamlSecurityRealm" plugin="saml@1.0.7">

因此,要使SAML和Jenkins安全矩阵同时工作,您必须具有多个安全领域。

这里是ticket,它描述了此问题,但仍处于打开状态

致谢!

答案 1 :(得分:1)

我还在研究使用Google登录插件时如何远程触发构建。 我最终使用了“ Build Token Root Plugin”,它解决了这个问题,而无需为此创建专门的用户。

此插件提供了备用URI模式,不受通常的总体或作业读取权限的约束。只需发出Http GET或POST即可buildByToken / build?job = NAME&token = SECRET。无论安全设置如何,匿名用户都可以访问此URI,因此您只需要正确的令牌即可。

https://wiki.jenkins.io/display/JENKINS/Build+Token+Root+Plugin