1. 程式人生 > >基於LDAP&&Role-based Authorization Strategy實現Jenkins團隊許可權管理

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

在實際工作中,存在多個團隊都需要Jenkins來實現持續交付,但是又希望不同團隊之間進行隔離,每個專案有自己的view, 只能看到自己專案的jenkins job. 但是,jenkins預設的許可權管理體系不支援使用者組或角色的配置,這裡利用[Role-based Authorization Strategy](https://wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin)實現上述目的 ## 許可權角色配置 直接跳過外掛安裝,介紹如何基於“專案”配置. ### 1. 啟用 Role-based Authorization Strategy 進入系統管理 > Configure Global Security ,配置如下,此時該策略已啟用 注意:策略啟用之後,不禁止修改!策略之間是獨立的,一旦選擇另外一中策略,當前策略將丟失,包括已生效的配置。 ![Jenkins-許可權管理-1](https://cdn.devopsing.site/2021/20210113001940.png) ### 2. 建立 Glabal roles 和 Project roles 進入系統管理 > Manage and Assign Roles ![Jenkins-許可權管理-2](https://cdn.devopsing.site/2021/20210113001948.png) ManageRoles - Global roles是對全域性的角色控制 - Project roles只針對專案進行控制,所以需要為每個專案單獨新增指定的role (區別於全域性,只能有專案相關許可權,沒有jenkins管理許可權配置) 配置job pattern需要注意:prod.*代表匹配以prod開頭的內容 例如:如果以dev開頭就寫成 dev.* 一定要加上"."; .*test表示以test結尾的內容專案 ![Jenkins-許可權管理-3](https://cdn.devopsing.site/2021/20210113001952.png) 注意:必須先進行Global roles的配置後方可對Project roles進行配置,可以解為先配置整體性許可權,再按專案分許可權,遵守從大到小許可權控制的原則! ![Jenkins-許可權管理-4](https://cdn.devopsing.site/2021/20210113001954.png) ### 3. Roles 配置規則和流程 這裡強制規定專案role配置規則和流程 #### 3.1 為專案/團隊新增 project role 以“demo”專案為例,新增manager和user兩種role ``` text - 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](https://cdn.devopsing.site/2021/20210113002001.png) ## 新增使用者-LDAP jenkins 預設可以手動新增使用者,由於簡單不做解釋;這裡重點說下企業內部使用LDAP來實現使用者的統一管理,也就是說無須再次建立使用者 ![Jenkins-許可權管理-7](https://cdn.devopsing.site/2021/20210113002003.png) 需要使用[LDAP外掛](https://wiki.jenkins-ci.org/display/JENKINS/LDAP+Plugin),然後在Configure Global Security 頁面進行配置,輸入公司內部LDAP服務資訊。 ![Jenkins-許可權管理-8](https://cdn.devopsing.site/2021/20210113002006.png) 注意: 1. jenkins 預設使用“Jenkins' own user database”,即自己本身的資料庫,一旦切換,當前配置資料可能丟失,所以切忌隨意修改該配置 ! 2. 在配置LDAP前,一定要記得開啟匿名使用者的 admin 許可權,否則一旦配錯,自己就無法登入了! ![Jenkins-許可權管理-9](https://cdn.devopsing.site/2021/20210113002