有没有办法限制用户只能查看Jenkins中的某些作业。
Jenkins允许通过“基于项目的矩阵授权策略”限制每个项目的用户能力。问题是如果没有“整体”“读取”设置,用户将无法访问任何内容。这似乎允许他们查看所有工作。
是否有其他允许作业限制的插件?
答案 0 :(得分:53)
想一想,你在寻找什么:Allow access to specific projects for Users
没有屏幕截图的简短说明:
使用Jenkins“管理Jenkins”下的“基于项目的矩阵授权策略”=> “配置系统”。在每个项目的配置页面上,您现在具有“启用基于项目的安全性”。现在添加您要授权的每个用户。
答案 1 :(得分:11)
只有一个插件可以帮助我:基于角色的策略:
wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin
但官方文档(wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin)很差。
这是一个很好的文档的真实例子:
kblearningacademy.com/configure-role-strategy-plugin-in-jenkins
如果停止工作,我将此页面转换为pdf:
kblearningacademy_com_jenkins_Role+Strategy+Plugin
我希望这有助于某人。
答案 2 :(得分:7)
您可以使用基于项目的Matrix Auth策略并启用“读取整体”权限,但在系统级别禁用“读取作业”。之后,您应为您希望为当前用户显示的每个特定项目启用“读取作业”。有关详细信息,请参阅this resolved issue。一些信息来自那里:
我正在工作级别实施READ权限。 完成此操作后,缺少特定作业的READ权限的用户 不会:在任何视图中查看该作业,能够直接访问作业页面,查看对作业的任何引用(例如,在上游或下游依赖项中)
此外,我建议您进一步查看Role Strategy Plugin。它可以简化用户/角色管理,您可以使用上述描述来访问某些工作。
答案 3 :(得分:2)
我使用了几个插件的组合 - 对于角色和权限的基本分配,我使用角色策略插件。
当我需要根据参数分割一些角色时(例如,每个有job-runner的人都可以运行作业,但是只允许用户UUU运行部署作业以在机器MMM上部署),我使用 Python插件并将python脚本定义为第一个构建步骤,并在禁止使用给定的参数组合运行作业时以sys.exit(-1)结束。
构建用户Vars插件为我提供了有关将作业作为环境变量执行的用户的信息。
E.g:
import os
import sys
print os.environ["BUILD_USER"], "deploying to", os.environ["target_host"]
# only some users are allowed to deploy to servers "MMM"
mmm_users = ["UUU"]
if os.environ["target_host"] != "MMM" or os.environ["BUILD_USER"] in mmm_users:
print "access granted"
else:
print "access denied"
sys.exit(-1)
答案 4 :(得分:2)
如上所述,瓦迪姆 使用Jenkins"基于项目的矩阵授权策略"下 "管理Jenkins" => "配置系统"。别忘了在那里添加管理员用户并授予所有权限。现在在那里添加受限用户并提供整体读取权限。 然后转到每个项目的配置页面,您现在已经启用了基于项目的安全性"选项。现在添加您要授权的每个用户。
答案 5 :(得分:0)
尝试“管理Jenkins” - >“管理用户”转到特定用户,编辑他/她的配置“我的视图部分”默认视图。
答案 6 :(得分:0)
您可以安装“Extended Read Permission”插件。 然后在“全局设置”或单个作业配置中,您可以为用户授予“扩展读取”权限。