よくあるご質問 ご利用の注意事項 当サイトについて お問い合わせ
cman.jp > htaccess作成 > htaccess解説 > BASIC認証
htaccess解説/BASIC認証(パスワード認証)

htaccessの認証機能を利用することで、特定のURL(配下)にアクセスした場合、ページの表示前にパスワード認証機能を設けることができます。
この機能によりアクセス制限することで、セキュリティーを高めることができます。
当サイトでは、BASIC認証(パスワード認証)用のhtaccessファイルの自動作成や、実際に動くサンプルを準備していますので、合わせてご確認ください。

認証の種類
htaccessによるパスワード認証には、2種類の機能があります。
  1. BASIC認証(ベーシック)
    一般的で多く利用されている、ユーザーIDとパスワードによる認証機能となります。
    サーバーに保管するパスワードは暗号化されていますが、インターネットで通信されるユーザーIDとパスワードは暗号化されていないため、通信を傍受された場合はユーザーIDやパスワードが分かってしまう可能性があります。
    強固なセキュリティーが必要場合は、SSL(暗号化通信)や他のhtaccess機能によるアクセス制限を行う必要があります。
    ほぼすべてのブラウザで利用することができ、一般的にhtaccessによるパスワード認証はBASIC認証の事を表しています。
  2. Digest認証(ダイジェスト)
    基本的な機能はBASIC認証と同じとなりますが、BASIC認証のセキュリティーを強化するために、インターネットで通信されるユーザーIDとパスワードを暗号化しています。このため、通信が傍受され場合でもユーザーIDやパスワードが分かってしまうリスクが大幅に低下します。
    ただし、古いブラウザでは対応指定など制約もあり、あまり利用されていません。
当サイトでは、BASIC認証を中心として記載しています。
セキュリティーを強固にしたhtaccessパスワード認証を行いたい場合は、BASIC認証+SSL通信をお勧めいたします。
認証画面
BASIC認証でユーザーIDとパスワードを入力する画面は、クライアントのOSやブラウザによって異なります。認証画面の表示はブラウザの機能となりますので、サーバー側で画面を指定することはできません。
以下は代表的なOSとブラウザの組合せで表示される認証画面となります。
※当社環境のサンプル。画像をクリックするを拡大されます。
Windows XP Windows 7 MacOS X
IE8 拡大画面 拡大画面 (なし)
Firefox
3.6
拡大画面 拡大画面 拡大画面
Chrome6 拡大画面 拡大画面 拡大画面
Safari5 拡大画面 拡大画面 拡大画面
Opera10 拡大画面 拡大画面 拡大画面
BASIC認証の設定(方法)
実際にBASIC認証を行うためには、以下の2ファイルを作成し、認証を行いたいサーバーの該当ディレクトリにアップロードする必要があります
  • 「.htaccess」ファイル
    認証の条件などを指定するファイル(下記参照)
  • 「.htpasswd」ファイル
    認証時のユーザーとパスワードの情報が格納されたファイル(下記参照)
「.htaccess」ファイル
「.htaccess」ファイルは、パスワード認証を行う条件などを指定できます。
当サイトでは、「.htaccess」ファイルの作成機能がありますので、是非ご利用ください。
<Files ~ "^\.ht">
deny from all
</Files>
AuthUserFile /home/cman/public_html/htaccess/sample/basic/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
構文 意味
<Files ~ "^\.ht">
deny from all
</Files>
「.htaccess」「.htpasswd」ファイルを外部(ブラウザ)から見えないようにするための設定するため
AuthUserFile ユーザーIDとパスワードの情報「.htpasswd」ファイルを保管しているサーバー内のパス。
通常は絶対パスで記載する。一般的には、パスの先頭は「/home/」で始まる。
絶対パスが分からない場合は、サーバー管理者に確認ください。
パスを間違えると「No such file or directory: Could not open password file」などのエラーとなる。
AuthGroupFile アクセスできるユーザーをグループ分けする場合に指定する。
サンプルでは、グループの指定は無しとなっている。
AuthName 認証画面に表示するメッセージを設定する。
実際に表示される個所はOSやブラウザにより異なる。(上記「認証画面」を参照)
日本語も指定可能であるが、ブラウザにより文字化けする可能性があるので、なるべく半角英数字で指定した方が良い。
AuthType 認証タイプを指定する。
サンプルでは、「BASIC」認証が指定されている。
「Digest」も指定可能であるが、当サイトでは広く利用されているBASIC認証について記載を行っている。
require 認証したユーザがアクセスできるかの指定を行います。
サンプルでは、「valid-user」を指定してあり、パスワードファイル「.htpasswd」に指定されたユーザー全てをアクセス可能としています。
「valid-user」の他に「user」「group」が指定可能でそれぞれ、アクセスできるユーザーやグループを絞り込みすることが出来ます。
詳細な設定が必要な場合は、「Apache HTTP サーバ バージョン 2.0 ドキュメント」http://httpd.apache.org/docs/2.0/ja/howto/auth.htmlを参照ください。
「.htpasswd」ファイル
「.htpasswd」ファイルは、パスワード認証のユーザーとパスワードを指定できます。
当サイトでは、「.htpasswd」ファイルの作成機能がありますので、是非ご利用ください。
guest:3/H1Ec7SRPVQA
suzuki:$apr1$dTCYavDQ$i75ufSwLF/yH0v5m/l0ZL0
「.htpasswd」ファイルは、「ユーザーID:パスワード」の形式で、認証ユーザー単位に改行を行い記述します。
上記例の場合、「guest」と「suzuki」がユーザーID
パスワードは、パスワード文字列自体が暗号化されています。この暗号化方式は以下の2種類があります。
上記サンプルのパスワード(「:」より右側)は1行目・2行目共に「password」が暗号化されており、1行目が「crypt」方式、2行目が「MD5」方式で暗号化されています。
暗号化方式 意味
crypt
(サンプルの1行目)
・LinuxやUnixでは、一般的に利用されている暗号化方式です。
・先頭8文字しかパスワードとして認識されません。
たとえば、「abcdefghijk」でパスワードを作成しても、「abcdefgh」のみが有効となり、「abcdefgh」を入力しただけで、認証OKとなります。
MD5
(サンプルの2行目)
・Windowsでは標準で使用される暗号化方式となります。
・MD5を利用したhtaccess認証は、使用しているApacheのバージョンににより利用できない可能性があります。
・通常255文字までのパスワードを指定できます。
パスワードは、サーバーのコマンドで作成することができます。
参考:http://httpd.apache.org/docs/2.0/ja/programs/htpasswd.html
当サイトの「htaccess作成」では、ブラウザ上でパスワードを作成できます。
その他
  • 認証が有効の範囲
    「.htaccess」ファイルが置かれたディレクトリとその配下の全てが、認証が必要な範囲となります。
    htaccess留意事項」も合わせてご確認ください。
  • htaccess認証(パスワード)機能の詳細
    詳細につきましては、「http://httpd.apache.org/docs/2.0/ja/howto/auth.html」でご確認ください。
運営会社 : 株式会社シーマン - 個人情報保護方針
当社無料サービス : サーバー監視 - 写真・画像の加工サービス - QRコード作成 - ファイル暗号化 - ブラウザキャプチャ
Copyright (C) 2010 Cman Corporation. All Rights Reserved.