Basic 認証
Apacheでは、Basic 認証をすることにより、ディレクトリ単位でアクセス制限を設定することができます。
設定方法は、".htaccess" ファイルに Basic 認証の詳細を記述して、".htpasswd" ファイルに許可するユーザー名と暗号化されたパスワードを記述します。
".htaccess" と ".htpasswd" による認証はファイルの走査に時間がかかるので、比較的ユーザーが少ない場合に使用します。
ユーザーが多い場合は、".htpasswd" ファイルの代わりにデータベースの使用を検討してみてください。
Unix 系 暗号化ツール
Unix系のサーバーについては下記の暗号化ツールが使用できます。
「ユーザー名」と「パスワード」を入力して「送信」をクリックします。
作成された 「User line」 を ".htpasswd" に一人ずつ貼り付けます。
暗号化は一方向性で可逆性はありません。 例え閲覧されても解読は非常に困難です。
*注
暗号化されたパスワードは、Unix 系、Windows 系などサーバーの種類によって異なりますから、同機種間でないと共有できません。
.htaccess の記述
".htaccess" ファイルに Basic 認証の詳細を記述します。
".ht" で始まるファイルを閲覧できないようにしておけば、セキュリティ効果を引き上げることができます。
AuthUserFile で認証用ユーザーファイルの名前と設置場所を指定します。
".htaccess" ファイルと同じ場所に設置しても特に問題ありませんが、心配なら一般の閲覧者がアクセスできないドキュメントルート以上に設置して、パーミッションを "604" にしておきます。
# File hidden.
Order allow,deny
Deny from all
# Auth
AuthUserFile /home/xxx/.htpasswd
AuthGroupFile /dev/null
AuthName "Secret Area"
AuthType Basic
require valid-user
.htpasswd の記述
".htaccess" で指定した認証用ユーザーファイル ".htpasswd" を作成して、ユーザー名と暗号化されたパスワードを1行ずつ貼り付けます。
ichiro:$1$k5FS9h8.$k404YuTrYnB1NLh./psx40
hanako:$1$CVDlg8Po$CbCkYV1FaB.a14rYreCi01
確認
Basic 認証を設定したディレクトリにアクセスして確認します。