LoginSignup
23
22

More than 5 years have passed since last update.

JenkinsでGithubログインできるようにしてOrganizationメンバーに権限を与えてみる

Last updated at Posted at 2014-05-15

JenkinsにおいてGithubアカウントでログインできるようにした。
またGithubのOrganization(開発グループ的なもの)のメンバーだけがJenkinsの権限を持ってジョブを実行できるようにした。
その手順をメモしておく。

 参照サイト

やってみた手順

githubアカウントでjenkinsにログイン出来るようにする

  • jenkinsインストールする
  • Jenkinsのプラグインに以下を追加する
    • Github OAuth Plugin
    • Role Strategy Plugin
  • Githubにアプリを追加する
    • https://github.com/settings/applications/newにアクセスし、以下のようなアプリを作成する
    • Application Name、Application description:適当に設定
    • Homepage URL:[Jenkins URL]
    • Authorization callback URL:[Jenkins URL]/securityRealm/finishLogin
  • jenkinsのグローバルセキュリティの設定を行う
    • ユーザ情報をGithub Authentication Pluginにして作成したアプリのClient IDとClient Secret設定
    • 権限管理をRole-Based Strategyに

jenkins-security-for-github.jpg

Roleを設定して特定ユーザしか操作権限がないようにする

行列による権限設定でも良いけど各ユーザ毎の権限設定が面倒臭いのでRoleつくってユーザに割り当てるようにした。

  • 読み取り専用のRoleを作成する
    • [Jenkinsの管理] → [Manage and Assign Roles] → [Manage Roles]
    • [Global roles]でread-onlyのような名前でroleを追加し、一通りのread権限を付けておく

manage_and_assign_roles.jpg

  • Roleを割り当てる
    • [Jenkinsの管理] → [Manage and Assign Roles] → [Assign Roles]
    • [Global roles]でAnonymousのRoleをread-onlyにする(デフォルトは全権限がある)
    • 自分のGithubアカウント名をaddしてadmin権限をつける

asign_role.jpg

Organizationのメンバーの操作を許可する

GithubはAPIでOrganizationの一覧取得が可能。
JenkinsはAPIでユーザ操作ができないみたい(2014/05/15時点)なのでconfig.xmlを直接編集して再起動する。(API使えたらメンバー変更後の更新とか楽なのに、、、)

git clone https://gist.github.com/1b6b9be40b3686bc94fd.git github_org_members
cd github_org_members
bundle install --path vendor/bundle
bundle exec ruby github_org_members.rb --org-name hoge | xargs -I{} -n1 echo "          <sid>{}</sid>"
  • 出力結果をjenkinsディレクトリのconfig.xmlに入れる(今回は手動でやった)
    • <role name="admin" pattern=".*">の<assignedSIDs>の中身を出力結果と入れ替え
  • jenkinsを再起動する
23
22
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
22