Jenkins#4 ユーザ・ロール管理
ユーザ・ロールを作成し、ユーザ毎に実行できるジョブを制限させる
目次
Jenkins#4 ユーザ・ロール管理
1.概要
Jenkinsにユーザアカウントを作成し、アカウント毎に実行できるジョブを制限させる。そのために、ロール(役割)を作成し、ロールとユーザの紐づけを行う。
ジョブ作成
ユーザによって「見せる・見せない」を確認するため、以下のジョブを準備する
ジョブ名 | 概要 |
DEV_WebAP | 開発環境のWebAPサーバに対して資材配布する |
DEV_Batch | 開発環境のBatchサーバに対して資材配布する |
ST_WebAP | システムテスト環境のWebAPサーバに対して資材配布する |
ST_Batch | システムテスト環境のBatchサーバに対して資材配布する |
作成するロール
ロール名 | 概要 |
開発者(developer) | 開発環境への資材配布が可能 |
管理者(manager) | システムテスト環境への資材配布が可能 |
2.プラグインの導入
プラグイン「Role-based Authorization Strategy」の導入
ロールの管理を行うため、プラグインの追加を行う。
Jenkinsの管理をクリックする

プラグインの管理をクリックする

- 利用可能タブをクリック
- フィルタにて「Role-based Authorization Strategy」と入力
- 表に表示されるので、チェックを入れる
- ダウンロードして再起動後にインストールをクリック

再起動後に以下を確認する。
- インストール済みタブをクリック
- フィルダーにて「Role-based Authorization Strategy」を入力
- 表に表示されることを確認する

Jenkinsの管理にて、グローバルセキュリティの設定をクリックする

権限設定にて「Role-Based Strategy」を選択し、保存をクリックする

Jenkinsの管理に、Manage and Assing Rolesが表示される

3.ユーザ作成
Jenkinsの管理にて、ユーザの管理をクリックする

ユーザー作成をクリックする

必要な情報を入力する

今回は、user01、user02、user03を作成した

user01でログインを行う

何も設定していないため、何のジョブも参照できない状態となる

adminでログインしなおす

4.権限設定
動作確認用に以下の4つのジョブを用意した

Jenkinsの管理にて、Manage and Assign Rolesをクリックする

Manage Rolesをクリックする


Global rolesで全体の権限設定を行う
- Global rolesのRole to addにて今回は”general”を追加
- 表にgeneralが追加されるので、全体/read/generalにチェックを入れる
※ここで作成したgeneralロールはuser01,user02,user03に後ほど紐づけする

Item rolesでジョブに関する権限設定
- Role to addにてdeveloperを指定、Patternに「DEV_.*」を指定し、Addをクリック
- Role to addにてmanagerを指定、Patternに「ST_.*」を指定し、Addをクリック
- 表に追加されたdeveloper, managerそれぞれにてジョブ/Build,Cancel, Read ビルド/Delete, Replayにチェックを入れる。
Patternには対象とするジョブ名を正規表現で指定している

Node rolesでノードに関する権限設定
今回、Node rolesには特に指定せず、saveをクリックするユーザと権限の紐づけ
5.ユーザと権限の紐づけ
Manage and Assign RolesにてAssign Rolesをクリックする

Global rolesにてAnonymous/generalにチェックを入れる
その他のユーザに「Manage Roles画面で追加したgeneralの設定(全体のread)」を割り当てする

Item rolesにて以下の通り設定する
- user01には「Manage Roles画面で追加したdeveloperの設定(DEV_で始まるジョブの実行権限)」を割り当てる
- 同様にuser02には「managerの設定(ST_で始まるジョブの実行権限)」を割り当て
- user03には「developer, manager」の両方を割り当てする

今回、Node rolesには特に指定せず、saveをクリックする

設定を反映するため、アドレスバーの/jenkins/の後ろにrestartと入力しエンターを押下、はいをクリックする

6.動作確認
user01でログインすると、DEV_で始まるDEV_Batch, DEV_WebAPのみ表示されていることを確認できる

user02でログインすると、ST_で始まるST_Batch, ST_WebAPのみ表示されていることを確認できる

user03でログインすると、DEV_またはST_で始まるジョブが表示されていることを確認できる
