在Apache 2.4中使用LDAP进行身份验证
首先
-
- 社内用のWebサーバをはじめは公開していて、だれでも分析レポート(Rmdで生成したhtmlファイル)を見れたのだが、まずいものもいくつか出てきたので、LDAP認証かけたいよねって事で取り組んだ
-
- Apache2.4でLDAP認証なんて、そこらへんにやり方あるあるなんだろうなと思ったけど、案外Web上にないので、Apache素人の自分には苦労したので、そのメモ
というか最終的には、隣の先輩に手伝ってもらった。。
前提知識
- ApacheとLDAPが何かくらいは分かってて、基本的なディレクティブやLDAPコマンド(ユーザ追加できるとか)は分かってるものとする
准备Dockerfile
-
- Dockerhubに公式?のイメージがあります(こちら)
- でも、LDAP認証をするために、ビルドから必要そうなので、Dockerfileも必要(こちら)
第一步:修改Dockerfile。
在配置中添加选项。
<snip>
&& ./configure --with-ldap --enable-ldap=shared --enable-authnz-ldap=shared --enable-so --enable-ssl --prefix=$HTTPD_PREFIX \
<snip>
第二步:配置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 来限制只有对应的用户可以查看。
第三步。构建并运行 Docker。
我使用普通方式进行构建,并通过docker-compose来启动。完成。
最后
-
- httpd.confだけいじれば良いと思ってら、ビルドするときにオプションが必要だったようです。
- ここらへんってApache2.4の公式ドキュメントに書いてるのかな?見つけきらずに苦労した。