VPSにぶっ立てたJenkinsですが、いちいちユーザーとパスワードを覚えるのがめんどくさいのでGitHubのアカウントでログインできるようにします。

プラグインインストール


GitHub Authenticationというプラグインを使うことにします。ダウンロード数がそこそこありますし、こいつでいいでしょう。サクッとインストールします。

GitHubでOAuthの登録する


Register a new OAuth applicationのページでOAuthの登録をします。

「Authorization callback URL」にhttp://IPかドメイン/securityRealm/finishLoginと入力します。たぶん、この項目以外は使ってないと思うので残りの項目は適当でいいと思います。

「Register application」で登録します。

IDとSecret確認

登録後にClient IDClient Secretを控えます。

Jenkins側のセキュリティ設定


認証方法変更

「グローバルセキュリティの設定」で「GitHub Authentication Plugin」を選択し、先ほどのClient IDClient Secretを入力します。

権限管理

「GitHub Committer Authorization Strategy」を選択し「Admin User Names」に管理者にしたいGitHubのユーザ名を入力します。

GitHubのアカウントを持ってる人なら誰でもJenkinsにログインできるようになるので、権限は一切設定しません。 一切設定しなければ、 「Admin User Names」に入力したユーザ以外はログインはできるけど、一切なにも見れない状態になります。

これで仮に誰かにGitHub OAuthでログインされたとしても、一切何も見れないので、たぶん大丈夫です。たぶん…一応、他の人に協力して試してもらったので大丈夫だと思います…たぶん…

また、ドキュメントをみた感じでは「行列による権限設定」でも権限のコントロールはできそう…ただ、こっちは試してないです…

ログインしてみる


初回は下記のような感じでログイン時にGitHubで許可するかどうか確認されるので「Authorize application」で許可します。

こんな感じでGitHubのユーザでログインできてるのがわかります。

GitHubにログインしていない状態でJenkinsにアクセスした場合


ちなみに…GitHubにログインしていない状態でJenkinsにアクセスすると下記のような感じでGitHubのOAuthの画面が出てきます。

どうしてもログインされたかどうかが気になる場合…


仮にログインされた場合、GitHubのOAuth applicationの項目で何人がOAuthを利用してログインしたかは確認できます。後は、Jenkinsのログインのログを確認するくらいでしょうか…(←デフォルトだと有効になってないです)

ちなみにログインのログを有効にした場合でも、ログイン・ログアウトのログは出てましたが、誰なのかまでは残ってませんでした… あんまり意味がない