【備忘録】SimpleSAMLphpで管理者ログインできなくてハマった話

こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。

SAML環境のテストのために、SimpleSAMLphpを使って簡易IdP / SPをセットアップしていたのですが(これはまた別で纏める予定)、CentOS 7+PHP 7.3環境でApache+SSL環境を立ち上げて/var/www/simplesamlphp以下に展開したてで管理者ログインできなくなる事象(ERR_TOO_MANY_REDIRECTS)にはまっていました。Webで同様の事象を探しましたが私の場合と同じ原因のものがなかったので、私の環境で起きた原因と直し方を備忘録を兼ねて簡単に纏めます。



環境

  • OS: CentOS 7.9(最新にyumで更新)
  • Apache: 2.4.6-97(最新のものをyumから取得) / User: hogehogeで動作
  • PHP: 7.3.27(remiから取得)
  • SimpleSAMLphp: 1.19.0(最新)

問題の状況

Apache+PHP+SSL環境が動作するところまでを確認。SimpleSAMLphpを取得・展開後、下記の画像で「管理者ログイン」をクリックすると

少しブラウザがなにか開くような挙動をした後に、下記のようなエラー画面になります。


検索結果と症状

これは、内部で無限ループが生じている際に発動するエラーで、検索して調べるとその対処方法ばかりが出てきます。しかし、私の場合はそれらとは異なっており、四苦八苦の上色々調べていくと、挙動がなぜか

  • Apacheの実行ユーザをapache(CentOSのデフォルト)だと動作する
  • Apacheの実行ユーザをhogehoge(新たに作ったユーザ)だと動作しないで無限ループ -> 上述のエラー画面

のようになっていました。

原因と対処方法

結果的に言うと、/var/lib/php/session以下のファイル(セッションファイル)が、多分最初に立ち上げた際にUID/GIDが”apache / apache”で作成されており、それらを更新することが出来ないために起こっていた問題でした。そのため

  • /var/lib/php/session以下のファイルを削除して空にする。
  • hogehogeユーザをapacheグループに追加する(/var/lib/php以下はapacheグループなら書き込める)。

という方法で動作させることが出来ました。

皆様はこのようなケースにハマることはないと思いますが、万が一同じ状況に陥った方が居ましたら、こういうケースもあるよ、という事で情報を(備忘録がてら)共有します。


セキュリティ系連載案内

CM

こちらで小学生の勉強支援サイトをオープンしました。算数のプリント(都度、自動生成)が無料でダウンロードできます。コンテンツは未だ少ないですが、徐々に増やしていきます。


タイトルとURLをコピーしました