パスワード認証(BASIC認証)の設定方法
Publish2014/04/15(火)
サイト上で特定の人にだけ公開したい場合に使用するアクセス制限ですが、一般的にはBASIC認証と呼ばれる手法を用いて対応する場合が多いです。
そこで、BASIC認証の設定方法の基礎をおさらいしようと思います。
まずはBASIC認証をWikipediaで調べるとこんな説明です。
Basic認証(ベーシックにんしょう、Basic Authentication)とは、HTTPで定義される認証方式の一つ。
基本認証と呼ばれることも。
Basic認証では、ユーザ名とパスワードの組みをコロン “:” でつなぎ、Base64でエンコードして送信する。
このため、盗聴や改竄が簡単であるという欠点を持つが、ほぼ全てのWebサーバおよびブラウザで対応しているため、広く使われている。
分かる人には分かりますが、分からない人には分からないという感じの説明ですね。
簡単にいうと、セキュリティ的に高いレベルでの認証方法ではないけど、多くのサーバーで利用できるし対応するブラウザも多い認証方式ですよという感じです。
サイト上で認証をかける際の基本的な方法と考えるとよいかと思います。
BASIC認証の設置について
BASIC認証をサイト上に設置する場合には、2つのファイルが必要になります。
その2つは
- .htaccess
- .htpasswd
の2種類です。
まずは.htaccessを認証したいディレクトリに置きます。
.htaccessのファイル内にはパスワードの保存先として.htpasswdファイルへのパスが記載されています。
.htpasswdファイルには、ユーザーとパスワードの情報が記載されており、.htaccessファイルの設置されたディレクトリにアクセスがあった際にダイアログを表示してユーザー名とパスワードで認証を行います。
BASIC認証の設置の際の注意点
上記で説明したようにBASIC認証はサーバー側に.htaccessのファイルを保存する事で対応するのですが、レンタルサーバーによっては.htaccessファイルの設置が禁止されているサーバーもあります。
その場合はBASIC認証を設置する事ができませんが、管理画面上からパスワード制限のみを設定できるようになっているサーバーなどもありますので、.htaccessが設置できない場合はサーバーのコントロールパネルを確認しましょう。
また、ユーザーIDとパスワードを保存してある.htpasswdのファイルはログイン時に認証をするために必要なものですが、ブラウザからアクセスできる場所に置いておくと中身が見れちゃうので、Webで閲覧できないフォルダに設置しましょう。
BASIC認証を作成する
次は実際にBASIC認証を作成します。
作成の際は作成ツールがオンライン上にあるので、それを利用すると便利です。
例えば以下のサイトが、作成するツールの一つです。
このサイト上でユーザー名とパスワードを入力して生成します。
.htaccess Editor
試しに、両方ともtestで作成すると「test:X5iWHno7Ur4XA」という文字列が生成されます。
この中身を.htpasswdに貼付けます。
試しに作成してわかるように、testという文字列がX5iWHno7Ur4XAという文字列に暗号化されています。
暗号化されているので、普通の人には何が書いてあるかは分かりません。
次に、.htpasswdまでのサイトパスを入力すると今度は.htaccessの記述内容が表示されますので、その内容をコピーして.htaccessファイルに貼付ければ作成は完了です。
サイトのパスはサーバーによって異なりますので、分からなければサーバー管理者さんに質問するといいかと思います。
あと、.htaccessと.htpasswdファイルはそのまま作成できないので、その場合は一旦.htaccess.txtというようにテキスト形式で保存し、サーバー上でリネームして使用するというのがよくある方法です。
次からはサーバー上の.htaccessファイルをダウンロードして使えばいいかと思います。
これは.から始まるファイルがパソコン上で隠しファイルとなっているために起こる現象です。
WindowsやMacでも拡張子を表示していないと表示もされないので、フォルダの設定で拡張子を表示するようにしておきましょう。
BASIC認証を利用する事で、手軽に閲覧を制限した場所を作れるのは非常に便利です。
僕の場合でも、お客さんのサイトのテスト環境を作成する場合などによく使用しています。
.htaccessで保護されたエリアはGoogleの検索結果にも表示されない(詳しい理由は省略します)ので、ミラーサイトにもなりません。
誰にも見られない感じでテストしたい場合に使用されてはいかがでしょう。