Table of contents
Webページのユーザ認証もLDAPで
htdigestを使用してパスワード認証させてみるのページで、既に認証設定はなされておりますが、これまた、認証ユーザ/パスワードは別物。これをLDAPアカウントで認証させてあげれば、LDAPにアカウント登録されている人は、自動的にそのHPにもアクセス権をもつことができます。
HP側での認証の設定。
Gentooの場合は、/etc/apache2/vhosts.d/default_vhost.includeとか、/etc/apache2/vhosts.d/default_ssl_vhost.includeに、閲覧させるHPの設定が書かれているはず。例えばこんなかんじ?
<Directory /home/var/www/localhost/htdocs/board> Options -Indexes FollowSymLinks MultiViews AllowOverride All SSLRequireSSL ←SSLしかゆるしません(一つ前の設定が残ってるのね) AuthType Digest ←MD5ダイジェスト認証を要求 AuthName "User Only" ポップアップするパスワード入力窓に表示させるメッセージ AuthDigestFile /etc/apache2/userpasswd ←パスワードファイルの指定 require valid-user ←パスワードファイルに記述されている全てのユーザが参照できる <IfModule mod_access.c> Order deny,allow Allow from all </IfModule> </Directory>
注意です。LDAPを使用する場合は、Digest認証サポートされておりません。Basic認証のみです。なので、ふつーにやってしまうとパスワードがダダ漏れになってしまうので、https側を使用するなどしてほごしてあげましょうね。
で、うえのディレクティブ記載を、以下の用に変更してあげましょう。
<Directory /home/var/www/localhost/htdocs/board> Options -Indexes FollowSymLinks MultiViews AllowOverride All SSLRequireSSL ←SSLしかゆるしません(一つ前の設定が残ってるのね) AuthType Basic ←Basic認証です AuthName "Please input user and password" AuthBasicProvider ldap ←Basic認証基盤をLDAP使用します。 AuthLDAPBindDN "cn=syncuser,dc=example,dc=com" ←LDAPにバインドするユーザ指定 AuthLDAPBindPassword secret ←LDAPユーザのパスワード AuthLDAPURL "ldap://foo.example.com/ou=People,dc=example,dc=example?uid" ←BaseDNと検索キーの指定 require valid-user <IfModule mod_access.c> Order deny,allow Allow from all </IfModule> </Directory>
AuthLDAPURLの指定の仕方は、LDAPにおける検索キーなので、ディレクティブの使用方法説明などをじっくり見てやってください。 requireの指定の仕方も、valid-user(LDAPに登録されている全ユーザ)、user XXXX(XXXXさんだけ使用を許可する)など出来ますので、試行錯誤してみてください。
で、再起動します。
# /etc/init.d/apache2 restart
Page Info | |
---|---|
Page Name : | Gentoo Linuxな生活/ApacheのBasic認証をLDAPで |
Page aliases : | None |
Page owner : | maruo |
Can Read | |
Groups : | All visitors |
Users : | All visitors |
Can Edit | |
Groups : | No one |
Users : | No one |
Counter: 5101,
today: 1,
yesterday: 1
Princeps date: 2011-01-08 (Sat) 20:58:06
Last-modified: 2011-01-11 (Tue) 01:04:35 (JST) (5020d) by maruo