最新コラム
-
-
-
-
-
Webサイト制作Webデザイン
【検証】スマートフォンで読み易いfont-sizeとは?
-
Google関連SEO最新情報SEO解析
Looker StudioでAI Overviewは取得できる?連携法と代替手段

.htaccess を使ったBASIC認証は、ユーザーIDとパスワードでアクセス制限がかけられる優れモノ。
その反面、「サーバーに干渉する作業は気後れする…」と避けているWeb担当者も多いのではないでしょうか。
そこで今回は、BASIC認証のメリットとデメリットを踏まえたうえで、手順に沿って設定方法を解説します。
.htaccessシリーズの関連記事
BASIC認証とは、IDとパスワードを持っている一部のユーザーだけにアクセスを許可し、不特定多数の人が閲覧できないようにするセキュリティ機能です。
名称にベーシック(基本)という単語が入っているだけあって、「基本認証」とも呼ばれています。
BASIC認証の基本
セキュリティ対策として閲覧者を制限する方法は、ユーザー名(ID)とパスワードで管理するBASIC認証だけではありません。
IPアドレスやホスト名など、さまざまな条件でアクセス制限をかけることができます。
つまり、閲覧制限は状況に合わせて最適な方法を選んで設定すべきなのです。
中でも下記に当てはまる場合は、他のアクセス制限よりBASIC認証の方が適しています。
BASIC認証の推奨ケース
なお、IP制限を含むさまざまなアクセス制限については、下記の記事にて記述例つきで解説しておりますので参考にしてください。
関連記事
BASIC認証は、主に下記のようなシチュエーションで使います。
BASIC認証を設定すべきケース
つまり、「ネット上にアップしたいが不特定多数に見られるのは困る!」「アクセスを許可したい相手が少数なので大がかりな設定は面倒…」という場合にこそ、BASIC認証が用いられているのです。
結論から言うと、BASIC認証は簡単にアクセスユーザーが制限できる反面、上位のセキュリティ対策とは言えません。
まずは、BASIC認証ならではの特徴について見てみましょう。
BASIC認証の特徴
上記の3~5番を見て分かる通り、ブラウザを閉じるまでは認証が有効あつかいになるため、席を外した隙に第三者に不正アクセスされてしまうリスクがあるのです。
したがって、BASIC認証はあくまで「一時的」かつ「簡易的」なセキュリティ対策として用いた方が良いでしょう。
また、6番の通りパスワードは無料ツールで簡単に暗号化できますが、通信は暗号化されません。
つまり「HTTP」の状態でBASIC認証を行うと、パスワードが暗号化する前の状態で扱われてしまうのです。
BASIC認証を設定する際は、安全対策として必ずSSL通信(HTTPs)下で実行しましょう。
ここからは、.htaccessを使って手動でBASIC認証を設定する手順について解説します。
設定の流れ
ちなみに、IDとパスワードを入力する画面は、たとえ設定が成功していたとしても閲覧者の環境によって変化します。
閲覧ユーザーが使っているパソコンのOS・ブラウザの種類、さらにはバージョンによって異なる画面が表示される仕組みになっているのです。
下記の画像は、あくまで一般的なイメージ例として参考にしてください。

.htaccessファイルの作成時、およびアップロードする際に必要となるのが、絶対パス(フルパス)です。
絶対パス(フルパス)とは、サイト構造の上部から見て「ディレクトリの絶対的位置を表すパス」のこと。
例えば、サイト最上部である1層目のディレクトリの中に2層目のディレクトリが、2層目の中にAというページがあると仮定してみましょう。
この場合、Aページの絶対パス(フルパス)は「/1層目のディレクトリ/2層目のディレクトリ/Aページ」と表現できます。
つまり、絶対パスが分かれば「.htaccessファイル」と「.htpasswdファイル」をアップロードすべき設置場所を特定することができるのです。
絶対パス(フルパス)を調べるには下記のコードを使ってPHPファイルを作成する必要がありますが、時間と手間をかけたくない場合はサーバー管理者に問い合わせた方が良いでしょう。
フルパス調査用PHPファイルの記述例
<?php echo __FILE__; ?>
.htaccessファイルにはWebサーバーに対する指示、つまり「何をして欲しいか」を記述します。
「.htaccess」ファイルの記述例
AuthUserfile /調べておいた絶対パス(フルパス)/.htpasswd AuthGroupfile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user
| 1行目 | AuthUserfile /フルパス/.htpasswd | 調べておいた絶対パスをコピペし、後で作成する「.htpasswd」までのパスを記述する。 |
|---|---|---|
| 2行目 | AuthGroupfile /dev/null | 「グループごと」にアクセスを許可したい時に使用。 本サンプルでは「ユーザーごと」に認証したいので、「/dev/null=そのようなファイルは存在しない」を記述。 |
| 3行目 | AuthName “Please enter your ID and password” | 認証画面に表示するメッセージを設定。 実際の表示は、OSやブラウザによって異なる。 日本語だと文字化けするブラウザもある。 |
| 4行目 | AuthType Basic | 認証タイプを指定する記述。 本サンプルではベーシック認証を設定するので「Basic」と記述。 ダイジェスト認証を設定する場合は、「Basic」を「Digest」に書き変える。 |
| 5行目 | require valid-user | アクセスを許可する条件を指定する。 本サンプルではID&パスが合っている全員にアクセスを許可する「valid-user」を記述。 「require user 条件」など、アクセス許可の範囲を狭めることもできる。 |
.htpasswdファイルの役割は、ユーザーIDとパスワードの格納・管理です。
つまり、.htpasswdファイルには「誰に対してアクセスを許可、または拒否するか」を記述します。
今回は、強固なパスワード作成用と暗号化用の2つの便利ツールを使って.htpasswdファイルを作ってみましょう。
無料ツール(提供:LUFTTOOLS)

出展:LUFTTOOLS「パスワード生成(パスワード作成)ツール」


出展:LUFTTOOLS「.htaccess による認証用 パスワード暗号化ツール」

テキストエディタでは「:」の左側にIDを、右側にパスワードを記述するのがルールです。
下記は今回のサンプル例ですが、「ID=user01」「暗号化したパスワード=msXU0CWndBQKA」となり、必要な分だけ改行して増やすことができます。
user01:msXU0CWndBQKA
続いて、作成した「.htaccessファイル」と「.htpasswdファイル」をサーバーにアップロードします。
アクセス制限をかけたいディレクトリ、つまり事前に調べておいたフルパスの直下に配置されるように置くだけです。
ただし、アップロードの方法はサーバーによって多少の違いがありますので、マニュアルを参照しながら行いましょう。
アップロード後の処理
BASIC認証は、数あるアクセス制限の中で最もポピュラーな存在です。
リダイレクトに比べると.htaccessの扱い方も難しくなく、書き方もシンプルなのでサーバー管理者以外のスタッフが担当している会社も珍しくありません。
個人のブロガーやIT企業に勤めている方なら、ぜひ1度は挑戦してみてはいかがでしょうか。