【Jenkins系列】-權(quán)限管理
在實際工作中,存在多個團隊都需要Jenkins來實現(xiàn)持續(xù)交付,但是又希望不同團隊之間進行隔離,每個項目有自己的view, 只能看到自己項目的jenkins job.
但是,jenkins默認的權(quán)限管理體系不支持用戶組或角色的配置,這里利用Role-based Authorization Strategy實現(xiàn)上述目的
權(quán)限角色配置
直接跳過插件安裝,介紹如何基于“項目”配置.
1. 啟用 Role-based Authorization Strategy
進入系統(tǒng)管理 > Configure Global Security ,配置如下,此時該策略已啟用
注意:策略啟用之后,不禁止修改!策略之間是獨立的,一旦選擇另外一中策略,當前策略將丟失,包括已生效的配置。

2. 創(chuàng)建 Glabal roles 和 Project roles
進入系統(tǒng)管理 > Manage and Assign Roles

ManageRoles
- Global roles是對全局的角色控制
- Project roles只針對項目進行控制,所以需要為每個項目單獨添加指定的role (區(qū)別于全局,只能有項目相關(guān)權(quán)限,沒有jenkins管理權(quán)限配置)
配置job pattern需要注意:prod.代表匹配以prod開頭的內(nèi)容
例如:如果以dev開頭就寫成dev. 一定要加上"."; .*test表示以test結(jié)尾的內(nèi)容項目
注意:必須先進行Global roles的配置后方可對Project roles進行配置,可以解為先配置整體性權(quán)限,再按項目分權(quán)限,遵守從大到小權(quán)限控制的原則!

3. Roles 配置規(guī)則和流程
這里強制規(guī)定項目role配置規(guī)則和流程
3.1 為項目/團隊添加 project role
以“demo”項目為例,添加manager和user兩種role
- role:demo-manager - pattern: "^demo-[a-zA-Z]*"
- role:demo-user - pattern: "^demo-[a-zA-Z]*"
- 在實際使用中,可以為"項目/團隊"創(chuàng)建兩種role, 甚至一個都可以
- pattern是通過“正則表達”匹配為項目創(chuàng)建的jenkins job, 所有命名需要規(guī)范,簡單,一個表達式可以匹配多個項目擁有的job.這里參考"demo"項目
3.2 為項目/團隊成員分配 role
通過以下配置,開發(fā)團隊成員就只能看到自己的"demo"項目

添加用戶-LDAP
jenkins 默認可以手動添加用戶,由于簡單不做解釋;這里重點說下企業(yè)內(nèi)部使用LDAP來實現(xiàn)用戶的統(tǒng)一管理,也就是說無須再次創(chuàng)建用戶

需要使用LDAP插件,然后在Configure Global Security 頁面進行配置,輸入公司內(nèi)部LDAP服務(wù)信息。
注意:
- jenkins 默認使用“Jenkins' own user database”,即自己本身的數(shù)據(jù)庫,一旦切換,當前配置數(shù)據(jù)可能丟失,所以切忌隨意修改該配置 !
- 在配置LDAP前,一定要記得開啟匿名用戶的 admin 權(quán)限,否則一旦配錯,自己就無法登錄了!
本文僅代表作者觀點,版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請在文中注明來源及作者名字。
免責聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請及時與我們聯(lián)系進行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com






