在 Mac 上使用 Apache 的 mod_auth_openidc

由于没有提供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)"

安装构建所需的软件包。

(虽然在构建cjose时openssl也是必需的,但目前(截止2023年2月),使用OpenSSL 3系列在构建过程中会发生错误,因此使用了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

如果成功地嵌入了模块,按照在互联网上广泛见到的步骤进行设置,就可以让它运行起来。

请参考以下网站

 

广告
将在 10 秒后关闭
bannerAds