サイバーセキュリティ サーバー

手軽な認証をかけるベーシック認証とは

「ベーシック認証(基本認証:Basic Authentication)」とは、Webサイトにアクセス制限をかける1つの方法です。Webサイトにアクセス制限をかける代表的な方法としてIP制限があげられますが、このIP制限よりも簡易的に制限をかけられる方法で、Webサーバーに付随している機能のひとつです。今回はこのベーシック認証についてお伝えしていきます。

IP制限について詳しく知りたい方は、以前書いた記事「IP制限の基礎知識」をご覧ください。

ベーシック認証

目次

ベーシック認証の特徴

「ベーシック認証」とはWebサイトにアクセスしようとしたとき、認証ダイアログが立ち上がって、ユーザー名(ID)とパスワードの入力が求められる仕様のことです。ユーザー名(ID)とパスワードを知らないと閲覧できず、間違って入力した場合は「401 Authorization Required」や「アクセスしようとしたページは表示できませんでした」というようなエラーメッセージが出ます。

IP制限とベーシック認証を併用する

「ベーシック認証」も企業Webサイトの場合、構築の途中に部外者から見られないようにするという目的でよく使われます。また、より厳重な制限をかけたい場合、IP制限と併用し、二重に認証をかけることもあります。IP制限は社内のネットワークの誰でも閲覧できてしまうため、さらにベーシック認証をかけて、関係者だけにユーザー名(ID)とパスワードを伝えるといった方法をとります。

セキュリティや機能面で劣るベーシック認証

手軽に使える分、「ベーシック認証」には欠点もあります。まずセキュリティ面ではあまり高くありません。また機能面でもあまり多機能でなく、仕様変更もきかないという問題があります。たとえばスマートフォンではユーザー名(ID)とパスワードを保存できず、毎回手入力しなければならないため、ユーザーに面倒がられてしまいます。

このような点で「ベーシック認証」は、ブラウザメーカーからあまり推奨されておらず、不特定多数のユーザーがアクセスするWebサイトの恒常的なアクセス制限機能としては使えません。大企業のWebサイトや、会員制Webサイトのアクセス制限には、より高度なログイン機能を実装する必要があります。

ベーシック認証_特徴

ベーシック認証の設定方法

まず、「ベーシック認証」は個別のファイルに対してではなく、ディレクトリ単位で制限をかけるものであるということをおさえておきましょう。ここではWebサーバーがApacheの場合の記述方法を具体的に説明します。

Step1 対象のディレクトリに .htaccessファイルを設置する

「ベーシック認証」を行うには、Webサーバーに「.htaccess」と「.htpasswd」という2つのファイルを設置します。まずパスワードをかけたいディレクトリに、以下の4行を記述した「.htaccess」ファイルを設置します。編集するのは3行目と4行目のみです。

ファイル名:.htaccess

1# Basic Auth

2AuthType Basic

3AuthName "PASSWORD"

4AuthUserFile /var/www/.htpasswd

5require valid-user

AuthType     Basic
2行目は べーシック認証を使うという意味の記述です。

AuthName    " [認証名] "
3行目にはこの認証の名前を好きなように名付けます。" " で囲むのを忘れずに。

AuthUserFile [.htpasswdファイルの場所]
4行目には次のステップで作成する「ユーザー名とパスワードを記したファイル」を置く場所を、スラッシュ(/)記号で始まるフルパスで記述します。「.htaccess」ファイルと同じディレクトリでも構いませんし、別の場所でも構いません。

require valid-user
5行目は全ユーザーに認証を求めるようにするという意味です。

なお、すでに「.htaccess」ファイルが存在している場合には、編集して4行を追加すればOKです。

Step2 IDとパスワードを .htpasswdファイルに記述する

次に「.htpasswd」ファイルを作成し、「.htaccess」ファイルで指定した場所に設置します。「.htpasswd」ファイルには次のようにユーザー名(ID)とパスワードを記述します。

ファイル名:.htpasswd

1test:ufgNWbFUFYjwc

ユーザー名と暗号化されたパスワードを、半角コロン(:)記号で区切って記述します。1行に1組ずつ、アカウントを作成したい数だけ改行しながら作成します。

[ユーザー名1]: [暗号化されたパスワード1]

[ユーザー名2]: [暗号化されたパスワード2]

なお、パスワードは必ず暗号化を行ってから記述しなければなりません。暗号化しないバスワードを記述しても動作しない仕組みになっており、この点において「ベーシック認証」も多少の安全性は担保されているといえます。ベーシック認証用のパスワード生成ツールを無償提供しているサイトは多数あるので、「htパスワード 生成」などのキーワードで検索して、自分が使いやすいものを利用するとよいでしょう。


ベーシック認証の利用範囲は限定的に

このように、非常なシンプルな設定によって実現しているアクセス制限ですので、「ベーシック認証」は公開前チェックのための一時的な利用や、少人数で使うグループ内Webサイトなど、限られた運用にとどめておくほうが無難です。

また「ベーシック認証」を使いたいときはWeb制作会社に依頼してもよいのですが、パスワードを扱う作業ですので、外部を通さず、自分たちでも設定できるようにしておくとより便利です。


関連記事

この記事の著者

itra
ITRA

Web制作・システム開発など多くの実績を持つITRAならではの様々な情報を発信していきます。

初めて使う人にも使いやすく、セキュリティレベルの高いCMSパッケージ「iCMS」

詳しくはこちら
itra