关闭

jenkins授权和访问控制

166人阅读 评论(0) 收藏 举报

转载:http://www.cnblogs.com/itech/archive/2011/11/15/2249457.html

一 Jenkins的授权和访问控制
默认地Jenkins不包含任何的安全检查,任何人可以修改Jenkins设置,job和启动build等。显然地在大规模的公司需要多个部门一起协调工作的时候,没有任何安全检查会带来很多的问题。 我们可以通过以下2方面来增强Jenkins的安全:
1) Security Realm(安全域),用来决定用户名和密码,且指定用户属于哪个组;
2) Authorization Strategy(授权策略),用来决定用户对那些资源有访问权限;

在系统管理--->Configure Global Security-->启用安全,可以看到可以使用多种方式来增强Jenkins的授权和访问控制

二 创建管理员账号+匿名只读(没尝试)

简单地设置一个管理员账号,用来管理jenkins设置,修改job和执行build等。其他的匿名访问的用户将只有只读的权限,不能修改Jenkins的设置,不能修改job,且不能运行build,但是可以访问build的结构,查看build的log等。

1)需要对Jenkins增加如下的启动参数来创建管理员账号:
java -jar jenkins.war --argumentsRealm.passwd.user=password --argumentsRealm.roles.user=admin

例如设置管理员用户为jenkins且密码为swordfish,如下:
java -jar jenkins.war --argumentsRealm.passwd.jenkins=swordfish --argumentsRealm.roles.jenkins=admin


在启动后需要在系统管理--->Configure Global Security-->启用安全,然后选择对Security Realm选择Delegate to servlet container,对Authorization选择Legacy Mode。




然后可以在右上角点击login或者 http://yourhost/jenkins/loginEntry来登录,登录后此时你用户管理员权限,可以执行任何的操作。执行完操作后可以选择logout。


对developers增加rebuild的权限。使用管理员登录对需要developer rebuild的job,选择Trigger builds remotely,且设置Authentication Token,例如设置为devbuild,然后developers可以访问http://jenkinsHost/job/project/build?token=token 来启动build。

其中Project为你需要启动build的job。
其中token为你设置的Authentication Token。
如果你有webserver,你可以创建如下的webpage来让developers来启动build:
<h1>Jenkins Force Build Page</h1>
<ul>
    <li>
    <a href="http://jenkins:8080/job/FOO/build?token=build">Force build of Project FOO on Jenkins</a>
    </li>
</ul>


三 使用Jenkins的数据库管理用户且设置用户的访问权限

  1、配置如下

     

2、接着在主页上signup创建第一个管理员账号jenkins如下:


3、除了第一个账号以后signup的账号将为只读账号需要管理员分配权限。例如你可以signup来创建dev账号,然后分配权限使得dev可以启动job的build。

注意:

在%JENKINS_HOME%\config.xml中可以查看和修改所有用户的权限设置,但是修改后需要重新启动Jenkins。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:18256次
    • 积分:767
    • 等级:
    • 排名:千里之外
    • 原创:60篇
    • 转载:10篇
    • 译文:0篇
    • 评论:0条