簡易的な認証方法、『Basic認証』について知ろう!

2017年7月25日(火) ノウハウ

みなさんはBasic認証という名前をご存知ですか?

Webサイトを運営していれば一度は目にしたことがあると思います。
Basic認証はその名の通り、Webサイトに対して必要最低限の認証設定をかけることを指します。
Webサイトを公開する前に、特定の人にだけアクセスができるようにしたい時などに使用します。

今回はBasic認証についてご紹介したいと思います。

Basic認証とは?

Basic認証とはWeb上で利用できる認証システムです。
Webサイトを運用したことがある人であれば一度は見たことがあるかもしれません。
Basic認証が設定されているページへアクセスすると、ポップアップが表示されます。
そこに前もって設定してあったIDとパスワードを入力することで、ログインすることができます。
「.htaccess」を利用して、設定できるという非常に簡単な認証機能のため、
セキュリティのレベルとしては非常に低いものになります。
あくまでも取り急ぎの認証であることを忘れないようにしましょう。

ディレクトリ単位でのアクセス制限が可能なBasic認証

Basic認証はディレクトリごとのアクセス制限が可能です。
例えば、
www.sample.com
 ∟www.sample.com/red/
  ∟www.sample.com/red/001.html
  ∟www.sample.com/red/002.html
 ∟www.sample.com/blue/
  ∟www.sample.com/blue/001.html
  ∟www.sample.com/blue/002.html

このようなディレクトリ構造のサイトがあるとします。
このサイトの中で、www.sample.comの/red/というディレクトリにBasic認証を設定した場合、
/red/内に含まれるページには全てBasic認証がかかります。

けれども、/blue/のディレクトリ階層には認証設定がされていないので、認証をすることなくページを見ることが可能です。

Basic認証の設定方法はどうやってやるの?

Basic認証に必要なものは「.htaccess」と「.htpasswd」です。
まずは「.htaccess」の記述方法を見てみましょう。
以下の用語を使用します。

AuthType    「Basic認証」を使う指定です。
AuthName    ここで指定した文字列は認証画面の中で表示されます。
AuthUserFile パスワードとIDを明記したファイルの格納場所を記述します。
require    全てのユーザーに認証を表示させるという意味です。

この用語を使用して、以下の文章を.htaccessに書き込みます。

1
2
3
4
AuthType Basic
AuthName “sample”
AuthUserFile /home/sakura/www/.htpasswd
require valid-user

次にパスワードとIDの設定方法を設定します。
.htpasswdに以下の記述を行いましょう。

ユーザー名:暗号化したパスワード

目的のパスワードを暗号化サービスなどで暗号化させて、記述しましょう。
暗号化サービスは無料で様々なものがありますので、調べてみてくだいね。

Basic認証では複数のIDも設定できるので、
ユーザーID①:暗号化パスワード①
ユーザーID②:暗号化パスワード②
ユーザーID③:暗号化パスワード③


このようにIDごとに改行して記述すると、各IDごとにパスワードを設定することができるようになります。

記述が終わったら、先ほどの.htaccessで記述した場所にファイルを置きます。
設置が完了したら、Webサイトを閲覧してBasic認証が設定されているか確認してみましょう。

サイトを見ようとした時にポップアップでIDとパスワードを入力する画面が出てきたら正しく設置ができています。

あくまで簡易的な認証であることを忘れずに

Basic認証では、ページ移動の際、「Base64」という64種類の文字を用いて符号を付与した通信が行われます。
つまり、毎回毎回、ログイン情報を持ちながら通信を行っていることになります。
ログイン情報は平文のため、「https:」のようにSSL暗号化をしていない「http:」でのアクセスでは、ナマのログイン情報が通信されます。
SSL暗号化された通信をしない状態でページ移動する度、盗聴リスクが圧倒的に高まるのです。

また、Basic認証はファイルやディレクトリ(ファイルの階層)単位でしか制御できません。
複数のサーバーを使ったサイトなどでは、一貫したログインが出来ないなどの弊害もあります。

あくまでも、Basic認証は「簡易的な認証の仕組み」とご理解ください。

いかがでしたでしょうか?Basic認証とはなんなのか、どうやって設定するのか理解いただけたと思います。
使う機会があれば是非とも設定してみてくださいね。

Writer:SecurityTIMES編集部