ウェブサイトのアクセス制限方法:Basic認証(基本認証)

Basic認証を使って、ページの閲覧前にユーザー名(ID)とパスワードの入力を求めるアクセス制限(ユーザー認証)を施す

Basic認証(基本認証)を使って、ページの閲覧前にユーザー名(ID)とパスワードの入力を求めるアクセス制限を施す

限定した人々にのみ公開したい会員制コーナーを作りたい場合や、仲間内だけで共有するファイルを置きたい場合など、ウェブサイト内の特定の領域にアクセス制限を施したいことがあります。ウェブ上でのアクセス制限方法は多数ありますが、ユーザー名(ID)とパスワードを使うユーザー認証機能による閲覧制限方法が便利です。

そこで今回は、「.htaccess」という特殊なファイルを使って、Basic認証(基本認証)と呼ばれるユーザー認証機能をウェブサイト内に設置する方法をご紹介いたします。とても簡単な準備で、自サイト内にログイン機能を加えた秘密ページが作れます。

Basic認証(基本認証)とは

Basic認証とは、ほとんどのウェブサーバやブラウザで利用できる、ウェブ上での簡単なユーザー認証の仕組みです。Basic認証が施されているページへブラウザでアクセスしようとすると、下図のような認証ダイアログが表示され、ユーザー名とパスワードの入力が求められます。

ユーザー名(ID)とパスワードの入力を求めるBasic認証(基本認証)画面の例

ユーザー名(ID)とパスワードの入力を求める、Basic認証(基本認証)で表示されるログイン画面の例


閲覧者が使用しているOSやブラウザによって画面の見た目は異なりますが、認証が必要な旨を示す簡単なメッセージに続いて、ユーザー名の入力欄、パスワードの入力欄、OK(ログイン/サインイン)ボタン、キャンセルボタンが表示される点は共通しています。

パスワードだけでなくユーザー名の入力も必要なことから分かるように、複数のユーザーに対して個別のパスワードを発行しておくこともできます。とはいえ、ユーザー別にアクセスログを残す必要がなければ、「1組のユーザー名とパスワード」だけを用意して、全員が共通のユーザー名を利用しても良いでしょう。

Basic認証は、もちろんPCだけでなくスマートフォンやタブレットなどのモバイル端末でも利用できます。PCと比較して認証画面がかなりシンプルですが、下図のようにユーザー名とパスワードの入力が求められます。

スマートフォンやタブレットでもユーザー名(ID)とパスワードの入力を求められる

スマートフォンやタブレットでもユーザー名(ID)とパスワードの入力が求められる


このように、PCやスマートフォンなどのアクセス環境に関係なく、ユーザー名とパスワードによるログインが必要な秘密ページを簡単に作れる機能が、Basic認証です。

Basic認証(基本認証)のサンプルページ
Basic認証サンプルページ

Basic認証サンプルページ

上記の画面イメージで使ったBasic認証のサンプルページを、今お使いのブラウザでも試してみたい場合は、Basic認証サンプルページをご覧下さい。下記の情報でログインを試せます。

  • ユーザー名は「hirake」
  • パスワードは「goma」

正しいユーザー名とパスワードを入力すれば「認証を通過しました」というページが表示され、キャンセルすればエラーページが表示されます。


 

ウェブサイト内の指定ディレクトリ(フォルダ)へのアクセスを一括制限

Basic認証では、ページ単位ではなくディレクトリ単位でアクセスを制限できます。そのため、制限を施したディレクトリ内のどのURLを直接指定してアクセスしても、必ず認証ダイアログが表示されます。例えば画像のURLを直接指定したとしても、ユーザー名とパスワードの入力を避けて閲覧することはできません。

指定ディレクトリ以下のすべてが認証の対象になる

指定ディレクトリ以下のすべてが認証の対象になる


細かく設定を記述すれば、ディレクトリ単位ではなく特定のページやファイルだけにアクセス制限をかけることもできます。本記事ではそこまでは解説していませんが、関連記事をいくつか公開していますので記事末の関連記事リストをご参照下さい。


 
一度認証されると、ブラウザを終了するまで有効
Basic認証の仕組みでは、一度認証に通ればブラウザを終了するまで何度でも再認証なしでアクセスできます。たとえ他のウェブサイトへ移動してから戻ってきたとしても、再度ユーザー名やパスワードを入力する必要はありません。


 
ユーザー名(ID)やパスワードはブラウザに記憶できる
ブラウザにユーザ名とパスワードを記憶させられる

ブラウザにユーザ名とパスワードを記憶させられる

たいていのブラウザには、ユーザー名とパスワードを記憶しておく機能が用意されています。閲覧者がその機能を利用すれば、アクセスのたびにユーザー名とパスワードを入力する手間を省けます。


 
検索エンジンのクローラーもブロックする
Basic認証を施した領域には検索エンジンのクローラーもアクセスできませんから、どのページの中身も収集されることはありません。したがって、検索されたくないページを公開する場合にも活用できます。ただし、外部からたくさんリンクされていれば、(リンクに使われている文字を使って)検索結果に表示される可能性はあります。その場合でも、ページの中身は読まれないため、タイトルや概要文などは表示されません。

認証に失敗してアクセスを拒否された場合の表示

401 Authorization Required エラーページ

401 Authorization Requiredエラー

正しいパスワードを入力できずに認証をキャンセルすると、右図のような「401 Authorization Required」というエラーメッセージが表示されてアクセスが拒否されます。ここで表示される内容はウェブサーバの種類によって異なります。また、ブラウザによっては独自のエラー画面を表示することもあります。


 
401エラーメッセージを独自のページに置き換えた例

401 Authorization Requiredエラーメッセージを、独自のエラーページに置き換えた例

この「401 Authorization Required」エラーメッセージに代わる独自のエラーページを自分で作成することもできます。分かりやすさのためには、何か任意のエラーページを作成しておく方が良いでしょう。

エラーメッセージを独自のページに置き換える方法については、記事「Not Foundなど エラーページの変更(カスタマイズ)方法」で解説していますので、そちらをご参照下さい。なお、この方法にもBasic認証を設定する際と同じ「.htaccess」ファイルを利用します。


 

Basic認証(基本認証)が自サイト上で利用可能かどうか?

サーバのサポートページを見れば、「.htaccess」ファイルの使用可否が分かる。※さくらインターネットの例

サーバのサポートページを見れば、「.htaccess」ファイルの使用可否が分かる。※図はさくらインターネットでの例

Basic認証は、Apache(アパッチ)というウェブサーバの設定ファイルである「.htaccess」という特殊なファイルを作って利用します。この「.htaccess」ファイルは、レンタルサーバであればたいてい利用できます。しかし、プロバイダ提供スペースや無料スペースでは利用できないこともあります。

お使いのサーバで「.htaccess」ファイルによる設定が利用可能かどうかは、サーバ会社のヘルプページなどをご覧になるか、管理者へお尋ね下さい。

Basic認証(基本認証)を使ってアクセス制限を施す手順

Basic認証を利用するために用意する2つのファイル

Basic認証を利用するために用意する2つのファイル

Basic認証を使うには、次の2つのファイルを作成して設置する必要があります。

  1. ウェブサーバの設定を記述する「.htaccess」ファイル
  2. Basic認証用の「ユーザー名と暗号化されたパスワード」のセットを必要なだけ列挙する「.htpasswd」ファイル

ドット記号「.」で始まる特殊なファイル名ですが、どちらも中身はテキスト形式です。決まった書式で記述すれば良いだけなので、作成はさほど難しくはありません。次のページから、順にご紹介いたします。

【この記事の目次】