書籍「いちばんやさしいGoogleビジネスプロフィールの教本」

Basic認証の設定方法について

Webサイト制作

Basic認証の設定方法

このエントリーでは、Basic認証の設定方法についてお伝えします。

Basic認証を設定するにはいくつか方法がありますが、今回は2通りの方法を紹介します。

  • .htaccess と .htpasswd で設定
  • レンタルサーバーで設定

Basic認証とは

Basic認証とはHTTPで利用できる認証方式の1つで、ウェブサイトの閲覧に最低限の認証をかけることが可能です。認証にはIDとパスワードを使います。

Basic認証を使えば、ウェブサイトの公開前に閲覧できるユーザーを制限したり、サイト公開前にクロールをブロックすることが可能です。また会員制サイトにも利用できます。

ウェブサイトにアクセスしたらポップアップが出てきてIDとパスワードを入力する画面が表示された経験があると思います。これがBasic認証です。主要なブラウザがほとんど対応しているので、サイトの閲覧を制限したい場合によく使われています。

Basic認証、ポップアップが出てきてIDとパスワードを入力する画面が表示される

ディレクトリごとに認証を設定できる

Basic認証はディレクトリごとに認証をかけることが可能です。
以下のサイトがあったとします。

https://example.com/
https://example.com/hoge/
https://example.com/hoge/index01.html
https://example.com/hoge2/
https://example.com/hoge2/index01.html

  • https://example.com/ にBasic認証をかけると、ドメイン全体にBasic認証がかかります。
  • https://example.com/hoge/ にBasic認証をかけると、hogeのディレクトリ全体にBasic認証がかかります。この場合、https://example.com/hoge/index01.html にアクセスする際に認証は必要ですが、/hoge2/ のディレクトリにBasic認証はかからないので認証なしでページを閲覧できます。

SSL化していないとセキュリティは脆弱

Basic認証は、IDとパスワードをコロン (:)で繋いで、Base64でエンコードして送信します。
ほとんどすべてのブラウザが対応しているので汎用性が高いのですが、ログインパスワードは平文で送信されます。
SSL化していないサイトの場合、パスワードは丸見えなので通信を盗聴される可能性があります。SSL化しない状態だとセキュリティは脆弱なので、必ずSSL化することをオススメします。

.htaccess と .htpasswd でBasic認証を設定

.htaccess と .htpasswd の2つのファイルでBasic認証を設定する方法をお伝えします。

.htaccess の書き方

.htaccess の書き方を紹介します。

認証をかけたいディレクトリの .htaccess に以下のように記述します。.htaccess ファイルがなければファイルを作成してください。

AuthType Basic
AuthName “好きな名前”
AuthUserFile IDとパスワードのフルパス
require valid-user
  • AuthType・・・Basicと記述すれば、認証方式にBasic認証が指定される
  • AuthName・・・認証に使う名前。英数字ならばなんでもOK
  • AuthUserFile・・・Basic認証に使うIDとパスワードを管理するファイルのフルパス。フルパスはURLではなく、サーバー内のフルパスを指す
  • require・・・valid-userと記述すると、全ユーザーにBasic認証をかける

記述例を見てみましょう。

AuthType Basic
AuthName “Sample”
AuthUserFile /hoge/www/.htpasswd
require valid-user/

※AuthUserFileに記載するフルパスは、レンタルサーバーによって異なるのでご注意ください。

.htaccess ファイルの保存先

アクセス制限したいディレクトリに .htaccess ファイルを保存してください。

.htpasswd の書き方

.htpasswd にはBasic認証をする際のIDとパスワードを、コロン (:)で繋げて記述します。

例えば、次のようなIDとパスワードでBasic認証を設定する場合、

  • ID test
  • パスワード ghty78se8e

.htpasswd には次のように書きます。

test:ghty78se8e

パスワードは暗号化をかける

パスワードを平分で送信するのは危険です。セキュリティ的にNGなので、必ずパスワードで暗号化をかけてください。

パスワードに暗号化をかけるツールはいくつもあるので、この中からお好きなものを選んでください。

暗号化ツールを使って、次のように .htpasswd に記述すればOKです。

test:UXxfGrVgKyDiI

複数ユーザーのIDを設定する

Basic認証は複数ユーザーのIDも設定できます。複数ユーザーを設定するのであれば次のように .htpasswd へ記述してください。

  • ユーザー1:暗号化したパスワード
  • ユーザー2:暗号化したパスワード
  • ユーザー3:暗号化したパスワード

.htaccess に記述したフルパスに .htpasswd を設置する

.htaccess に記述したフルパスに .htpasswd を設置します。

これでBasic認証の設定が完了します。

レンタルサーバーでBasic認証を設定

多くのレンタルサーバーでは、管理画面からBasic認証を設定することが可能です。

レンタルサーバーによって管理画面は異なりますので、ホスティング事業者のサポートやマニュアルをご覧ください。詳しい手順が載っているはずです。

ちなみにエックスサーバーでBasic認証を設定するには、「アクセス制限」から設定することが可能です。

エックスサーバーでBasic認証を設定する

さいごに

以上、Basic認証の設定方法についてお伝えしました。

公開前のサイトに閲覧の制限をかけたり、クロールをブロックするときにBasic認証は利用できます。Basic認証の設定はいくつか方法がありますが、次のどちらかの方法が簡単でオススメです。

  • .htaccess と .htpasswd で設定
  • レンタルサーバで設定