Basic認証とは、WEBサーバとブラウザが持つ認証機能の1つです。主に、WEBサイトのページに対してアクセス制限をかける時に利用されます。
一般的なWEBサイトではサイトが用意したログイン画面で認証をして、Cookie等を使って認証状態を維持します。
一方で、Basic認証が設定されているページにアクセスすると、ブラウザが提供する認証ダイアログが表示され、ユーザーIDとパスワード(以下、認証情報)の入力を求められます。ここで正しい認証情報を入力すると、ページを開くことができるようになります。
次に、Basic認証の仕組みを簡単に解説します。
一般的に利用者がWEBサイトにアクセスしようとすると、ブラウザからWEBサイトのサーバーに対してリクエストが送信され、サーバーからレスポンスとしてページの内容が返されます。ここでBasic認証が使用されている場合、認証情報がリクエストに含まれて送信され、WEBサーバは認証情報の正当性が確認できた時だけレスポンスを返すことになります。
リクエストに認証情報が含まれていなかった時や、不正な認証情報であった場合は、WEBサーバは認証失敗のレスポンスを返します。この認証失敗のレスポンスが返されると、ブラウザは認証ダイアログを表示します。従って、Basic認証が設定されたWEBサイトに最初にアクセスした時には必ず認証失敗となり、認証情報を要求されることになります。
Basic認証には、いくつかセキュリティ上の問題点があります。
1つ目は、認証情報がブラウザに保存されることです。WEBサイトにアクセスした際に入力した認証情報はブラウザに一時的に保存されるため、ブラウザを開いている間は何度WEBサイトにアクセスしても再度認証情報を入力する必要がありません。これは便利である一方で、WEBサイトにアクセスした端末を放置などしてしまうと、悪意のある第三者に認証情報を盗まれてしまうというリスクがあります。
2つ目は、認証情報(ユーザーIDとパスワード)を毎回リクエストに含めて送信するという仕様上、認証情報の送信回数が多くなるという点です。これにより、盗聴等により認証情報を盗まれるリスクが高くなります。
先に述べたように、Basic認証はセキュリティ上の問題点を抱えているため、一般的なWEBサイトで認証に使用されることはありません。Basic認証が使用されるケースとしては、開発途中で公開前のWEBサイトや、社内ネットワークのみで使用されるサイトが挙げられます。
前者は仮に不正アクセスされても大きな被害にはならないため、後者は外部から社内ネットワークにアクセスすること自体が困難なため、いずれも簡易的な認証で十分であるケースとなります。また一般的なWEBサイトでも、検索サイトからのクローリングを防ぐ目的で、サイト内の一部のページにBasic認証による制限をかけるという使い方もあります。
今回の解説は以上になります。お読みいただきありがとうございました。
お見積り・ご相談など、お気軽にご相談ください
サイトTOPへ