mod_auth_openidc のMac用バイナリは提供されていないので、自力でコンパイルして組み込んだのですが、紆余曲折してやっと使えるようになったので記録しておこうと思います。
Macのローカルブラウザアプリをインターネットからアクセスできるようにしたくて、閲覧許可にOpenIDConnectを使いたかったのですよね。
環境
- macOS Monterey
- Apache 2.4.55 (Homebrew)
- mod_auth_openidc 2.4.9.4
手順
Homebrew版のApacheを使うので、デフォルトでインストールされているApacheを停止しておきます。
(デフォルトのApacheでもいいのですが、コード署名が必要なので、その場合はコンパイルした mod_auth_openidc.so に署名して使うことになります)
$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
Homebrewをインストールしていない場合はインストールします。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
ビルドに必要なパッケージをインストールします。
( openssl も cjose のビルドに必要ですが、2023年2月現在OpenSSL3系だとビルド中にエラーが起きてしまうようなので、 curl が依存している openssl@1.1 を使いました)
$ brew install curl jansson pcre apr-util apr httpd autoconf automake pkg-config libtool
cjoseをビルドしてインストールします。
$ mkdir ~/Documents/src
$ cd ~/Documents/src/
$ git clone https://github.com/cisco/cjose.git
$ cd cjose
$ ./configure CFLAGS="-I/usr/local/include" --with-openssl=/usr/local/opt/openssl@1.1 --with-jansson=/usr/local/opt/jansson --prefix /usr/local/opt/cjose
$ make
$ make install
mod_auth_openidc をビルドします。
(v2.4.10以降だとなかなかコンパイルが通らなくてv2.4.9系で妥協しています)
$ cd ~/Documents/src/
$ git clone https://github.com/zmartzone/mod_auth_openidc.git
$ cd mod_auth_openidc
$ git checkout refs/tags/v2.4.9.4
$ ./autogen.sh
$ ./configure CJOSE_LIBS=-L/usr/local/opt/cjose/lib CJOSE_CFLAGS=-I/usr/local/opt/cjose/include OPENSSL_LIBS=-L/usr/local/opt/openssl@1.1/lib OPENSSL_CFLAGS=-I/usr/local/opt/openssl@1.1/include
$ make
$ make install
モジュールを読み込みできることを確認します。
$ vi /usr/local/etc/httpd/httpd.conf
:
LoadModule auth_openidc_module lib/httpd/modules/mod_auth_openidc.so
:
$ sudo apachectl configtest
モジュールがうまく組み込めたら、ウェブ上で散見される手順に従って設定すれば動作するでしょう。
参考サイト