2011-11-30 64 views
48

有沒有一種方法可以限制用戶僅查看Jenkins中的某些工作。Jenkins限制每個用戶的工作視圖

Jenkins允許通過「基於項目的矩陣授權策略」來限制每個項目的用戶能力。問題在於,沒有「總體」「讀取」設置,用戶無法訪問任何內容。這似乎允許他們查看所有的工作。

是否有另一個插件可以允許工作限制?

回答

42

以爲這是你要搜索的內容:沒有截圖Allow access to specific projects for Users

簡短說明:
使用詹金斯「基於項目的矩陣授權策略」,「管理詹金斯」 =>「系統配置」下。在每個項目的配置頁面上,您現在擁有「啓用基於項目的安全性」。現在添加您想要授權的每個用戶。

+1

看起來您仍然需要按照OP的建議打開Overall Reading設置。我已經嘗試了一切,無法檢查整體閱讀,無法獲得基於項目的安全設置。可能是因爲我在使用LDAP,但它在全球範圍內正常工作。 – quickshiftin

+1

您必須檢查整體閱讀,但是對於您正在保護的項目,請確保選中「不繼承全局權限」。這樣,你不想看到該項目的用戶將不會看到它。 – metaforge

0

嘗試去「管理詹金斯」 - >「管理用戶」去特定用戶,編輯他/她的配置「我的視圖部分」默認視圖。

+6

這隻會隱藏用戶的工作,並不妨礙對用戶的訪問。 – stwalkerster

7

您可以使用基於項目的矩陣驗證策略並啓用讀取總體權限,但禁用系統級別的讀取作業。之後,您應爲每個您希望爲當前用戶顯示的特定項目啓用「讀取作業」。有關更多信息,請參閱this resolved issue。從那裏的一些信息:

我正在執行工作級別的讀權限。 完成此操作後,缺少特定作業 的讀取權限的用戶不會:在任何視圖中查看該作業,能夠直接訪問作業頁面,查看對該作業的任何引用(例如在上游或下游依賴關係)

此外,我建議你去更進一步,並檢查出Role Strategy Plugin。它可以簡化用戶/角色管理,您可以使用上述描述來訪問特定的作業。

0

您可以安裝「Extended Read Permission」插件。 然後在「全局設置」或單個作業配置中,您可以授予用戶「擴展讀取」權限。

2

我使用幾個插件的組合 - 用於角色和權限的基本分配我使用角色策略插件

當我需要根據參數拆分一些角色時(例如,每個有job-runner的人都可以運行作業,但只允許用戶UUU運行部署作業以部署到機器MMM上),我使用Python插件並定義一個python腳本作爲第一個構建步驟,並在作業被禁止以給定的參數組合運行時以sys.exit(-1)結束。

構建用戶變量插件向我提供有關用戶執行作業的信息作爲環境變量。

E.G:

import os 
import sys 

print os.environ["BUILD_USER"], "deploying to", os.environ["target_host"] 

# only some users are allowed to deploy to servers "MMM" 
mmm_users = ["UUU"] 

if os.environ["target_host"] != "MMM" or os.environ["BUILD_USER"] in mmm_users: 
    print "access granted" 
else: 
    print "access denied" 
    sys.exit(-1) 
7

只有一個插件,幫助我:基於角色的策略

wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin

但官方文檔(wiki.jenkins-ci.org/display/JENKINS/Role+Strategy +插件)很差。

這是一個偉大的文檔的真實的例子:

kblearningacademy.com/configure-role-strategy-plugin-in-jenkins

我在工作停止的情況下,轉換此頁PDF:

kblearningacademy_com_jenkins_Role+Strategy+Plugin

我希望這可以幫助別人。

+0

這是文檔中的關鍵 - 步驟9.根據每個項目添加項目角色。 –

0

如上所述Vadim 使用Jenkins的「基於項目的矩陣授權策略」在 「Manage Jenkins」=>「配置系統」。不要忘記在那裏添加你的管理員用戶並給予所有權限。現在將受限用戶添加到那裏,並提供整體讀取權限。 然後進入每個項目的配置頁面,你現在有「啓用基於項目的安全性」選項。現在添加您想要授權的每個用戶。

相關問題