WEBサイトにベーシック認証を設定する方法を紹介

WEBサイトにベーシック認証を設定する方法を紹介します。
例えば、サイトをテストアップする際に、閲覧制限のためにユーザー認証を設定したい場合に便利な方法です。
ベーシック認証を設定するには、.htaccess と .htpasswd ファイルを作成する必要があるので、詳しい作成方法を順を追って説明します。

  1. .htaccess とは?
  2. .htaccess ファイルの作成方法
    1. .htpasswd のフルパスを指定する AuthUserFile
  3. .htpasswd ファイルの作成方法
  4. WordPress にベーシック認証を設定する方法

.htaccess とは

.htaccess(ドットエイチティーアクセス)とは、Webサーバーをディレクトリ単位で制御するためのファイルのことを言います。
例えば、リダイレクトの設定やベーシック認証などの各種設定を行うことができるのですが、Apache (アパッチ) と呼ばれるソフトウェアが使用されている環境が必要です。

.htaccess ファイルの作成方法

ベーシック認証を設定するために .htaccess ファイルを作成します。
ベーシック認証を設定したいディレクトリにファイル .htaccess (ファイル名:.htaccess)を作成。
ファイルのパーミッションの設定は「604」です。
この時不可視ファイルを表示にしないとファイルが表示されません、注意してください。
ファイルを作成したら次のコードをファイルに追加します。

AuthUserFile /home/xxx/xxx/.htpasswd
AuthGroupFile /dev/null
AuthName 'Please enter username and password'
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>

コードを追加後に変更を加える必要があるのは一行目「AuthUserFile」になります。
詳しくは次の項目をご覧ください。

.htpasswd のフルパスを指定する AuthUserFile

AuthUserFile には、後述する .htpasswd のフルパスを指定します。

AuthUserFile /home/xxx/xxx/.htpasswd

設置ディレクトリがわからない時は、次の手段でフルパスを確認できます。
まず、設置ディレクトリに sample.php ファイルを作成して、
次のコードを追加してください。

<?php echo __FILE__; // フルパスを表示 ?>

コードを追加後ブラウザーで sample.php ヘアクセス。
すると sample.php までのフルパスが表示されるので、そのパスを参照して AuthUserFile に指定してください。

AuthGroupFile

AuthGroupFile はグループ単位で認証を行うためのファイルを指定します。
今回はグループ単位の設定は行わないので、/dev/null(ファイルは存在しない)と指定します。

AuthName

AuthName はダイアログに表示される文字列を指定します。

AuthType

AuthType ユーザー認証の方法を指定します。
今回は Basic(基本認証)と指定します。

.htpasswd ファイルの作成方法

次に、ユーザー認証を行うためのIDとパスワードを設定するファイル .htpasswd (ファイル名:.htpasswd)を作成します。
AuthUserFile で指定してフルパスと同じ場所に .htpasswd ファイルを作成。
ファイルのパーミッションの設定は「604」に設定して、不可視ファイルを表示できるようにしてください。
ファイルを作成できたら次のコードを追加してください。
次のコードは、ID が hogehoge パスワードが fugafuga の場合です。

hogehoge:fugafuga

この場合、パスワードが暗号化されていなくて不安なのでパスワードを暗号化します。
IDとパスワードを設定するには次のサービスを利用すると便利です。

・.htaccess による認証用 パスワード暗号化ツール
・パスワード生成(パスワード作成)ツール

以上で設定は終わりです。
ユーザー認証がうまくいかない場合は、パーミッションの設定やディレクトリの設定を確認しましょう。

WordPress にベーシック認証を設定する方法

WordPress サイトにベーシック認証を設定する場合はプラグイン「WP Basic Auth」を利用するのが簡単でおすすめです。
プラグインをインストール後に有効化するだけでベーシック認証をかけることができます。
肝心のIDとパスワードはWordPressのログインIDとパスワードがそのまま設定されます。
便利ではあるのですが、管理者のアイパスを他人に教えることができない場合は、別途ベーシック認証用のアカウントを追加する必要があります。
そのため、このプラグインは本番公開前の対応程度の利用に止める方が良いかもしれません。

まとめ

WEBサイトにベーシック認証を設定する方法を紹介しました。
自前で設定する方が理解が深まりますが、レンタルしているサーバーによっては管理画面からベーシック認証を設定できるサーバーも多いので、それらを利用するのも一つの手だと思います。
あと余談ですが、クライアントなどにIDとパスワードを連絡する際は、「ID : xxx」や「pw : xxx」のように : の後に半角スペースを設けると、ダブルクリックで簡単に選択できるので地味に便利です。余談でした…。