【Apache】Apache(Webサーバー)でBasic認証を実装する方法 | .htaccess

Basic-Auth

こんにちはフロントエンドエンジニアのまさにょんです!

今回は、Apache(Webサーバー)でBasic認証を実装する方法を解説していきます。

Basic認証をかけたいディレクトリのフルパスを調べる

「 .htaccess 」ファイルにBasic認証の設定を記述する際に、サイトのフルパスを記述する必要があります。

なので、まずはBasic認証をかけたいディレクトリのフルパスを調べます。

もしVPSなどのレンタルサーバーで簡単にフルパスを調べられない場合は、次のようなフルパスを調べるために使うPHPファイルを作成します。

<?php
    echo __FILE__;
?>

PHPファイルを用意できたら、フルパスの知りたいディレクトリにアップロードします。

例えば「example.com」というドメインのWebサイトのフルパスを調べるとしたら、

exampleファイル直下に「sample.php」をアップロードしてください。

アップロードした後に「 example.com/sample.php 」にアクセスすると、

WebサイトのフルパスがWeb画面に出力されるので、それをコピーして、テキストファイルなどに貼り付けて保持しておきます。

Basic認証用の「ID / Pass」設定ファイル「 .htpasswd 」を作成する

「 .htpasswd 」を作成する

まず「 .htpasswd 」という名前のファイルを「 .htaccess 」と同じ階層に作っておきます。

「ID / Pass」の作成

Basic認証では、IDとパスワードが必要になります。

また、パスワードは暗号化されたものでなければいけません。

暗号化がされていないバスワードを記述してもベーシック認証は動作しない仕組みになっており、

ある程度のセキュリティが担保されています。

今回は、パスワード暗号化ツールを使用して、暗号化されたPasswordを自動生成します。

.htaccess による認証用 パスワード暗号化ツール

上記のツールを利用すると、IDと暗号化されたPasswordを自動生成してくれます。

あとは、これを先ほど作成した「 .htpasswd 」ファイルに貼り付けます。

【 パスワード暗号化ツール 】

htpasswdコマンドを使って「.htpasswd」ファイルを作成する

htpasswdコマンドを使って「.htpasswd」を自動生成する方法もあります。

最初にファイルを作成するときは -c オプションを付けて実行する。

htpasswd -c <パスワードファイル名> <ユーザ名>

ユーザを追加する場合はオプションなしで実行する。

htpasswd <パスワードファイル名> <ユーザ名>

ユーザを削除する場合は -D オプションを付けて実行する。

htpasswd -D <パスワードファイル名> <ユーザ名>

引用元: .htaccessでBASIC認証

「 .htaccess 」にBasic認証の設定を記述する

「 .htaccess 」ファイルには、Basic認証の設定に関する記述をしていきます。

# AuthUserFile に指定するのは、「 .htpasswd 」までのフルパス
AuthUserFile C:¥httpd-2.4.54-win64-VS16¥Apache¥RobotamaWebApp¥.htpasswd
AuthGroupFile /dev/null
AuthName "Input ID and Password"
AuthType Basic
Require valid-user

AuthUserFile は認証で使うユーザ名とパスワードを記述したファイル(パスワードファイル)までのフルパスを指定します。

今回の場合は「 .htpasswd 」までのフルパスになります。

AuthGroupFile は認証で使うグループを記述したファイルを指定します。

使わない場合は /dev/null とすればいいです。

AuthName はダイアログに表示される文字列(半角英数推奨)を指定します。

ブラウザによっては表示されません。

AuthType は認証方法を指定します。

Basic認証を使うので「Basic」と記述します。

Require この制限でアクセスを許可するユーザやグループを指定します。

「valid-user」はIDとPasswordを知っている、すべてのユーザーにアクセスを許可する設定です。

「 .htaccess 」ファイルの設定は、上記で完了です。

「.htpasswd」ファイルには、IDと暗号化されたPasswordが「 ID: 暗号化されたPassword 」の形で記述されています。

この「ID / Password」をBasic認証を通す人達に共有すれば、Basic認証によって特定の人だけが閲覧できるようになります。

Robotama:hBBu7iivf9m3A

Twitterやってます!Follow Me!

神聖グンマー帝国の逆襲🔥

神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!

プログラミング学習・エンジニア転職関連の情報

自宅で現役エンジニアから学べる『TechAcademy』 (エンジニア転職保証)

『GEEK JOBキャンプ』スピード転職コース(無料)

【IT道場】入校時0円! 就職目的プログラミングスクール

エンジニア転職なら100%「自社開発」求人に強い【クラウドリンク】

『techgym』 (Python特化・無料)

Apache関連の書籍

参考・引用

  1. 【簡単に設定】Basic認証のかけ方
  2. .htaccessでBASIC認証
  3. ベーシック認証(Basic認証)とは?設定方法と注意点・エラーになる原因を解説

最近の投稿