WebサイトやWebサービスに認証機能を持たせたい場合に、容易に利用できる手段がBasic認証です。Web関連のシステムに触れたことのある方ならば一度は聞いたことのある用語ですが、具体的な内容はよくわからないという方も多いのではないでしょうか。
そこでこの記事では、Basic認証の基本からその特徴、利用シーン、Basic認証が利用可能なサーバーについて紹介します。併せて、Basic認証の登録方法や利用上の注意点まで解説していますのでぜひご覧ください。
■Basic認証とは
はじめに、Basic認証の基本について見ていきましょう。Basic認証の概要から特徴、利用シーンを紹介します。
◇Basic認証とは
Basic認証とは、Webサーバーで利用できる簡易的な認証機能です。おもにWebサイトの特定のページや階層に対するアクセスを制限するために利用します。
Basic認証が有効なページや階層にアクセスするためには、定められたIDとパスワードを入力しなければアクセスできません。この際に、正しいIDとパスワードを入力しないと「401 Authorization Required」や「アクセスしようとしたページは表示できませんでした。」などのエラーメッセージが表示されます。
そのため、Basic認証を用いれば特定の人だけがアクセスできるページの作成が実現できるのです。
◇Basic認証の特徴
Basic認証はHTTPプロトコル(規約)の機能であり、比較的簡単に認証機能を追加できる点が最大の特徴でしょう。
また、Basic認証でアクセス制限をかける範囲は原則としてディレクトリ単位となります。そのため特定の階層に対するアクセスを制限するものとなっています。例えば、誰もがアクセス可能な“https://example.com/”の“basicディレクトリ”に対してBasic認証を有効化すれば、“https://example.com/basic/”以下のページすべてのアクセス制限の実現が可能です。
さらに、Basic認証を細かく設定すればページ単位のアクセス制限も可能となります。加えてブラウザを閉じるまでは一度認証に成功した場合は何度でもアクセス可能です。
◇Basic認証が利用されるシーンとは?
Basic認証は公開しているWebサイトでも特定のユーザーのみがアクセスできるページを作りたい場合などに利用されます。例えば、誰もがアクセス可能なWebサイトの中で、有料会員のみがアクセスできるページを作成する際にBasic認証を使用する、ケースなどです。
社内ポータルにおいても、特定の部署に所属する社員のみにアクセスを許可するページを作りたい場合にも利用できます。Basic認証は簡単にWebサイトに認証機能を追加できるため、簡易的なアクセス制限をしたい場合に利用されることが多い機能です。
■Basic認証が可能なサーバーについて
比較的簡単に認証機能を追加できるBasic認証を利用するための鍵は“.htaccess/.htpasswd”ファイルにあります。Basic認証の設定の流れと併せて、利用が可能なサーバーについて見ていきましょう。
◇.htaccess/.htpasswdが作成できるかが鍵
Basic認証はHTTPプロトコルの標準機能であるため、基本的にはWebサーバーであれば利用可能です。しかし、その際には“.htaccess”と“.htpasswd”ファイルを作成する必要があり、Basic認証が利用可能なサーバーの鍵はこの両ファイルの作成が可能かどうかとなります。
社内のWebサーバーで自由に設定が可能な場合は問題ありませんが、レンタルサーバーなどでサーバーの利用に制限がある場合は、“.htaccess”と“.htpasswd”のファイル作成ができないこともあるので注意が必要です。
つまり、Basic認証の利用可否は“.htaccess/.htpasswd”ファイル作成の可否で判断できます。
◇Basic認証設定の流れ
Basic認証の設定は決して難しいものではありません。Basic認証の設定の流れを簡単に紹介すると、次のとおりとなります。
- ディレクトリ単位でアクセス制限をかけたい場所を決める
- 対象のディレクトリ直下に“.htaccess”ファイルを作成
- 任意の場所に“.htpasswd”ファイルを作成
参考までに.htaccessと.htpasswdの基本的な内容についても紹介します。これらはいずれも「メモ帳」などのテキストエディタで作成します。
【.htaccess】
AuthType Basic AuthName “任意の認証名” AuthUserFile “.htpasswdファイルの場所” require valid-user |
【.htpasswd】
ユーザーID1:暗号化されたパスワード1 ユーザーID2:暗号化されたパスワード2 |
.htaccessファイルにはBasic認証を利用する旨の宣言、任意の認証名、.htpasswdファイルの場所を記載し、最後にアクセスしたユーザー全てに認証を求めることを記載します。これは最も基本的な記載であり、さらに詳細に設定することも可能です。
また、.htpasswdにはアクセスを許可するユーザーを一行ずつ記載していきますが、パスワードは暗号化されたものを記載します。暗号化されていないパスワードを入力してもBasic認証は機能しないため注意しましょう。
パスワードの暗号化については、WebサービスとしてBasic認証用のパスワード生成ツールが提供されていますので、これらを利用して暗号化されたパスワードを入力してください。
■Basic認証の登録方法
トラスト・ログイン(旧 SKUID)はSAML認証、フォームベース認証に加え、Basic認証にも対応しています!
Basic認証で認証を行うアプリの登録方法をご紹介します。
Basic認証とはHTTPで定義される認証方式で、このような認証用ダイアログボックスが表示され、ユーザー名/パスワードの入力をすることにより認証を行います。
登録方法
- 管理者アカウントでトラスト・ログイン(旧 SKUID)にログインし、ダッシュボードの「アプリ」メニューを選択します。
- 画面右上の「アプリ登録」ボタンを押し、「企業アプリ登録」画面でアプリ名「BASIC認証 テンプレート」を検索します。
- 「BASIC認証 テンプレート」を選択し、画面右上の「次へ」ボタンを押します。
- 以下の設定項目にそれぞれ入力して、「登録」ボタンを押します。
① 「アプリケーション名」は登録したいアプリ名を入力してください。
② 「ログインURL」は対象のURLに変更してください。
③ 「アイコン」は任意です。画像をお持ちの場合は登録してください。 - 企業アプリ登録が完了しましたら、個人ページのトップ画面よりアプリ追加を行ってください。
■Basic認証の注意点について
Webサイトに簡単に認証機能を追加できるBasic認証ですが、利用する際にはいくつか注意しなければならない点が存在します。利用する前に知っておくべき注意点をまとめましたので、一つずつ見ていきましょう。
◇Basic認証のセキュリティ強度は高くない
Basic認証はあくまでも簡易的な認証機能であり、セキュリティ強度は高くありません。Basic認証ではBase64という文字コードを使って通信を行います。Base64は簡易的な通信を行う際の文字コードであり、アルファベット・数字・特定の記号を組み合わせた64種類の文字を利用するものです。
Basic認証では、このBase64を使って毎回ログイン情報を持ちながら通信を行います。このとき、ログイン情報は原則暗号化されておらず、盗聴の可能性が考えられます。加えて、一度認証に成功するとブラウザを閉じるまで認証を維持できる点はメリットとも言えますが、この特徴もセキュリティ的には注意すべき点です。
このようにBasic認証のセキュリティ強度は決して高いものではなく、簡易的な認証機能であることを覚えておく必要があります。
◇パスワードを盗聴される可能性
先程も触れたとおり、Basic認証ではログイン情報を持ったまま通信しているためパスワードを盗聴される可能性があります。Basic認証が利用されるプロトコルのHTTPは通信を暗号化せず、生の状態で通信を行うプロトコルだからです。
しかし、現在では通信を暗号化するHTTPSが主流になっており、HTTPSを使用していれば盗聴の可能性が低くなります。昔ながらのシステムや、一部の社内システムなどではHTTPのまま運用されている場合もあるため、Basic認証を利用する際はHTTPSに対応したWebサイトかどうかを確認しましょう。
◇サーバーをまたいだ設定はできない
Basic認証はディレクトリ単位のアクセス制限を実施できますが、サーバーをまたいだ制限は行えません。例えば、社内ポータルAと社内ポータルBの2つのWebサイトを別のサーバーで運用していた場合、それぞれのポータルで別々のBasic認証の設定が必要になります。
Basic認証は名前の通り“基本認証”であるため、サーバーをまたいだ認証を実現したい場合は別の認証技術を利用しましょう。
■まとめ
Basic認証はWebサーバーで利用できる簡易的な認証機能であり、特定のページや階層に対するアクセスを制限するために用いられます。Basic認証を利用するための鍵となるものは“.htaccess”と“.htpasswd”ファイルであり、この2つのファイルの作成可否が利用可否につながります。
Basic認証を利用する際には、セキュリティ強度が高くないこと・パスワードを盗聴される可能性があること・サーバーをまたいだ設定はできないことを注意点として覚えておくとよいでしょう。
このような注意点はありますが、社内ポータルの一部にアクセス制限をかけたい、などの簡易的な認証機能の追加には適しています。そのため、手をかけずに認証機能を追加したい場合などに利用してみてはいかがでしょうか。