セキュリティ 2024.10.17

WordPressのBasic認証の基本と設定手順【プラグインあり/なし】

この記事を書いた人

土井 純也

WordPressスペシャリスト・エンジニア/株式会社e2e 取締役 / CTO

1985年北海道生まれ。
200社以上の大手上場企業のWordPressサイトの制作、保守・セキュリティをサポートしている。

【 展開しているサービス一覧 】
■WordPress開発サービス「wp.make
■WordPress保守/運用サービス「wp.support
■WordPressハッキング/緊急復旧対応サービス「wp.rescue
■WordPressバージョンアップ代行サービス「wp.versionup

Basic認証は、HTTPで使用できるセキュリティ認証の一種です。実装が容易なため、管理画面へのアクセス制限や、一時的にコンテンツを非表示にする場合などで利用されます。

WordPressサイトでBasic認証を設定する場合は、ファイルを編集する方法とプラグインを使用する方法、さらにレンタルサーバー上で設定する方法があります。いずれの方法でも簡単に設定できますが、いくつか注意すべき点もあります。

本記事では、WordPressサイトにBasic認証を設定する手順と注意点について、わかりやすく解説します。

Basic認証とは

Basic認証は、Webサーバー上で利用できる認証の仕組みです。HTTPに標準で搭載されているため、HTTP基本認証とも呼ばれます。ユーザーIDとパスワードを使って認証を行い、実装が容易なため広く利用されています。

Basic認証とは

一度認証されると情報がPCのブラウザに記録され、ブラウザを閉じるまで認証が不要なことや、ディレクトリ単位で認証を設定できることが特徴です。

Basic認証の利用シーン

WordPressサイトでも、簡単にセキュリティやアクセス制御を実現できる手段としてBasic認証が活用されています。
以下にその代表的な利用シーンを紹介します。

Basic認証の利用シーン

管理画面にアクセスするとき

WordPressの管理画面はインターネット上に公開されておりURLも推測しやすいため、ブルートフォースアタック(IDとパスワードを総当たりで試す攻撃)による不正ログインのリスクがあります。Basic認証をかけることで認証が一段階増えるため、手軽なセキュリティ対策としてよく利用されます。

公開前のサイトを保護したいとき

公開前のWebサイトをインターネット上にアップロードする際、Basic認証を設定することで一般のユーザーからのアクセスを防ぐことができます。公開日時が決まっている期間限定ページでも、事前にページをアップロードし、Basic認証でアクセスを制御することで、スムーズに公開することが可能です。

特定のユーザーにだけ表示させたいとき

無料で利用できる簡易的な会員サイトや社内向けのポータルサイトなどでも、Basic認証が適しています。認証されたユーザーだけがアクセスできるようにすることで、コンテンツを保護することが可能です。

クローラーの巡回を回避したいとき

検索エンジンのクローラーを回避したい場合は、メタタグに「noindex」を記載したり、robots.txtを作成したりするのが一般的です。それに加えて、厳密にクローラーからのアクセスを回避したい場合には、Basic認証を設定することでコンテンツの中身を秘匿できます。

WordPressでBasic認証を設定する方法【プラグインなし】

WordPressで、プラグインを使用せずにBasic認証を設定する場合は以下の手順で行います。

  1. 「.htpasswd」を新規作成してコードを記述する
  2. 「.htaccess」にコードを追記する

なお、Basic認証は通常のWebサイトの場合は、ディレクトリ単位で認証をかけることができますが、WordPressの場合はディレクトリ単位での認証は設定方法が複雑になるため、ここでは触れません。

「.htpasswd」を作成する

「.htpasswd」は、Basic認証で使用するユーザーIDとパスワードを保存するファイルです。
「ユーザーID:暗号化したパスワード」という書式で記述します。

まず、WordPressをインストールしたディレクトリで新規にテキストファイル(.txt)を作成します(ファイル名は何でも構いません)。テキストエディタで開き、「ユーザーID:暗号化したパスワード」を記載します。複数IDで設定したい場合は、改行して複数行を追加します。

パスワードは、暗号化した文字列を記述することに注意してください。パスワード暗号化ツールを使用すると、簡単に暗号化文字列を取得できます。

