Jenkinsに誤ったSSOを設定してしまった場合の戻し方

何がおきた?

手元のJenkinsに対して、Google Loginプラグインを使ってSSOを設定しようとしたが
エラーとなってしまいログインできなくなってしまった。
戻し方を調べたのでメモ。

方法1 config.xml を戻す

王道。最も安全。
Jenkinsの設定を大きく変える前は、 $JENKINS_HOME/config.xml をバックアップしておくと良い。
もちろん、私はバックアップしていなかったので次の手段を使った
※厳密にはバックアップはあるが、持ってくるのが面倒だった

方法2 config.xmlを編集する

:::message alert
この手順を行うと、一時的にJenkinsがログイン不要で管理者権限が得られるようになります。
:::

1
2
3
4
5
6
7
8
9
10
11
12
<?xml version='1.1' encoding='UTF-8'?>
<hudson>
<disabledAdministrativeMonitors>
<string>hudson.node_monitors.MonitorMarkedNodeOffline</string>
<string>hudsonHomeIsFull</string>
<string>jenkins.diagnostics.SecurityIsOffMonitor</string>
<string>jenkins.diagnostics.ControllerExecutorsAgents</string>
</disabledAdministrativeMonitors>
<version>2.492.2</version>
<numExecutors>6</numExecutors>
<mode>NORMAL</mode>
<useSecurity>true</useSecurity> ← この true を false にする

たったこれだけ。あとはJenkinsにアクセスすると認証なしで管理者になれる。
Jenkinsにアクセスしたあとは速やかに以下を行う必要がある。
Jenkinsの管理>Security 画面で…

  • ユーザー情報をJenkinsのユーザーデータベース に変更する
  • 権限管理 を認証されたユーザーのみ に変更する
  • Allow anonymous read access のチェックを外す

これをするまでの間、Jenkinsはログイン不要で設定変更ができてしまうので注意。
業務用の場合は、やらないほうが良いでしょう。