Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 使用Jenkins Google登录插件时的自定义用户_Security_Jenkins_Devops - Fatal编程技术网

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

Security 使用Jenkins Google登录插件时的自定义用户,security,jenkins,devops,Security,Jenkins,Devops,我正在尝试将我们公司的Jenkins从Jenkins用户数据库+基于矩阵的安全性转换为使用Google登录插件和基于角色的策略插件,以便更好地控制我们的用户帐户 有了这个新的设置,我想知道如何创建一个指定的用户,该用户由远程触发Jenkins作业的脚本使用。我想这样做,而不必将用户添加到我们公司的GSuite帐户,因为这每月需要花费几美元。在切换到Google登录之前,我可以在Jenkins用户数据库中手动创建一个用户,并从那里获取API令牌,但由于切换到Google登录,因此没有添加用户的选项

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

有了这个新的设置,我想知道如何创建一个指定的用户,该用户由远程触发Jenkins作业的脚本使用。我想这样做,而不必将用户添加到我们公司的GSuite帐户,因为这每月需要花费几美元。在切换到Google登录之前,我可以在Jenkins用户数据库中手动创建一个用户,并从那里获取API令牌,但由于切换到Google登录,因此没有添加用户的选项(这比Google现在管理的用户更有意义)。目前看来,我必须从以下方面进行选择:

  • 使用旧方法,忘记通过google进行身份验证。这不是一个很好的结果,因为我们希望尽量减少我们为新加入公司的人员设置的用户帐户数量,以减少入职的开销
  • 使用Google登录插件,在GSuite中创建一个新的专用“Jenkins”用户,以满足这些脚本/需求。这要花钱
  • 使用现有用户API令牌,以避免在我们的GSuite帐户中使用新的Google用户的成本。这似乎是个坏习惯,我会后悔的

是否有一种解决方法不需要指定的GSuite用户,也不需要重新利用现有的Google用户凭据就可以实现此目的?

我不久前做了一项类似的研究,现在似乎没有办法做到这一点

然而,我使用的是GSuite而不是Google登录插件,但从Jenkins安全角度来看,我认为它们的工作方式是相同的

当您使用此类插件时,Jenkins会在其配置中创建一个
securityRealm
。就我而言,它是:

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

因此,要让SAML和Jenkins安全矩阵同时工作,您必须有几个安全领域

下面是一个描述这个问题的示例,但它仍然是开放的


问候

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

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


我在研究我的问题时遇到了同样的问题。考虑到这显然是一个公认的和悬而未决的问题,我已经采取了使用指定GSuite用户执行自动化任务的方法。碰巧我们已经设置了一个,因为之前我们需要一些其他应用程序的凭据,所以这是最简单的解决方案,在这个实例中也没有增加任何成本。编辑:谢谢你的回复——这至少证实了我对情况的理解。