0

我想在 Jenkins 中为所有用户(甚至超级管理员)进行 2 因素身份验证,并且想知道,如果可能,如果可能,可能的方法是什么,或者我们是否需要一个插件。

另外,我们能否获得在 Jenkins 中安排部署的授权,如果可能,我们该怎么做。

4

1 回答 1

1

Jenkins授权在这里详细解释:
https ://wiki.jenkins-ci.org/display/JENKINS/Standard+Security+Setup

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

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

如果您真的想在每次作业执行时提示输入密码,则必须配置作业以创建新的密码参数,然后作为您的第一个构建步骤之一,验证输入的密码...想。但这意味着您的验证脚本可能会驻留在 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 构建步骤插件。
  • 任何对工作权限或以上具有“配置”访问权限的人都将能够以纯文本形式查看“我的秘密”。您可以使用EnvInject插件来配置全局(或作业本地)密码并针对该变量进行验证,而不是“mysecret”
  • 任何直接/远程登录到 Jenkins 机器的人都可以看到带有“mysecret”的纯文本配置文件(除非使用上面的 EnvInject)。
  • 具有足够权限的人可以修改或复制作业,并删除此验证。

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

于 2015-05-22T20:16:56.213 回答