Jenkins 基於 Crowd 和 Role-based 插件的角色權限管理

背景

測試環境的 Jenkins 是開發和測試混用的,未作細粒度的權限控制,開發老是構建測試的任務(不提早打招呼),致使測試任務中斷,故須要隔離開發和測試用戶權限。正則表達式

PS:我司是使用 Crowd 進行用戶的權限管理,來實現全部辦公軟件的統一登陸。安全

配置

配置約定cookie

  1. Jenkins 任務命名規範:環境標識-項目組或業務標識-具體項目名稱,eg:dev-pay-payManager;
  2. Jenkins 視圖正則表達式篩選規範:環境標識-.*,eg: dev-.*。

用戶組及權限運維

  1. development:開發人員組,查看開發環境相關的任務(好比:dev、dev二、dev3);
  2. test:測試人員組,查看測試環境相關的任務(好比:sit、open、per);
  3. ops:運維人員組,維護 Jenkins,分配 Admin 權限。

實施步驟測試

  1. 首先,在 Crowd 配置用戶組:development(開發人員組)、test(測試人員組)、ops(運維組),並與 Jenkins 應用關聯;
  2. 其次,Jenkins 上使用 Crowd 安全域,即用戶和用戶組經過 Crowd 獲取及認證;
  3. 最後,Jenkins 上配置受權策略爲Role-Based Strategy,並配置角色、分配角色。

Crowd 配置用戶及用戶組

Crowd 配置用戶及用戶組配置以下:
插件

Jenkins 配置

插件安裝

首先,插件管理中安裝Crowd 2 IntegrationRole-based Authorization Strategy插件。code

Role-based Authorization Strategyhttps://plugins.jenkins.io/role-strategy
Crowd 2 Integrationhttps://plugins.jenkins.io/crowd2blog

Crowd 配置

具體操做細節可參考以前寫的 Atlassian 系列軟件安裝(Crowd+JIRA+Confluence+Bitbucket+Bamboo)Nexus3 集成 crowd 插件token

說明開發

  • Crowd URL:Crowd 的地址;
  • Application Name:Crowd 裏面配置的應用名稱;
  • Application Password:Crowd 裏面配置應用的密碼;
  • Restrict groups:配置須要認證的用戶組;
  • cookie.tokenkey:Crowd 的 token 變量。

Role-Based Strategy 配置

菜單路徑:Manage Jenkins--Security--Manage and Assign Roles

Manage Roles(定義角色)配置

說明

  • 全局角色:admin--管理員權限;read--僅配置只讀權限;
  • 項目角色:根據環境標識或者其餘屬性劃分的系列任務組,通常與視圖保持一致,具體權限根據具體需求設置便可。

Assign Roles(分配角色)配置

說明

  • 全局角色分配:運維組設置爲管理員角色,其餘組設置爲只讀角色,未認證的用戶無任何權限;
  • 項目角色分配:development配置開發環境的權限;test配置測試環境的權限;ops配置運維自建的權限(此處爲了擴展,能夠不分配,運維是 Admin,有全部權限)。
相關文章
相關標籤/搜索