apacheのベーシック認証をLDAP対応にする。
組織にLDAPサーバある場合はベーシック認証よりもLDAPサーバで認証したほうがよい。
redhat9にてapacheをLDAP対応にし,ベーシック認証をLDAPで行うことにした。
apacheをソースから入れる場合,バージョン2.2系列はうまくいかなかったので2.0系列で行った。
ちなみにRHEL3でもうまくいった。
1.db-4.5.20のインストール
まず初めにBerkeleyDBのインストールを行う。
これは,OpenLDAPのデータベースとして機能するので必要。
以下のサイトからダウンロードしましょう。
http://www.oracle.com/database/berkeley-db/index.html
今回は現時点で最新のBerkeleyDB-4.5.20を使うことにした。
# tar zxvf db-4.5.20.tar.gz -C /usr/local/src
# cd /usr/local/src/db-4.5.20/build_unix
# ../dist/configure --prefix=/usr/local/BerkeleyDB-4.5.20
# make
# make install
わかりやすくシンボリックリンクを作成しましょう。
# ln -s /usr/local/BerkeleyDB-4.5.20 /usr/local/bdb
2.OpenLDAPのインストール
以下のサイトからダウンロードしましょう。
http://www.openldap.org/
今回はopenldap-2.2.30を使いました。
これはLDAPサーバとして2.2系列を使っているので念のためバージョンを合わせておいた。
はじめにBerkeleyDBのインストール先を環境変数を設定して教えてあげます。
# export LDFLAGS="-L/usr/local/bdb/lib"
# export CPPFLAGS="-I/usr/local/bdb/include"
# export LD_LIBRARY_PATH=/usr/local/bdb/lib:$LD_LIBRARY_PATH
インストール作業の開始です。
# ./configure --prefix /usr/local/openldap-2.2.30 \
--enable-crypt --enable-ldbm --enable-wrappers --with-cyrus-sasl=no
# make depend
# make
# make install
わかりやすくシンボリックリンクを作成しましょう。
# ln -s /usr/local/openldap-2.2.30 /usr/local/openldap
3.apacheのインストール
apacheを以下のサイトからダウンロードしましょう。
http://httpd.apache.org/
# tar jxvf httpd-2.0.59.tar.bz2 -C /usr/local/src
# cd /usr/local/src/httpd-2.0.59
aprとapr-utilはapache添付のものを使います。
# cd srclib/apr
# ./configure --prefix=/usr/local/apr-httpd
# make
# make install
# cd ../apr-util
# ./configure --prefix=/usr/local/apr-util-httpd --with-apr=/usr/local/apr-httpd \
--with-ldap-include=/usr/local/openldap/include --with-ldap-lib=/usr/local/openldap/lib --with-ldap
# make
# make install
ようやくapacheのインストールです。
# cd /usr/local/src/httpd-2.0.59
# ./configure --prefix=/usr/local/apache-2.0.59 --enable-so --enable-ldap --enable-auth-ldap \
--with-apr=/usr/local/apr-httpd --with-apr-util=/usr/local/apr-util-httpd
# make
# make install
かわりやすくシンボリックリンクを作成しましょう。
# ln -s /usr/local/apache-2.0.59 /usr/local/apache2
以上でインストールが終了しました。
後は起動スクリプトを用意し,httpd.confなどコンフィグファイルを調整して起動。
httpd.confに以下のような記述をするとLDAPサーバで認証してくれます。
#-------------
# LDAP認証例
#-------------
AuthType Basic
AuthName "Secret Page"
AuthLDAPURL ldap://host.domain.com:389/ou=people,dc=domain,dc=com?uid
require valid-user
Order deny,allow
Deny from all
Allow from 192.168.0.0/255.255.255.0