【05】Jenkins:用戶權限管理


寫在前面的話

 

在一個企業研發部門內部,可能存在多個運維人員,而這些運維人員往往負責不同的項目,但是有可能他們用的又是同一個 Jenkins 的不同用戶。那么我們就希望實現一個需求,能夠不同的用戶登錄 Jenkins 以后看到不同的項目。Jenkins 提供了簡單的權限管理,我們可以在 系統管理 --> 全局安全配置 看到:

但是這里的權限配置太過簡略,顯然無法滿足我們復制的需求,所以在這個時候引入了 Jenkins 的一個插件:Role-based Authorization Strategy

 

 

插件:Role-based Authorization Strategy

 

打開插件中心,我們可以搜索:

重啟 Jenkins 以后,再度打開:系統管理 --> 全局安全配置 會發現多了我們剛剛插件的選項

我們選擇該配置,同時在 系統管理 中出現了新的選項:

 

准備工作:

1. 將我們的項目復制成如下用於測試:

 

2. 新建 3 個測試用戶:test / develop / product

打開:系統管理 --> 管理用戶

最終用戶格式:

 

配置權限:

打開:系統管理 --> Manage and Assign Roles

我們主要使用上面兩種。一個用戶想要進行操作必須要有兩種角色,一種是全局,一種是 Project:

1. 創建角色:Manage Roles

2. 分配角色:Assign Roles

說明:我們這三個用戶其實代表着三個不同的屬性,為了區分我給他定義了三種不同角色。這樣以后就可以給每個角色授權不一樣的權限。

當然,我們這里就給了一個全部的只讀權限,用戶可以登錄,並且修改自己的東西。

 

3. 創建項目角色:Manage Roles

 

4. 給用戶分配項目權限:Assign Roles

說明:我們給用戶分配不同的項目和權限,便於測試對比。

 

5. 查看權限效果:

test 用戶登錄后項目:

test 用戶項目權限:

test 用戶權限說明:test 用戶登錄后能看到 TEST 開頭的項目,包括文件夾,但是對於項目,test 用戶都只具有執行權限,而沒有修改和配置的權限。

 

develop 用戶登錄后項目:

develop 用戶項目權限:

develop 用戶權限說明:可以看到,因為我們多配置了 Config 權限的原因,develop 相比於 test 用戶對於分配給自己權限的項目多了修改配置權限。

 

product 用戶登錄后項目:

product 用戶對於 TEST 項目權限:

product 用戶對於 PRODUCT 項目權限:

product 用戶授權說明:我們可以看到,PROCUDT 項目由於授權了 config 權限,所以用戶能夠修改,TEST 項目沒用 config 權限,雖然同樣是授權給了 product 用戶,但是也是只有執行權限而已。

至此,基本的權限管理大致完成!

 

 

特別注意

 

在我們設置用戶權限的時候,默認已經包含了管理員角色:

如果我們一不小心把這個勾去掉了,然后就炸了!

最終的解決辦法是:

1. 停止 Jenkins。

2. 備份 /data/jenkins/jenkins-data/config.xml 配置文件。

3. 修改配置:

<useSecurity>true</useSecurity>

# 改為
<useSecurity>false</useSecurity>

4. 刪除權限配置:建議文件拿來了使用 nodepad++ 類似的工具修改

刪除:<authorizationStrategy> 標簽及其內部內容。

刪除:<securityRealm> 標簽及其內部內容。

5. 啟動 jenkins,此時不需要用戶名密碼,查看設置:

默認沒有啟動安全,我們需要重新配置我們之前的東西!

 

 

小結

 

Role 插件相比於系統的雖然完善了不少,但是仍然在很多時候顯得不那么只能,而且前端似乎並不友好。但沒辦法,這東西沒得挑。


免責聲明!

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



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