我不知道为什么“登录用户可以做任何事情”意味着Jenkins很乐意允许未经过身份验证的用户查看项目详细信息并访问工件......无论如何,我需要知道如何让Jenkins允许登录用户可以访问任何内容并为未登录的用户隐藏所有内容。请帮助吗?
答案 0 :(得分:74)
可以使用Role-Strategy plugin完成此操作。
安装插件,添加一个名为“匿名”的新组并取消选中所有内容。然后,您要添加另一个名为“authenticated”的组并检查所有内容。将现有用户添加到该组。 Jenkins会立即以这种方式提示您登录。</ p>
答案 1 :(得分:9)
您可以使用https://wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin
它允许指定定义角色并为用户分配角色,没有角色的用户甚至不会看到jenkins ui。
答案 2 :(得分:1)
此外,如果您使用GitHub作为您的版本控制系统 - 您可以使用GitHub OAuth插件。一旦“匿名”到达您的页面,它们将被自动重定向到GitHub。
答案 3 :(得分:0)
回答了一个老问题,但是我试图在Docker上自动启动Jenkins实例时发现了相同的问题。
问问题时此选项不可用的可能性很大。截至目前(v2.222.3,但不确定多远),事实证明您可以执行此操作而无需安装任何其他插件。
导航到全局安全性(Jenkins>管理Jenkins>全局安全性)
将授权部分更新为“已登录用户可以执行任何操作”。
取消检查 允许匿名读取访问权限
任何未经身份验证的访问都将重定向到立即登录。
我会注意,如果您通过安装向导设置Jenkins,则默认情况下将禁用匿名读取访问。如果您想要这种行为并且想要自动配置詹金斯,请继续阅读。
我的情况是我想签出我的仓库,运行我的撰写文件,并准备好我的所有配置/用户/插件等。很棒的帖子here,如果有兴趣,请提供更多详细信息。
简而言之:
Dockerfile
FROM jenkins/jenkins:lts-alpine
# Disable setup wizard since security.groovy creates our user
ENV JAVA_OPTS="-Djenkins.install.runSetupWizard=false"
COPY security.groovy /usr/share/jenkins/ref/init.groovy.d/security.groovy
security.groovy
#!groovy
import jenkins.model.*
import hudson.security.*
def instance = Jenkins.getInstance()
// Create Admin User
def hudsonRealm = new HudsonPrivateSecurityRealm(false)
hudsonRealm.createAccount("admin", "admin") // Dont do this. This is bad
instance.setSecurityRealm(hudsonRealm)
// Set Auth to Full Control Once Logged In and prevent read-only access
def strategy = new FullControlOnceLoggedInAuthorizationStrategy()
strategy.setAllowAnonymousRead(false)
instance.setAuthorizationStrategy(strategy)
instance.save()
尤其需要strategy.setAllowAnonymousRead(false)