LoginSignup
15
14

More than 5 years have passed since last update.

nginx + jenkins でユーザログインを設定→アクセスできなくなった

Last updated at Posted at 2014-06-23

nginx + ubuntu に jenkins をインストール。
したまでは良かったが、ユーザログインを有効にしようとした際にハマったのでメモ。

ログイン認証をかけてみた

「jenkins ユーザ作成」でググってひっかかった記事を参考に設定をしてみる。
http://blog.ybbo.net/2014/01/11/centos-%E3%81%AB-jenkins%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%9D%E3%83%BC%E3%83%88%E3%81%A8url%E3%81%AE%E5%A4%89%E6%9B%B4%E3%83%BB%E3%83%A6%E3%83%BC%E3%82%B6/

左メニュー > Jenkinsの管理 > グローバルセキュリティの設定
「セキュリティを有効化」にチェック

書いてある通りにチェックボックスやラジオボタンを選択し、「保存」をクリック。

ところが。

アクセスできなくなった

「保存」した瞬間、基本認証をきかれた。
が、設定していた ID/PASS を入力しても、再度基本認証をきかれる。
再度入力し直しても、また聞かれる。。。

にっちもさっちもいかなくなったので Google先生にすがる。
と、公式 Wiki に以下の記載が!
https://wiki.jenkins-ci.org/display/JA/Disable+security

ログインできないのではどうしようもないので、一旦現状復帰を目指す。
早速やってみる。

$ cd $JENKINS_HOME
$ sudo vi config.xml

以下のように修正。

config.xml
...
<useSecurity>true</useSecurity>
...
↓
...
<useSecurity>false</useSecurity>
...
$ sudo service jenkins restart

何とか復活。

基本認証の設定間違えた?

その後、基本認証を外して同じ設定をしてみた所、問題なくユーザのログイン画面が表示。
useSecurityfalse にして、再度基本認証かけなおしたら、ちゃんと ID/PASS が通る。

むむむ。
どうやら useSecuritytrue だと基本認証のループにハマる模様。
そしてこれは「jenkins管理」 > 「グローバルセキュリティの設定」> 「セキュリティを有効化」をチェックで true になる模様。

これチェック入れないとユーザ作成出来ないじゃん。どうすりゃいいの。

解決方法

どうやら nginx 側の設定が漏れていたようだ。

最後の行にある「proxy_set_header」を忘れないようにします。この記述を忘れるとAuthorizationヘッダがJenkins本体まで通知されてしまい、NginxのBasic認証は通るがJenkinsが401を返すという理不尽な状況に嵌まります

なるほど。Jenkins おじさんに認証が必要だと間違って伝わっていた訳ですね。

という訳で以下のように修正。

nginx.conf
location / {
  auth_basic "Basic Auth";
  auth_basic_user_file "/etc/nginx/.htpasswd";
  ...
  proxy_set_header Authorization ""; # この一行を追加
}

$ sudo service nginx restart でめでたし。

15
14
0

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
15
14