ベーシック認証を解説!用途や設定の方法も紹介します!
Webサイトにパスワードを設定する基本的な方法として、ベーシック認証があります。難しそうな用語ですが、設定方法は簡単です。今回は、ベーシック認証とは何か、また、ベーシック認証の用途やその設定方法、必要なファイルの役割までを分かりやすく解説します。
目次
ベーシック認証って何?
ベーシック認証とは、Webサイトに「IDとパスワード」の鍵をかけるための機能です。
設定手順は2つのファイルを作成するだけで、非常に手軽なパスワード設定ですが、セキュリティとしては弱いものだと意識しなければなりません。とはいえ、サイトの閲覧を限定したい場合には有効な手段です。
一次的に制限をかける手段としては十分でしょう。
ユーザーが有料でアクセスするサイトや、資産管理をするようなサイトに対してはおすすめできません。
ベーシック認証の有効範囲
サーバー内で「.htpasswd」が配置されたディレクトリ配下が認証設定の範囲です。つまり、ディレクトリ単位で鍵を掛けることが可能です。
また、一度ログインした場合、ブラウザを終了するまでアクセス許可状態が続きます。
ベーシック認証の用途
セキュリティの低いものですが、以下のような用途には有効だと言えるでしょう。
・公開前のWebサイト
・無料会員限定のWebコンテンツ
・検索されたくないWebコンテンツ
公開前のWebサイト
公開前のWebサイトが、不具合や文言のチェックなどを行う前に閲覧されるのは好ましくありません。
正式リリース前のWebサイトは、開発サーバーで構築し、本番サーバーへアップロードしますが、本番サーバーでの動作確認も必要です。
動作確認テストが終了するまでは、他者からのアクセスを防いでおくことで不完全なページをみられずにすみます。
無料会員限定のWebコンテンツ
希望者だけに公開する、いわゆる会員限定のWebコンテンツにも有効です。
限定情報を掲載しているWebコンテンツが誰にでも閲覧できては困ります。しかし、ログイン認証のために複雑な技術を導入するのも手間がかかります。
ベーシック認証は設定も簡単ですし、アカウント作成にも手間がかかりません。
ただし、有料会員サイトなど、不正アクセスされたらユーザーに不利益になるサイトには、セキュリティレベルの高いものを採用しましょう。
検索されたくないWebコンテンツ
Webコンテンツにベーシック認証をかけておくことで、検索エンジンのクローラーを拒否できます。
個人だけで利用するコンテンツ、あるいは限定的なメンバーだけで利用するサイトは、Googleなどの検索エンジンに公開する必要はありませんよね。
クローラーを拒否することで検索エンジンにインデックスされず検索結果一覧に表示されることを防ぎます。
\ IT転職のプロが無料でサポート! /
ベーシック認証の設定方法
それではここから設定方法を見ていきましょう。
やり方は簡単で「.htaccess」と「.htpasswd」の2つのファイルを作成し、サーバーにアップロードするだけです。
パスワードを設定する方のファイルを対象のディレクトリに置くことで、ディレクトリ配下にある全てのファイルがアクセス制限対象となります。ファイル名の先頭にある「.」は、隠しファイルを表します。
認証設定のファイルは基本的に、隠しファイルとしておくことでできる限りセキュリティを高めます。
事前に確認しておく情報
事前に以下2つのことを確認しておきましょう。
・ 鍵をかけたディレクトリのパス
・「.htaccess」と「.htpasswd」ファイルの有無
・パスワードの暗号化方法
鍵をかけるディレクトリのパスは、「.htaccess」ファイル内の設定で使います。また、すでにファイルがある場合には上書きしてもよいものかどうかを確認しておきましょう。
「.htpasswd」ファイルにはユーザーID・パスワードを記載しますが、パスワードは平文ではなく暗号化したものを入力しますので、パスワードを暗号化してくれるサイトなどを用意しておきましょう。
・パスワード生成ツールなど。
1.「.htaccess」ファイルを作成する
どのようなタイプの認証を、どこに施すかを設定するファイルです。
また、認証画面に表示されるメッセージも指定できます。
設定内容
ファイル内の設定内容は以下です。
AuthType:認証のタイプ
AuthName:表示されるメッセージ(設定領域の名称)
AuthUserFile:「.htpasswd」ファイルのフルパス
require:認証画面を表示させるユーザーを指定
一つずつ見ていきましょう。
■AuthType
認証のタイプを設定します。
認証のタイプには「basic」と「digest」がありますが、ベーシック認証の場合は「basic」という文言を設定します。
設定例:AuthType basic
■AuthName
設定領域の名称を設定します。
認証をかけたページにアクセスしたとき、ID・パスワードを求める画面に表示されるメッセージです。
ここで設定するメッセージは、日本語よりも英語を使用した方がよいでしょう。
日本語でも問題ありませんが、文字コードによっては文字化けを起こしてしまいます。
設定例:AuthName “Please enter your ID and password”
■AuthUserFile
ベーシック認証をかける場所をフルパスで設定します。
フルパスとは、ルートディレクトリからファイルまでのパスです。
ここでパスを間違うと、上手く設定することができないので注意しましょう。
設定例:AuthUserFile 【ルートディレクトリからのフルパス】/ .htpasswd
■require
認証画面を表示させるユーザーを指定します。
「valid-user」とすることで、アクセスしたすべての人に認証画面を表示させます。
設定例:require valid-user
2.「.htpasswd」ファイルを作成する
このファイルは、ベーシック認証をかけたいサイトのディレクトリに配置します。
配置したディレクトリ配下にある全てに反映されます。
設定内容
ファイルの設定内容は、ユーザーIDとパスワードだけです。
ユーザーID:パスワード
左にユーザーIDが記載され、右側にパスワードが記載されます。
パスワードは平文(読める状態)で記載するのではなく、暗号化したものを設定しましょう。
パスワードの暗号化には、以下のようなサイトを使うと便利です。
http://www.luft.co.jp/cgi/randam.php
設定例:User1:74sLcRZFIVlqU
3.作成したファイルをディレクトリに置く
ファイルを作成したら、FTPツールなどを使ってサーバーにアップロードしましょう。
「.htpasswd」ファイルは、必ず対象となるWebサイトが置いてあるディレクトリに配置してください。また、配置する場所のフルパスがAuthUserFileに設定したものと一致していることを確認しましょう。
もともと、サーバーのディレクトリ上でファイルを作っている場合には、ファイル移動の必要はありません。これで、完了になります。
Webサーバー(Apacheなど)を再起動することで、反映されます。
4.ページにアクセスして確認する
ファイルの作成および設置、Webサーバーの再起動が完了したら、対象のページにアクセスして確認しましょう。
正しく上記に記載した方法で設定されていれば、IDとパスワードの入力画面が表示されます。
ベーシック認証を利用するときの注意点
この認証方法はあくまでも基本的なセキュリティで、仕組みを知っている人ならば、勝手に設定を変更することも可能ですので、セキュリティ的には非常に弱いことを理解しておきましょう。
また、ベーシック認証で設定する「.htpasswd」ファイルでは必ず暗号化したパスワードを記載してください。
ベーシック認証とダイジェスト認証の違い
Webサイトへの認証方法には、「ダイジェスト認証」というものもあります。
この2つの違いは、通信の暗号化です。
ベーシック認証では、入力されたIDとパスワードは暗号化されずにサーバーへ送信されます。万が一、不正アクセス目的のサーバーなどを経由した場合には、送受信されるIDとパスワードが丸見えになってしまいます。
一方、ダイジェスト認証ではIDとパスワードが暗号化されてサーバーへ送られるので、通信に対するハックには強いという特徴があります。ダイジェスト認証では、ブラウザ(ChromeやSafariなど)とサーバー間で暗号化した通信を行います。
昔は、ブラウザがダイジェスト認証に対応していない場合があるという理由で、ベーシック認証が主流でした。しかし、現代ではほとんどのブラウザが対応していますので、ダイジェスト認証を利用した方が良いでしょう。
まとめ
ベーシック認証は簡易的な方法なので仕組みを知っている人なら、「.htaccess」や「.htpasswd」を書き換えることは可能です。また、入力されたIDやパスワードの送受信では暗号化すらされません。
あくまでも、一時的なセキュリティとして利用するにとどめましょう。
\ IT転職のプロが無料でサポート! /
あわせて読みたい関連記事
この記事を読んでいる人におすすめの記事