コンテンツのパスワード保護(基本認証)
Copyright© N/A
Apache環境においてウェブサーバー上の特定のファイルまたはディレクトリへのアクセスに対し、パスワード入力によるユーザー認証(基本認証)を必要とするように設定する方法を解説する。基本認証方式はユーザ名とパスワードテキストの入力を求め、入力された情報がサーバー側の記録と一致すればアクセスを許可する簡易なもので、ほとんどのブラウザが標準で対応しているため、これを用いることで簡単にユーザ認証を設けることが出来る。
![]() |
Windows XP + Internet Explorer6で 表示される認証ダイアログ |
基本認証のセキュリティレベル
HTTP+基本認証は、パスワードがクリアテキストで送受信されるため、盗聴や改ざんの恐れがあり重要な認証には適さない。より高いセキュリティレベルが必要な場合はSSL(HTTPSなど)など通信が暗号化されるプロトコルの利用を検討する必要がある。しかし一般ユーザ向けの簡易な認証方式としては、HTTP+基本認証でも十分機能を果たす。
.htpasswdファイルの作成
基本認証方式でユーザーのパスワード認証を行うには、まず認証情報を保存する".htpasswd"ファイルを作成、サーバーにアップロードする必要がある。このファイルは「ユーザ名」と「パスワードを暗号化した文字列」を列挙したテキストファイルで次のようになっている。
# .htpasswdファイル # ユーザー名:暗号化パスワード user1:/h0iSByVVHN6I user2:esH.CzKQna1OU
暗号化パスワードは元の平文パスワードをUNIX-crypt関数で暗号化した文字列で、この部分は自分で用意する必要がある。ユーザ登録作業を端末コンソール上で手動にて行う場合は、Apacheに付属の"htpasswd"コマンドを用いることで、これらは半自動化して行うことが出来る。
.htpasswd作成Flashツール(DES-crypt) |
このツールを用いると.htpasswdファイルを自動的に生成することが出来ます。ユーザ名とパスワードを入力して[ADD]ボタンを押して下さい。.htpasswdに記述する内容が下のテキスト領域に表示されます。 |
.htaccessファイルの設定
パスワードファイルが用意できたら、あとは.htaccessに認証を有効化するディレクティブを記述する。
# .htaccessファイル # 認証方式 AuthType Basic # パスワード入力ダイアログに表示されるメッセージ AuthName "WELCOME" # パスワードファイル(指定は絶対パス) AuthUserFile /home/~user/.htpasswd # ユーザーグループ AuthGroupFile /dev/null # 特定のファイルへのアクセスに対する認証 <Files admin.htm> require valid-user </Files> # 特定のディレクトリへのアクセスに対する認証 <Directory admin> require valid-user </Directory>