基於LDAP&&Role-based Authorization Strategy實現Jenkins團隊權限管理

在實際工做中,存在多個團隊都須要Jenkins來實現持續交付,可是又但願不一樣團隊之間進行隔離,每一個項目有本身的view, 只能看到本身項目的jenkins job.數據庫

可是,jenkins默認的權限管理體系不支持用戶組或角色的配置,這裏利用Role-based Authorization Strategy實現上述目的插件

權限角色配置

直接跳過插件安裝,介紹如何基於「項目」配置.3d

1. 啓用 Role-based Authorization Strategy

進入系統管理 > Configure Global Security ,配置以下,此時該策略已啓用code

注意:策略啓用以後,不由止修改!策略之間是獨立的,一旦選擇另一中策略,當前策略將丟失,包括已生效的配置。blog

Jenkins-權限管理-1

2. 建立 Glabal roles 和 Project roles

進入系統管理 > Manage and Assign Rolesci

Jenkins-權限管理-2

ManageRoles
- Global roles是對全局的角色控制
- Project roles只針對項目進行控制,因此須要爲每一個項目單獨添加指定的role (區別於全局,只能有項目相關權限,沒有jenkins管理權限配置)
配置job pattern須要注意:prod.表明匹配以prod開頭的內容
例如:若是以dev開頭就寫成 dev.
必定要加上"."; .*test表示以test結尾的內容項目開發

Jenkins-權限管理-3

注意:必須先進行Global roles的配置後方可對Project roles進行配置,能夠解爲先配置總體性權限,再按項目分權限,遵照從大到小權限控制的原則!get

Jenkins-權限管理-4

3. Roles 配置規則和流程

這裏強制規定項目role配置規則和流程權限控制

3.1 爲項目/團隊添加 project role

以「demo」項目爲例,添加manager和user兩種rolejenkins

- role:demo-manager - pattern: "^demo-[a-zA-Z]*"
    - role:demo-user      - pattern: "^demo-[a-zA-Z]*"
  1. 在實際使用中,能夠爲"項目/團隊"建立兩種role, 甚至一個均可以
  2. pattern是經過「正則表達」匹配爲項目建立的jenkins job, 全部命名須要規範,簡單,一個表達式能夠匹配多個項目擁有的job.這裏參考"demo"項目

3.2 爲項目/團隊成員分配 role

經過如下配置,開發團隊成員就只能看到本身的"demo"項目

Jenkins-權限管理-5

添加用戶-LDAP

jenkins 默承認以手動添加用戶,因爲簡單不作解釋;這裏重點說下企業內部使用LDAP來實現用戶的統一管理,也就是說無須再次建立用戶

Jenkins-權限管理-7

須要使用LDAP插件,而後在Configure Global Security 頁面進行配置,輸入公司內部LDAP服務信息。

Jenkins-權限管理-8

注意

  1. jenkins 默認使用「Jenkins' own user database」,即本身自己的數據庫,一旦切換,當前配置數據可能丟失,因此切忌隨意修改該配置 !

  2. 在配置LDAP前,必定要記得開啓匿名用戶的 admin 權限,不然一旦配錯,本身就沒法登陸了!

    Jenkins-權限管理-9

相關文章
相關標籤/搜索