允许匿名用户仅查看作业列表,而不浏览Jenkins中的工作区


15

我们正在运行Jenkins CI。通常我们想提供

  1. 完全访问特定组中经过身份验证的用户
  2. 对匿名用户的完全读取访问
  3. 阻止匿名用户访问某些项目(完全)

我们使用Unix用户/组数据库基于项目的矩阵授权策略。第(1)和第(2)点效果很好,但是我们很难实现(3)。

我们尝试过:

  • Global Security中,删除对匿名的所有权限,然后在基于项目的安全性中授予它,但在此之后,所有匿名请求(甚至是对Jenkins主页面的请求)都会生成登录页面
  • Global Security中分步添加以下权限:View-Read(无效),Job-Discover(无效),Job-Read(无效),Overal-Read-这最后一个似乎有效它给匿名用户过多的权限,我们无法限制对特定项目的访问。

tl; dr

我们想要完全打开(只读)的Jenkins CI,并为匿名完全隐藏/阻止了一些项目。

Answers:


20

好的,所以我设法做到了:

  • 您需要基于角色的授权策略插件
  • 在“ 配置全局安全性”中启用此身份验证策略
  • 在“ 管理和分配角色” /“ 管理角色”中,为全局角色和项目角色创建匿名并经过身份验证的新角色
  • 全球的角色授予匿名权只对角色外形 / 阅读(这将至少是匿名访问用户主屏幕詹金斯导航和链接到登录页面,而不是登录提示立即)
  • 在“ 项目”角色中添加带有regexp模式的匿名角色,该角色将与您希望匿名用户访问的项目匹配,并且在添加此角色后将其授予“ 作业 / 读取”和“ 作业 / 发现”权限
  • 导航至“ 管理和分配角色 / 分配角色”,然后将“ 匿名用户”组分配给匿名角色(以及将经过身份验证的用户分配给特定组)。保存

一个相关的陷阱是,角色策略在匹配用户名时区分大小写。我在“分配角色”页面上输入了大写的用户名。我使用小写的用户名登录,即使我的用户名以大写形式显示,也没有与我的用户匹配的角色。我的允许权限回退到匿名用户的权限。如果我使用大写的用户名登录,则可以使用。
s_t_e_v_e

在回答这个问题时,您已经解释了“已认证”角色的目的或配置。
布拉德·伍德

这只是捷径-它可以是“匿名”和“特权”;我使用“经过身份验证”的原因是,可用于查看和编辑这些特定隐藏任务的人员子集将等于实际拥有该帐户的那些人。
Wojtek


2

使用上述https://wiki.jenkins.io/display/JENKINS/Role+Strategy+Plugin插件

然后你不要需要添加authenticated的角色管理角色页面。

屏幕截图:管理角色分配角色

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.