web-dev-qa-db-ja.com

匿名ユーザーがJenkinsのワークスペースを参照せずにジョブリストのみを表示できるようにする

Jenkins CIを実行しています。一般的に提供したいと思います

  1. 特定のグループから認証されたユーザーへのフルアクセス
  2. 匿名ユーザーへの完全読み取りアクセス
  3. 匿名ユーザーが特定のプロジェクトに(完全に)アクセスするのをブロックする

Unixユーザー/グループデータベースプロジェクトベースのマトリックス認証戦略を使用します。 (1)と(2)はうまく機能しますが、(3)を達成するのに苦労しています。

私たちは試しました:

  • inGlobal Security匿名に対するすべての権限を削除し、それをproject-based securityしかしその後、すべての匿名リクエスト(Jenkinsのメインページへのリクエストも)がログインページを生成します。
  • Global Securityで、次の権限を追加します:View-Read(機能しませんでした)、Job-Discover(機能しませんでした)、Job-Read (動作しませんでした)、Overal-Read-最後の1つは動作するように見えましたが、匿名ユーザーに過剰な権限を与え、特定のプロジェクトへのアクセスを制限することができませんでした。

tl; dr

匿名で完全に非表示/ブロックされたいくつかのプロジェクトを含む完全にオープンな(読み取り方向の)Jenkins CIが必要です。

15
Wojtek

OK、それでなんとかできました。

  • 必要なのは ロールベースの認証戦略プラグイン
  • Configure Global Security でこの認証戦略を有効にします
  • ロールの管理と割り当て/ロールの管理新しいロールの作成 anonymous authenticated global project ロールの両方
  • グローバルロール付与匿名ロールのみ全体に付与/読み取り(これは、少なくともログインプロンプトではなく、ナビゲーションとログインページへのリンクを含む匿名ユーザーのメインジェンキンス画面にアクセスします)
  • Project role add anonymous role with regexp pattern that match you project to an anonymous users to access anonymous users to add add right to to ジョブ/読み取りおよびジョブ/ディスカバー
  • Manage and Assign Roles / Assign Roles に移動し、 Anonymous ユーザーグループを anonymous ロール(および特定のグループに認証されたユーザー)。保存する
20
Wojtek

上記でhttps://wiki.jenkins.io/display/JENKINS/Role+Strategy+Pluginプラグイン

次に、しないでくださいManage Rolesページにauthenticatedロールを追加する必要があります。

スクリーンショット: ロールの管理ロールの割り当て

2
Yanjiong Wang