2012年12月29日土曜日

Ubuntuでの基本認証設定

基本認証の設定はApacheに対して行う。

①パスワードファイルの作成
$ sudo htpasswd -c /etc/apache2/mods-available/.htpasswd USER
[sudo] password for USER:
New password:
Re-type new password:
Adding password for user USER
USERが基本認証を問われたときに入力するIDにあたる。
New password:
Re-type new password:
で入力するのがパスワードにあたる。
.htpasswdがパスワードファイルになるが、隠しファイルである必要はなさそう。
またここでは/etc/apache2/mods-available配下に作成したが、これも任意。


②Apache設定ファイルへの反映
ここでは、/var/www配下を公開ディレクトリにしている想定で、配下すべてのページについて認証設定を行う。
自分の環境ではApache2.2を利用しており、設定内容は/etc/apache2/sites-available配下のdefaultファイルを同ディレクトリ内にコピーして使用する。
$ sudo cp default basic
$ sudo vi basic
以下の記述を追記。

<Directory "/var/www">
    AuthType Basic
    AuthName "Closed Zone"
    AuthUserFile /etc/apache2/mods-available/.htpasswd
    Require valid-user
</Directory>

各設定項目の内容は以下のページに詳しい。
Apacheによるベーシック認証
http://www.bnote.net/linux/apache_basicauth.shtml

AuthNameは任意でよいが、基本認証ダイアログに表示されることだけ注意。


③設定の有効化
defaultからコピーしたbasicの有効化。
$ sudo a2ensite basic
Apacheを再起動して設定を有効化させる。
$ sudo /etc/init.d/apache2 reload
画面から対象ページにアクセスして認証ダイアログが表示されることを確認する。
①で設定したID/PWを入力して無事通ったら問題なし。