【WebServer】「.htaccess」ファイルで「Basic認証」を設定する方法

【WebServer】
「.htaccess」ファイルで「Basic認証」を設定する方法




「.htaccess」ファイルを使って、
簡単な認証「Basic認証」を設定することができます。

「ユーザー名」と「パスワード」を使った認証方法で、
「.htaccess」ファイルに、認証方法の設定を記述して、
別に「.htpasswd」ファイルを作成して、
「ユーザー名」と「パスワード」を記述しておきます。
「パスワード」は、エンコードして記述するので、
見ただけではパスワードはわかりません。
ですが、
「.htaccess」ファイルと「.htpasswd」ファイルには、
パーミッション設定を変更して、
部外者にはアクセスできないように変更する必要がある。



Basic認証とは


Basic認証は、HTTPで定義される認証方式の一つで、基本認証とも呼ばれる。
Basic認証は、ユーザー名とパスワードを「:(コロン)」でつなぎ、「Base64」でエンコードされた文字で認証する。
盗聴や改ざんが簡単であるという欠点があるが、すべてのWebサーバー・Webブラウザで対応しているので、広く使用されている。

のちに、盗聴や改竄を防ぐため、後に「Digest認証」というユーザ名とパスワードを「MD5」でハッシュ化する方法が考案された。




Basic認証の設定ファイルと記述方法


【.htaccess】ファイル

ユーザーにログイン認証させる場合の記述コード
AuthType Basic
AuthName "Input your ID and Password."
AuthUserFile /xxx/xxx/www/.htpasswd
require valid-user



グループにログイン認証させる場合の記述コード
AuthType Basic
AuthUserFile /home/xxx/.htpasswd
AuthGroupFile /dev/null
AuthName "Enter password"
Require valid-user





【.htpasswd】ファイル

ユーザー名:暗号化されたパスワード
ユーザー名:暗号化されたパスワード
ユーザー名:暗号化されたパスワード





パスワードのエンコード


Googleなどで「ベーシック認証 パスワード」と検索すると、 パスワードを暗号化してくれるページがでてくるので、そこで簡単にパスワードを暗号化すると良い。


PHPを操作できるのであれば、適当に上記のコードを記述してブラウザで確認することもできる。

PHPの暗号化コード(ハッシュ)

echo crypt("パスワードテキスト", SALT);