Jenkins用户授权部署

时间:2015-05-05 06:30:06

标签: jenkins continuous-integration two-factor-authentication

我想在Jenkins中为所有用户(甚至超级管理员)进行双因素身份验证,并且想知道,如果可能,如果可能,我们需要插件的可能方式是什么?为了它。

另外,我们是否可以授权在Jenkins中安排部署,如果可能的话,我们该怎么办呢。

1 个答案:

答案 0 :(得分:0)

詹金斯授权在此详细解释:
https://wiki.jenkins-ci.org/display/JENKINS/Standard+Security+Setup

“授权项目插件”不适合您的要求。

每次开始工作时都不会提示您输入密码。相反,您应该配置单个作业以授予对个人的访问权限。 Jenkins允许这种粒度。

如果你真的想在每次执行任务时提示输入密码,你必须配置job来创建一个新的密码参数,然后作为你的第一个构建步骤之一,验证输入的密码对...反对任何它是你想要的。但这意味着您的验证脚本可能会驻留在Jenkins本身。

修改:

  • 配置作业
  • 选择“此版本已参数化”
  • 添加“字符串”参数
  • 称之为“密码”
  • 如果在* nix环境中,请为第一个构建步骤选择“Execute Shell”:

set +x if ! [[ "$password" == "mysecret" ]]; then echo "Bad password" exit 1 fi exit 0

  • 如果在Windows环境中,请为第一个构建步骤选择“执行Windows批处理命令”:

@echo off if not "%password%" == "mysecret" ( echo "Bad password" exit /b 1 ) exit /b 0

  • 正常添加其他构建步骤。

现在,每次作业运行时,都会提示“密码”,如果不匹配字符串“mysecret”,则作业将失败。

重要提示:

  • 这将在SCM结账后运行。如果您想在SCM结帐前运行它,则需要 Pre-SCM build step 插件。
  • 任何拥有“配置”访问权限或以上权限的人都可以以纯文本格式查看“mysecret”。您可以使用 EnvInject 插件配置全局(或作业本地)密码并验证该变量,而不是“mysecret”
  • 任何直接/远程登录Jenkins机器的人都可以用纯文本的方式查看配置文件“mysecret”(除非使用上面的EnvInject)。
  • 拥有足够权限的人可以修改或复制作业,并删除此验证。

我再次恳请您,正确的方法是通过默认的Jenkins安全/授权提供精细的每用户权限。使用“矩阵”授权为每个作业的每个用户授予权限。