(参考).htaccess による認証用 パスワード暗号化ツール(LUFTTOOLS)

「.htpasswd」記述例(ID、パスワード共に「testuser」の場合):

ユーザーIDと暗号化済みパスワードを記述してからファイルを保存した後、ファイル名を削除して拡張子を「.txt」から「.htpasswd」に変更します。

変更時に「拡張子を変更すると、ファイルが使えなくなる可能性があります。変更しますか?」というメッセージが表示されます。これは「.(ドット)」から始まるファイルが、通常のユーザーには表示されない不可視ファイルとなることを意味します。不可視化することは問題ありませんので「はい」をクリックして「.htpasswd」のファイルを作成します。

「.htaccess」に追記する

ディレクトリ内にある「.htaccess」をテキストエディタで開き、以下のコードを追加します。

コード 内容
AuthUserfile ユーザーIDとパスワードを格納したファイル(.htpasswd)の場所
を指定します。フルパスを指定する際には、パスの区切り文字とし
てバックスラッシュ(¥)ではなく、スラッシュ(/)を使用します。
AuthGroupfile グループごとのアクセス制御を行うファイルを指定します。ここで
は グループ制御を無効にする「/dev/null 」を指定しています。
AuthName 認証ダイアログに表示されるメッセージを指定します。指定した文
字列が認証画面上にメッセージとして表示されます。
AuthType 認証のタイプを指定します。Basic認証を使用するので「Basic」を
指定します。
require 誰が有効なユーザーであるかを指定します。「valid-user」を指定
すると、「.htpasswd」に記載されているユーザーを有効なユー
ザーとして許可します。

「.htaccess」にコードを追記する際には、「#BEGIN WordPress」と書かれている箇所より上に記述するようにしてください。
「.htaccess」に追記する

ファイルを保存したら、うまくBasic認証が設定できているかどうかブラウザを開きなおして確認してみてください。

補足:ファイルのフルパスがわからない/テストしたら500エラーが表示された場合

ファイルのパスがわからない場合は、波線内のコードをコピペしたテキストファイルを「path.php」として保存してください(ファイル名は違うものでもOK)。

そのファイルを認証設定したいディレクトリにアップロードし、ブラウザからアクセスするとファイルのフルパスが表示されます。表示されたフルパスの「path.php」の部分を「.htaccess」に変えて使用してください。

なお、Basic認証のチェックをした際に「500 Internal Server Error」が表示された場合は、パスの記述が誤っている可能性が高いです。上記を参考にパスを確認して記述を見直してください。

.BASIC認証を解除する手順

