首页 > 代码库 > Jenkins 权限控制策略

Jenkins 权限控制策略

一、概述

  我们再构建job时,需要对Jenkins的用户进行权限的控制,所以我写了一篇关于Jenkins 权限控制的策略

  配置路径:系统管理->Configure Global Security->勾选Enable security

二、用LDAP登录控制

2.1 LDAP配置

路径:Access Control->Security Realm->勾选LDAP,配置如下:

  • 服务器:ldap.xxx.com
  • Root DN:DC=yihaodian,DC=com
  • User search base:OU=1_UserAccount
  • 用户过滤搜索:sAMAccountName={0}
  • Manager DN:CN=IT_Test_SCM_Jenkins,OU=IT,OU=SH,OU=Special,OU=1_UserAccount,DC=yihaodian,DC=com
  • 用户密码:****

技术分享

三、Role-Based Strategy权限控制

3.1 role-base权限控制

路径:Access Control->Authorization->勾选Role-Based Strategy

技术分享

我定义了5种角色:

  1. admin系统管理员,可以做任何操作。
  2. admin-sub次级系统管理员,不可配置系统属性,可以查看/创建/删除/配置/运行/停止JOB,可查看workspace。
  3. tester测试人员,不可配置系统属性,不可创建/删除/配置JOB,可查看/运行/停止JOB,可查看workspace。
  4. developer开发人员,不可配置系统属性,不可创建/删除/配置/运行/停止JOB,可查看JOB,可查看workspace。
  5. viewer其他人员(默认角色),不可配置系统属性,不可创建/删除/配置/运行/停止JOB,不可查看workspace,可查看JOB。

基于“Role-Based Strategy”分别配置全局&项目级别的权限组。

四、权限组分配权限

4.1 全局权限组

  1. Admin:管理员组
  2. User:用户组,(Overall{Read},Job{Read,Discover,Workspace},View{Read})
  3. Anonymous:默认用户组,权限:(Overall{Read,Discover})

4.2 项目权限组:

  • 按照项目级别定义权限。
  • 前提:JOB命名标准化。
  • 实现方式:正则表达式匹配。
  • 权限:(Job{Read,Discover,Build,Workspace,Cancel},)

Jenkins 权限控制策略