#はじめに
特定のサイトへのアクセス時にユーザー名とパスワードを用いた簡単な認証をかけることができる、Basic認証の使い方をまとめた記事。
#目次
- 全体の流れ
- 項目別の詳細
- 注意点
#全体の流れ
- .htaccessファイル、.htpasswdファイルを作成
- パスワードのハッシュ化
- サーバーに設置
#項目別の詳細
####.htaccessファイル、.htpasswdファイルを作成・記述
Basic認証は、認証をかけたいファイルのディレクトリにこの二種類の設定ファイルを設置するだけで実現する。
まずは作成。.htaccessと.htpasswdはそれぞれ拡張子を持たないのでtouchコマンドを使うのが最適。
touch .htaccess
touch .htpasswd
続いて記述。
AuthUserfile /フルパス/.htpasswd
AuthGroupfile /dev/null
AuthName "message"
AuthType Basic
require valid-user
//改行
AuthUserfile:.htpasswdの場所をフルパスで記述。
AuthGroupfile:requireで使用するグループファイルのパスを記述するが、要らない場合は/dev/nullでよい。
AuthName:ダイアログに表示される文章。
AuthType:認証タイプを指定。今回はBasic認証なので「Basic」。
require:認証後にアクセスを許可するユーザー(グループ)を指定する。グループを指定する場合は、読み込んだグループファイルに記述したグループ名を書く。特に無ければvalid-userでよい。
user:ハッシュ化したパスワード
ユーザー名とハッシュ化したパスワードを書くだけ。
####パスワードのハッシュ化
.htpasswdに書く内容は、ユーザー名とパスワードさえ決まっていればほぼ一意に決定する(おそらく)。
なので、ハッシュ化を含めたコード生成を自動で行ってくれるサイトを使わせてもらうのが確実。
.htaccess による認証用 パスワード暗号化ツール
####サーバーに設置
作成した二つのファイルを、認証させたいファイルのあるディレクトリに設置する。そのディレクトリ下のすべてのファイルにBasic認証がかかる。
#注意点
サーバーのプログラムが読み込むファイルなので、ちょっとした記述の違いなどでエラーが頻発する。
以下、エラーが出た時、特に注意したい点。
####パーミッション
.htaccessと.htpasswdのパーミッションは604か644にする。
chmod 604(644) ファイル名
####ファイルの最後に空行を入れる
空行により構文の終端が認識されるらしい。
####Apache再起動
基本的に何かを変えたら再起動。
####Apacheの設定ファイルを変更する
サーバー側の設定でBasic認証を有効する必要がある可能性がある。
AllowOverride None //削除
AllowOverride All //追加