設定したBasic認証が不要になった場合は、「.htaccess」に追記した部分を削除するか、文頭にハッシュタグ(#)を付けてコメントアウトしてください。また、不要な「.htpasswd」は削除してください。

WordPressでBasic認証を設定する方法【プラグインあり】

WordPressでBasic認証を設定する場合、プラグインを使用する方法もあります。何らかの理由でWebサーバー内のファイルを直接編集できない場合や、より簡単に設定したい場合は、「HTTP Auth」「WP Basic Authentication」などの認証プラグインを使用してください。

・HTTP Auth
HTTP Auth
>>HTTP Auth公式

WordPress管理画面から「プラグイン」→「新規プラグインを追加」を開き、検索欄にプラグイン名(HTTP Auth)を入力して検索します。該当プラグインが見つかったら「今すぐインストール」をクリックしてから「有効化」をクリックします。

WordPressでBasic認証を設定する方法【プラグインあり】1

プラグインを有効化すると、左側のメニューに「HTTP Auth」が追加されます。

次に、「HTTP Auth」→「Setting」をクリックします。下記の表を参考に認証情報を登録したら、「Save Changes」をクリックして内容を保存します。

WordPressでBasic認証を設定する方法【プラグインあり】2

設定する内容は以下4項目です。

項目名 設定内容
HTTP Credentials(認証資格情報) 認証で使用するUsername(ユーザー名)とPassword(パスワード)を登録
Message(メッセージ) Cancel Message(認証に失敗した時のメッセージ)を登録
For(認証対象) Complete Site(サイト全体)またはLogin and Admin Pages
(ログイン画面と管理画面)のいずれかを選択
Activate(有効化) チェックを入れる

ブラウザを開き直してから再度ページにアクセスすると、認証画面が表示されます。

WordPressでBasic認証を設定する方法【プラグインあり】3

「HTTP Auth」以外の認証プラグインとして「WP Basic Authentication」もあります。

・WP Basic Authentication
WP Basic Authentication
>>WP Basic Authentication公式

Basic認証を管理画面で設定できるレンタルサーバーもある

エックスサーバーやConoHa WINGなどの大手レンタルサーバーでは、管理画面からBasic認証を設定できる機能を提供しています。手作業でファイルを書き換えたりプラグインを導入するよりも簡単に設定できるため、自社で利用しているレンタルサーバーがBasic認証の機能を提供している場合は、こちらを利用するとよいでしょう。

(参考)エックスサーバー「アクセス制限」

Basic認証の注意点

Basic認証は簡単に設定できる反面、安全性はそれほど高くありません。そのため、以下の点に注意しつつ、「個人情報や機密情報を含むコンテンツの制限には使用しない」「対価を支払うサービスでは使用しない」などの注意が必要です。

認証情報を盗聴されやすい

Basic認証は、ページにアクセスするユーザーを制限するだけの認証です。標準では通信内容は暗号化されておらず、またユーザーが制限されたページにアクセスする都度認証情報がやりとりされるため、盗聴されるリスクが高くなります。HTTPS通信で暗号化している状態で使用すると盗聴リスクを下げられます。

復号されるリスク

Basic認証の情報は、「Base64」という変換方式を使用しています。64種類の文字列のみを使用した変換のため、盗聴されてしまうと比較的簡単に復号されてしまいます。そのため、セキュリティを重視する大手サービスではBasic認証を無効化するなどの対応を開始しており、徐々にBasic認証は避けられるようになっています。

まとめ

Basic認証は簡単に設定できる認証の仕組みとして、現在は多くのWebサービスで使用されています。しかしセキュリティ面で注意すべき点もあるため、あくまでも補助的なものだという認識を持つことが重要です。Basic認証の使用に適したシーンを見極め、適切に利用することが重要です。

WordPress保守・運用のパートナーなら「wp.support」にお任せ!

WordPressサイトを運用していて、以下のようなお悩みはありませんか?

  • 管理画面を使いやすくしたいけれど、カスタマイズする時間や技術がない…
  • サイトのUI/UXを改善したいけれど、自社内では難しい…
  • WordPressサイトを高速化したいけれど、ノウハウがない…
  • セキュリティ対策をしたいけれど、知識のある人材がいない…
  • 日々の業務に追われて、バージョンアップなどの保守業務が放置気味…
  • ちょっとしたトラブルを気軽に相談できる相手が欲しい…

「wp.support」は、WordPressのプロフェッショナル集団によるWordPress保守サービスです。
「セキュリティ対策」「バージョンアップ対応」「定期バックアップ」はもちろん、「電話サポートが無制限」なのでカスタマイズの方法やトラブル発生時にも気軽にプロに相談できます。

既に導入済みのお客様からも、
「些細なことでも気軽に相談できるパートナー的な存在」
「困ったら相談していいんだ、と気持ちが楽になった」
と大変ご好評をいただいています。

WordPress保守・運用のパートナーをお探しなら、ぜひお気軽にお問合せください。

>> wp.supportに無料相談する

バージョンアップが面倒だと思ったら WordPress保守・セキュリティ対策は『wp.support』にお任せ!

wp.support資料

WordPressのバージョンアップやセキュリティ対策にお悩みではないですか?

面倒な保守・運用作業は全て任せて、コア事業に集中してください。
大手・上場企業100社以上のWebサイトの安全を守る、WordPressのプロフェッショナル集団が、あなたのWordPressサイトを守ります!

【対応範囲】
・WordPress、プラグインのバージョンアップ ・セキュリティ対策 ・継続的なバックアップ ・緊急時の復旧対応 ・技術サポート・電話/メールサポート無制限 etc...

WordPressに関することなら何でもご相談ください!