はじめに
- 社内用のWebサーバをはじめは公開していて、だれでも分析レポート(Rmdで生成したhtmlファイル)を見れたのだが、まずいものもいくつか出てきたので、LDAP認証かけたいよねって事で取り組んだ
- Apache2.4でLDAP認証なんて、そこらへんにやり方あるあるなんだろうなと思ったけど、案外Web上にないので、Apache素人の自分には苦労したので、そのメモ
- というか最終的には、隣の先輩に手伝ってもらった。。
前提知識
- ApacheとLDAPが何かくらいは分かってて、基本的なディレクティブやLDAPコマンド(ユーザ追加できるとか)は分かってるものとする
Dockerfileの準備
STEP 1. Dockerfileの修正
configureするところにオプション追加。
<snip>
&& ./configure --with-ldap --enable-ldap=shared --enable-authnz-ldap=shared --enable-so --enable-ssl --prefix=$HTTPD_PREFIX \
<snip>
STEP 2. httpd.confの設定
公開用に修正したけど、以下で動きました。
<Location />
AuthType Basic
AuthBasicProvider ldap
SetHandler ldap-status
AuthName "Members Only"
AuthLDAPURL ldap://[LDAP Server IPアドレス]:[ポート番号]/ou=People,dc=hogehoge,dc=jp?uid
Require valid-user
</Location>
AuthLDAPURL でLDAPサーバの検索範囲を指定して、 Require で該当するユーザのみ閲覧可能とする
STEP 3. Docker build & run
ここは普通にビルドして、docker-composeで立ち上げた。Fin.
おわりに
- httpd.confだけいじれば良いと思ってら、ビルドするときにオプションが必要だったようです。
- ここらへんってApache2.4の公式ドキュメントに書いてるのかな?見つけきらずに苦労した。