【簡単に設定】Basic認証のかけ方
公開日 : 最終更新日 :
- コーディング
Webサイトへのアクセスを簡易的に制限する、Basic認証の設定手順について書いていきます。
認証をかけたいディレクトリのフルパスを調べる
htaccessファイルを作成する際に、サイトのフルパスを記述する必要がありますので最初に調べます。
参考:フルパスについて
PHPファイルの作成
フルパスを調べるために使うPHPファイルを作成します。
テキストエディタで任意の名前のPHPファイルを作成しましょう。
今回は「sample.php」というファイル名で作成します。
ファイル内には下記の3行を記述して保存してください。
// sample.php内 <?php echo __FILE__; ?>
参考:マジック定数
サーバーにアップロード
「sample.php」をフルパスの知りたいディレクトリにアップロードします。
例として「example.com」のフルパスを調べるとします。
exampleファイルの構造は以下↓
exampleファイル直下に「sample.php」をアップロードしてください。
PHPファイルにアクセス
example.com/sample.phpにアクセスしましょう。
問題が無ければ白い画面左上に、
「/home/[サーバーID]/example.com/public_html/sample.php」
と表示されます。(エックスサーバーの場合)
※契約しているサーバーによってパスの表示は異なります。
使用するのは「sample.php」ファイル直前までの
「/home/[サーバーID]/example.com/public_html」のパスになります。
PHPファイルは削除してください
フルパスを調べるために使用したファイル(sample.php)は、そのままにしておくと外部からアクセスされた場合、パスの情報が漏れてしまうので必ず削除してください。
.htaccessファイルを作成
ここではBasic認証を設定するためのファイルを作成します。
テキストエディタで「.htaccess」ファイルを作成しましょう。
中身には下記を記述して保存します。
//.htaccess内 AuthUserFile (先ほど調べたフルパス)/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic require valid-user <Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files>
ひとつひとつ解説
AuthUserFile
後に作成する「.htpasswd」までのパスを記述します。
先ほど調べた「/home/[サーバーID]/example.com/public_html」を貼り付け、その後に「/.htpasswd」を追記します。
AuthUserFile /home/[サーバーID]/example.com/public_html/.htpasswd
AuthGroupFile
グループ毎で認証する際に使用しますが、ユーザー毎の認証では使わないので、ここは「/dev/null」を記述します。
AuthGroupFile /dev/null
AuthName
ダイアログに表示される文字列(半角英数推奨)を指定します。
ブラウザによっては表示されません。
下記の場合は「Input ID and Password.」と表示されます。
AuthName "Input ID and Password."
AuthType
認証方法を指定します。
Basic認証を使うので「Basic」と記述します。
AuthType Basic
require
「valid-user」はIDとPasswordを知っている全ユーザーにアクセスを許可する設定です。
require valid-user
deny from all
<Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files>
ブラウザから「.htpasswd」「.htaccess」にアクセスできないようにする記述です。
パスワードなどの重要な情報を記述しているので、他人に見られないようにします。
参考:Apache モジュール mod_access_compat
.htpasswdファイルを作成
ここではIDとPasswordを格納するためのファイルを作成します。
設定したいIDとPasswordを決めましょう。
今回は例として、IDを「basic」、Passwordを「password」にします。
次に決めたPasswordを暗号化する処理を行います。
暗号化ツールはいくつかありますが、
今回は「htpasswd file generation」を紹介します。
IDとPasswordを入力して「生成」ボタンを押すと、「.htpasswd:」右の欄にIDと、暗号化されたPasswordが出力されるのでコピーします。
テキストエディタで「.htpasswd」ファイルを作成し、コピーしたIDと暗号化されたPasswordを貼り付けて保存します。
下記はIDが「basic」で、「o3zw9.FixeVU2」が「password」を暗号化した文字列です。
//.htpasswd内 basic:o3zw9.FixeVU2
アップロードと確認
「.htaccess」と「.htpasswd」を、サーバーの認証をかけたいディレクトリにアップロードしましょう。
サイトにアクセスしてみましょう。
下記のように表示されれば成功です。
IDとPassword(暗号化していない方)を入力してサイトに入れるか確認しましょう。
まとめ
今回は手動でBasic認証を設定する方法を紹介しました。
- フルパスを調べる
- htaccessを作成
- htpasswdを作成
- アクセスしてIDとPasswordを入力
ただレンタルサーバーの管理画面からもBasic認証の設定ができるので、そちらの方がさくっと済ませられます。
一度自身の使っているレンタルサーバーを調べてみるといいかもしれません。
どうしても手動でやる必要が出てきたという時に、こちらの記事を思い出していただけると幸いです。