Jenkins持续集成——用户权限管理

在新安装好的jenkins中,默认是没有设置用户权限的,也就是说进入主页就是管理员权限。为了安全,需要配置用户权限。

基于安全矩阵


其中有一些比较特别的权限:

  • 最大的权限是Overall的Administer,拥有该权限可以干任何事情。
  • 最基本的权限是Overall的Read,用户必须赋予阅读的权限,不然什么都看不到。

基于安全矩阵的配置保存在$JENKINS_HOME/config.xml文件中的<permission>标签中,而用户的配置保存在$JENKINS_HOME/users的目录中。
由于基于安全矩阵的安全配置若要求指定人员对某个job无权限访问,需要在指定的job中分配权限,若job比较多的话必然增大工作量


基于角色认证策略

需要安装插件:Role-based Authorization Strategy

启用角色策略

管理角色

“系统管理” > “Manage and Assign Roles” > “Manage Roles”
新建一个readonly的角色,只赋予全局的只读权限

针对每个Project(Job)设置相应的权限,可通过正则表达式进行匹配

分配角色

“系统管理” > “Manage and Assign Roles” > “Assign Roles”
添加用户并分配全局角色

添加用户并根据Project roles分配相应的权限

基于角色的认证策略配置保存在$JENKINS_HOME/config.xml文件中的<roleMap type="globalRoles">,<roleMap type="slaveRoles">,<roleMap type="projectRoles">3个标签中。

免密码登录Jenkins

相信很多人在Jenkins配置用户的时候可能忘了admin用户的密码,或者忘了配置admin用户的权限导致无法登录Jenkins。


其实只需将$JENKINS_HOME/config.xml文件中<authorizationStrategy>...<authorizationStrategy/>标签的内容修改成如下,再重启Jenkins服务即可无需登录修改Jenkins配置。
<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>

如果之前已经配置了用户权限只需将相关配置的标签插入到authorizationStrategy标签内即可。(修改配置前记得备份config.xml文件,以便进行对照)

坚持原创技术分享,您的支持将鼓励我继续创作!
0%