1. 程式人生 > 實用技巧 >jenkins許可權外掛配置

jenkins許可權外掛配置

轉載於:https://www.cnblogs.com/Dy1an/p/11202544.html

【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 外掛相比於系統的雖然完善了不少,但是仍然在很多時候顯得不那麼只能,而且前端似乎並不友好。但沒辦法,這東西沒得挑。