Jenkins2.32用戶和權限管理策略


前言

在使用jenkins的過程中,需要為不同的角色分配相應的權限,如果jenkins的用戶數據能和公司現在的帳號系統結合起來那會更好。

關於如何為用戶分組,我推薦使用 role based authorization strategy 這個插件

我的環境如下:

版本:Jenkins ver. 2.32.3

系統:windows 7 x64


進入用戶管理

如果使用的是jenkins內置的用戶數據庫,操作方法如下:

1.使用管理員帳號登錄,選擇 Configure Global Security  就可以打開用戶管理界面


admin沒有overall/Read權限

在授權策略中選擇安全矩陣之后,並沒有為amdin勾選 overall的權限

image

刷新或者點其它操作就會出現 admin沒有overall/Read權限

image

解決辦法:

1. 在jenkins的安裝目錄下找到 config.xml,備份一份,並打開

2. 找到 <authorizationStrategy> 節點 ,修改內容如下(兩個配置可選)

<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
這個權限對應“任何用戶可以做任何事(沒有任何限制)”
 
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy"/>
這個權限對應“登錄用戶可以做任何事”

3. 重啟jenkins的服務


內置用戶和權限管理

推薦這篇博客講解jenkins內置的用戶管理比較詳細

Jenkins學習七:Jenkins的授權和訪問控制 


用戶管理插件

在插件庫搜索到的安裝量較高的用戶管理有兩個:

Role-based Authorization Strategy:https://plugins.jenkins.io/role-strategy

安裝量:20931

介紹:網上相關的文檔資料較多(推薦使用)

 

Matrix Authorization Strategy:https://plugins.jenkins.io/matrix-auth

安裝量:131937

介紹:文檔較少,未使用。


Role-based Authorization Strategy

這個章節講解這個插件的使用筆記,插件地址:https://plugins.jenkins.io/role-strategy

安裝完 role based authorization strategy 之后,在系統管理的菜單項中會多出一項 “Manager and Assign Roles

創建用戶組

1. 選擇 系統管理 - Manager and Assign Roles 中的 mangage Roles 進行創建用戶組

2. 記住要為所有用戶組勾選overallread權限

image

我的測試可以只勾選Global roles,而無需在project roles中創建


為用戶分配組

1. 選擇 系統管理 - Manager and Assign Roles 中的 Assign Roles 可以為用戶分組

image

我也只在Global roles為用戶分配權限,並沒有為特定的項目分配。

使用通配符

Manager and Assign Roles  - Project roles 中可以添加通配符,為不同組指定可以打包那些項,通配符是匹配創建的job名字

image

我的試驗

1. 在Manage Roles中在Global roles創建用戶組

2. 在Assign Roles 中為具體的用戶分配組,只在global roles下為具體用戶分配組

3 . 如上圖所示,在project roles中並沒有給qingqing_zhao沒有分配權限,但global roles中分配了job_ops權限,所以qingqing_zhao這個用戶擁有job_ops組的權限

4. 而在 anonymous 分配在 job_read 組,這樣無需登錄也可以項目信息,但僅僅可查看job信息,而無權進行任何操作


global roles 和 project roles

global roles全局角色(全局角色可以對jenkins系統進行設置與項目的操作)

project roles項目角色(項目角色只能對項目進行操作)

上述我的試驗中,對qingqing_zhao 這個用戶分配了全局角色權限,所以他也擁有項目的權限,golbal role 的權限大於project roles。

不同用戶的視圖

按照上面的測試,我對用戶分了三個組:admin ,ops ,readonly,下面是這三個組進入jenkins的視圖。

admin組視圖

最高權限組,包括系統和job的管理權限

image


ops組圖

僅僅可對job(項目)進行操作,包括build ,cancel

image


readonly 組

只可對job(項目)進行只讀

image


不同用戶組不同job

總結來說就是在建立job有一定的命名規范,在分配project roles時利用pattern進行過濾(例如:build.*  。表示build開頭號的job都可以訪問)

參考: https://my.oschina.net/boltwu/blog/404893


TODO

利用公司已有帳號系統

Jenkins 使用公司帳號體系或已有帳號進行登錄,利用ldap,不同公司的配置數據不一樣。

我使用的2.32.3版本自帶ldap插件

參考:

http://blog.csdn.net/wanglei_storage/article/details/52935312


用戶權限管理

Jenkins的用戶組管理中的pattern (正規表達式)部分的使用


其他

通過Jenkins copy job 創建新的job 之后不能立即構建


小技巧

web頁url操作jenkins

在web頁就可以重啟或關閉jenkins,操作如下:如果當前登錄的帳號俱備管理員權限,在網址后面加上 /restart就可

http://192.168.70.224:8080/restart


/exit 退出

/reload 重載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM