LoginSignup
0
0

mod_auth_openidc をインストール

Posted at

Ubuntu22.04に mod_auth_openidc をインストール

WindowsのOracleVM VirtualBoxの中にUbuntu22.04を入れて、apacheとmod_auth_openidcを入れていきます。

ubuntuはserver版を使いました。検索すれば、インストール方法は出てくるので省略します。
ubuntuのインストール後、タイムゾーンの設定(Asia/Tokyo)や、viのインストール、telnetdやvsftpdのインストールをしました。
このあたりはお好みで、どうぞ。

apacheから順にインストールしていきます。
以下の作業は sudo su - して rootで行っています

Apache

#apt install apache2

#apache2ctl -t
設定ファイルのエラーチェックができるのですが、以下のようなワーニングが出ています。

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

cd /etc/apache2
vi apache2.conf

70行目あたりに以下を追加
ServerName www.example.com

#apaache2ctl -t

Syntax OK

ワーニングは、出なくなりました。

proxy_http をインストール

#a2enmod proxy_http

Considering dependency proxy for proxy_http:
Enabling module proxy.
Enabling module proxy_http.
To activate the new configuration, you need to run:
  systemctl restart apache2

最新版のmod_auth_openidcを入れたい

検索したところ、以下でできるとの事でした。

#wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb

#apt install ./libapache2-mod-auth-openidc_2.4.14.2-1.focal_amd64.deb

Depends: libssl1.1 (>= 1.1.0) but it is not installable
と表示されてしまいました。
しかもインストールした場所が悪かったのか
focal_amd64.deb couldn't be accesses by user '_apt' (13:Permission denied)

と表示されました。

cat /etc/passwd

とすると、たしかに _apt というユーザが存在します

_apt:x:100:65534::/nonexistent:/usr/sbin/nologin

こいつが、アクセスできるフォルダーを作ります。
私は、/homeの下に _apt を作成しました。

# mkdir _apt
# chown 100:65534 _apt

# ls -al
drwxr-xr-x  2 _apt  nogroup 4096 Aug  5 16:39 _apt

先にLIBSSLをバージョンアップします。

cd /home/_apt してから

wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb

systemctl stop apache2

dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb

(Reading database ... 83005 files and directories currently installed.)
Preparing to unpack libssl1.1_1.1.0g-2ubuntu4_amd64.deb ...
Unpacking libssl1.1:amd64 (1.1.0g-2ubuntu4) ...
Setting up libssl1.1:amd64 (1.1.0g-2ubuntu4) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.)
debconf: falling back to frontend: Readline
Processing triggers for libc-bin (2.35-0ubuntu3.1) ...

いよいよ、mod-auth-openidc です

ブラウザーで、以下にアクセスする
https://github.com/OpenIDC/mod_auth_openidc/

画面右の方に Releases と書かれており
release 2.4.14.2 Latest とあります。

そのリンクをクリックします。

その下にファイル一覧があるので、適当なのを探します。

cd /home/_apt

wget https://github.com/OpenIDC/mod_auth_openidc/releases/download/v2.4.14.2/libapache2-mod-auth-openidc_2.4.14.2-1.focal_amd64.deb

不要かもしれませんが、所有者を変更しておきます。

/home/_apt# chown 100:65534 libssl1.1_1.1.0g-2ubuntu4_amd64.deb

ls -al

-rw-r--r-- 1 _apt nogroup 1128092 Apr 26  2018 libssl1.1_1.1.0g-2ubuntu4_amd64.deb

apt install ./libapache2-mod-auth-openidc_2.4.14.2-1.focal_amd64.deb

必要ならリブートしてください

systemctl start apache2

systemctl status apache2

設定ファイルのチェックも問題なさそうです

/home/_apt# apache2ctl -t
Syntax OK

apacheにインストールされているモジュールの確認をします。

apache2ctl -M | sort

 auth_openidc_module (shared)
 proxy_http_module (shared)
 proxy_module (shared)

設定ファイルを新規作成

cd /etc/apache2/sites-enabled

ls -al

lrwxrwxrwx 1 root root   35 Jul 29 07:47 000-default.conf -> ../sites-available/000-default.conf

ここに reverse-proxy.conf というファイルを新規作成します。
名前は、confで終わっていれば、なんでもよいみたいです。

複数のファイルを置いて、複数のリバースプロキシーを作成することもできます。

reverse-proxy.conf
Listen 18080
<VirtualHost *:18080>
 ServerName  www.local18080.com
 DocumentRoot /var/www/html1

# ProxyPass        /empnum_prod  http://192.168.15.216:8080/empnum_prod/
# ProxyPassReverse /empnum_prod  http://192.168.15.216:8080/empnum_prod/

    OIDCResponseType code
    OIDCCryptoPassphrase 12345678901234567890
    OIDCProviderMetadataURL http://[KeyCloakのIP]:8080/auth/realms/Intra1/.well-known/openid-configuration
    OIDCClientID [KeyCloakのレルム]
    OIDCClientSecret  [KeyCloakの画面からコピー]
    OIDCRedirectURI  http://[ubuntuのIP]:18080/empnum_prod/redirect_url1

    <Location /empnum_prod>
        AuthType openid-connect
        Require valid-user
        ProxyPass        http://192.168.15.63:8080/empnum_prod
        ProxyPassReverse http://192.168.15.63:8080/empnum_prod
    </Location>
</VirtualHost>

0
0
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
0
0