2011-11-30 8 views
48

Jenkinsの特定のジョブのみを表示するようにユーザーを制限する方法はありますか。Jenkinsはユーザーあたりのジョブの表示を制限します

Jenkinsでは、「プロジェクトベースのマトリックス認可戦略」を使用して、プロジェクトごとにユーザー能力を制限することができます。問題は、ユーザーが '全体的な' '読み取り'設定なしでは何もアクセスできないことです。これはすべての仕事を見ることができるようです。

ジョブ制限を許可する別のプラグインはありますか?

答えて

42

が、これはあなたが探しているものを、と思います。各プロジェクトの設定ページで、「プロジェクトベースのセキュリティを有効にする」が表示されます。承認する各ユーザーを追加します。

+1

OPが示唆しているように、全体的な読み取り設定を開く必要があるように見えます。私はすべてを試してみましたが、プロジェクトベースのセキュリティ設定では、全体的な読み取りを確認せずに何かを行うことはできません。私はLDAPを使用している可能性がありますが、グローバルレベルでうまく動作します。 – quickshiftin

+1

全体読み取りを確認する必要がありますが、セキュリティで保護されているプロジェクトでは、「グローバル権限を継承しない」にチェックを入れてください。そうすれば、プロジェクトを見たくないユーザーはそれを見ることができません。 – metaforge

0

「Manage Jenkins」 - >「Manage Users」に移動してください。特定のユーザーに移動し、自分の設定「My Viewsセクション」のデフォルトビューを編集してください。スクリーンショットなしAllow access to specific projects for Users

短い説明:「ジェンキンスの管理」=>「設定システム」の下
使用ジェンキンス「プロジェクトベースのマトリクス認証戦略」

+6

これは、ユーザーからジョブを隠すだけで、アクセスを妨げません。 – stwalkerster

7

プロジェクトベースのマトリックス認証戦略を使用して、全体的な読み取り権限を有効にできますが、システムレベルで読み取りジョブを無効にすることができます。その後、現在のユーザーに見せたい特定のプロジェクトごとにRead Jobを有効にする必要があります。詳細については、this resolved issueを参照してください。そこからの情報:

私はジョブレベルでREAD権限を実装しています。 この場合、特定のジョブのREAD権限がないユーザー は、どのビューでもそのジョブを参照したり、ジョブページに直接アクセスしたり、ジョブの参照を参照することができます(たとえば、上流または下流依存関係)

また、私はさらに進んでRole Strategy Pluginをチェックすることをお勧めします。それはユーザー/ロール管理を簡素化することができます、上記の説明を使用して特定のジョブへのアクセスを与えることができます。

0

「拡張読み取り許可」プラグインをインストールできます。 「グローバル設定」または個々のジョブ構成のいずれかで、ユーザーに「拡張読み取り」アクセス許可を与えることができます。

2

私はいくつかのプラグインの組み合わせを使用します - 私はロールとプラグインの基本的な割り当てのために私はロール戦略プラグインを使用します。

パラメータに応じていくつかの役割を分割する必要がある場合(ジョブランナーを持つすべてのユーザーがジョブを実行できますが、ユーザーのみのユーザーUUUはマシンMMMに展開する展開ジョブを実行できます)、Python Pluginを実行し、pythonスクリプトを最初のビルドステップとして定義し、与えられたパラメータの組み合わせでジョブを実行することを禁止するとsys.exit(-1)で終了します。

Build User Vars Pluginは、環境変数としてジョブを実行しているユーザーに関する情報を私に提供します。

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 "Manage Jenkins" => "Configure System"の下にあるJenkins "Project-based Matrix Authorization Strategy"を使用してください。管理者ユーザーをそこに追加し、すべての権限を与えることを忘れないでください。ここで制限されたユーザーを追加し、全体的な読み取りアクセス権を与えます。 次に、各プロジェクトの構成ページに移動します。これで、「プロジェクトベースのセキュリティを有効にする」オプションが表示されます。承認する各ユーザーを追加します。

関連する問題