ウェブサーバ - アクセス制限 - パスワードによって制限をかける
1. 概要 例題は、以下の環境とします。
2. パスワードファイル作成 パスワードファイルの管理には、「htpasswd」というコマンドを使用します。 (apache24 のインストール時に「/usr/local/bin」にインストールされています) パスワードファイルを作成します。 パスワードファイル作成時に最低限、1ユーザを作成しなければなりません。 $ htpasswd -c /path/passwd hogehoge New password: ← パスワードを入力 Re-type new password: ← パスワードを再入力 Adding password for user hogehoge 「-c」オプションは、作成する「create」という意味です。 その先のパラメータは、パスワードファイル名を示しています。 「/path/passwd hogehoge」の「/hogehoge/passwd」は、パスワードファイル名の指定です。 「hogehoge」はパスワードを設定するユーザアカウント名です。 パスワードとして入力した文字は、エコーバックされません。 打ち間違えると、ユーザアカウントが作成されないので、もう一度コマンドを入力するところからやりなおします。 ユーザを追加する場合は以下のようにします。 $ htpasswd /path/passwd fugafuga New password: ← パスワードを入力 Re-type new password: ← パスワードを再入力 Adding password for user fugafuga これで、ユーザ「fugafuga」が作成されます。 パスワードの変更時も同じコマンドで「-c」オプションをつけないことで変更できます。 ユーザアカウントを削除するときは、パスワードファイルをテキストエディタで開いて、対象のユーザアカウントの行を削除します。 3. コンフィグレーションファイルの設定 /usr/local/etc/apache22/Includes/hogehoge.conf に以下のように記述します。 <Directory "/usr/local/www/data/hogehoge"> ・・・ 略 ・・・ AuthType Basic AuthName "Welcome to hogehoge" AuthUserFile /path/passwd Require valid-user </Directory> 「AuthType」は、認証機構の種別を指定するものですが、パスワードによる基本認証を行う場合は、「Basic」にします。 「AuthName」は、パスワード入力画面の、「領域:」として表示させるメッセージです。 必ず、ダブルクォーテーションでくくります。 中身には、自分の好きなメッセージや、領域を示す内容を記述します。メッセージの表示形式はブラウザによっても異なります。 「AuthUserFile」は、パスワードファイルを指定するものです。 パスワードファイルを置くディレクトリやファイル名は自由ですが、セキュリティ上、ウェブサーバのドキュメントルート外におくべきです。 「require valid-user」は、認証されたユーザにしか、アクセスさせないという定義です。 「.htaccess」に書く場合は、「/usr/local/etc/apache22/Includes/hogehoge.conf」の上記記述を削除して。 「.htaccess」に以下のように記述します。 AuthType Basic AuthName "Welcome to hogehoge" AuthUserFile /path/passwd Require valid-user 「/usr/local/etc/apache22/Includes/hogehoge.conf」を変更した場合は、再起動 service apache24 configtest service apache24 graceful 「.htaccess」を変更した場合は、即時反映されます。 4. ログインの例 設定したサイトにアクセスすると、「Firefox(64.0)」の場合、下記のように表示されます。
$ htpasswd -c /path/passwd hogehoge New password: ← パスワードを入力 Re-type new password: ← パスワードを再入力 Adding password for user hogehoge
$ htpasswd /path/passwd fugafuga New password: ← パスワードを入力 Re-type new password: ← パスワードを再入力 Adding password for user fugafuga
/usr/local/etc/apache22/Includes/hogehoge.conf
<Directory "/usr/local/www/data/hogehoge"> ・・・ 略 ・・・ AuthType Basic AuthName "Welcome to hogehoge" AuthUserFile /path/passwd Require valid-user </Directory>
AuthType Basic AuthName "Welcome to hogehoge" AuthUserFile /path/passwd Require valid-user
service apache24 configtest service apache24 graceful
「Vivaldi(2.2.1388.37)」の場合、下記のように表示されます。
なるほど、「AuthName」の内容が、「Firefox」では表示され、「Vivaldi」では表示されていません。