近年ではApache + LDAPで認証しているところも多いのではないかと思います。ここではApache+OpenLDAPで認証設定を行なってみます。
■Apacheモジュール確認
ApacheでLDAP認証を行う場合、以下の二つがロードされている必要があります。
- mod_ldap
- mod_authnz_ldap
httpd.confで有効となっているかを確認しておきましょう。
# rpm -qa | grep httpd httpd-tools-2.2.15-15.el6_2.1.i686 httpd-2.2.15-15.el6_2.1.i686 # cat /etc/httpd/conf/httpd.conf | grep ldap LoadModule ldap_module modules/mod_ldap.so LoadModule authnz_ldap_module modules/mod_authnz_ldap.so |
■LDAPを使ったBasic認証の設定
httpd.confでアクセス制限をかけたいディレクトリに対して以下のように設定を追加します。
# vi /etc/httpd/conf/httpd.conf <Directory "/var/www/html/ldap"> AuthType Basic AuthBasicProvider ldap AuthName "Require Auth" AuthLDAPURL ldap://localhost:389/ou=Users,dc=unix-power,dc=net?uid?sub Require valid-user </Directory> |
このあと設定を有効にするためにhttpdを再起動します。
# /etc/rc.d/init.d/httpd restart |
あとはブラウザからアクセスし、ユーザ認証が成功すればOKです。上記のhttpd.confはあくまでapache2.2用のものであり、apache2.0や2.4になると設定内容も異なるので注意してください。
■LDAPを使ったDigest認証の設定
上記のBasic認証で「AuthType Basic」の部分を単純にDigestに変更した所、認証は成功しません。安易にそれだけでいけると予想していましたが、軽く調べたところDigest+LDAPはそもそもサポートされていないようです。パッチなんかをつくればいけるのかもしれませんが、時間があれば試してみたいところです。